# Calculate sample size for a two-group survival study
result <- survivalPowerComprehensive(
method_category = "standard",
calculation_type = "sample_size",
statistical_method = "logrank_test",
alpha = 0.05,
power = 0.80,
hazard_ratio = 0.70,
allocation_ratio = 1.0,
event_rate = 0.60
)
Comprehensive Survival Power Analysis with ClinicoPath
2025-10-09
Source:vignettes/jsurvival-02-comprehensive-survival-power-analysis.qmd
Introduction
The survivalPowerComprehensive
function in ClinicoPath provides a unified interface for comprehensive power analysis and sample size calculations across multiple survival analysis methodologies. This function consolidates advanced methods from several specialized R packages including NPHMC, powerSurvEpi, survSNP, survivalpwr, and rpact.
Key Features
Method Categories
The function supports seven main categories of survival power analysis:
- Standard Methods: Traditional log-rank tests and Cox regression
- Competing Risks: Analysis with competing events
- Advanced Methods: RMST, non-inferiority trials, and adaptive designs
- Genetic Analysis: SNP-based survival studies with various inheritance models
- Cure Models: Mixture cure models with non-proportional hazards
- Sequential Analysis: Group sequential and adaptive trial designs
- Epidemiological Studies: Multi-covariate observational studies
Calculation Types
For each method category, you can calculate:
- Sample Size: Given power, alpha, and effect size
- Power: Given sample size, alpha, and effect size
- Effect Size: Given sample size, power, and alpha
Usage Examples
Basic Log-rank Test Power Analysis
Competing Risks Analysis
# Power analysis for competing risks scenario
result <- survivalPowerComprehensive(
method_category = "competing_risks",
calculation_type = "power",
sample_size = 300,
alpha = 0.05,
competing_event_rate = 0.20,
cumulative_incidence_control = 0.30,
cumulative_incidence_treatment = 0.20
)
Genetic Association Studies
# Sample size for SNP-based survival analysis
result <- survivalPowerComprehensive(
method_category = "genetic",
calculation_type = "sample_size",
statistical_method = "snp_additive",
alpha = 5e-8, # Genome-wide significance
power = 0.80,
snp_maf = 0.20,
genetic_model = "additive",
genetic_effect_size = 1.3,
event_rate = 0.40
)
Cure Models
# Power analysis for mixture cure models
result <- survivalPowerComprehensive(
method_category = "cure_models",
calculation_type = "power",
sample_size = 400,
alpha = 0.05,
cure_rate_control = 0.20,
cure_rate_treatment = 0.40,
survival_distribution = "weibull",
accrual_distribution = "uniform"
)
Sequential Trial Design
# Group sequential design with interim analyses
result <- survivalPowerComprehensive(
method_category = "sequential",
calculation_type = "sample_size",
statistical_method = "group_sequential",
alpha = 0.05,
power = 0.80,
hazard_ratio = 0.75,
number_of_looks = 3,
spending_function = "obrien_fleming",
interim_futility_boundary = 0.30
)
Epidemiological Studies
# Multi-covariate observational study
result <- survivalPowerComprehensive(
method_category = "epidemiological",
calculation_type = "sample_size",
statistical_method = "multivariable_cox",
alpha = 0.05,
power = 0.80,
hazard_ratio = 1.50,
number_of_covariates = 5,
covariate_correlation = 0.30,
covariate_distribution = "mixed",
adjust_for_confounders = TRUE
)
Parameter Guide
Core Parameters
- method_category: Choose from standard, competing_risks, advanced, genetic, cure_models, sequential, epidemiological
- calculation_type: sample_size, power, or effect_size
- statistical_method: Specific method within each category
- alpha: Type I error rate (typically 0.05)
- power: Desired statistical power (typically 0.80 or 0.90)
Study Design Parameters
- study_design: simple or complex
- sample_size: Total sample size (for power/effect size calculations)
- allocation_ratio: Ratio of control to treatment group sizes
- event_rate: Expected proportion of events
Survival Parameters
- hazard_ratio: Effect size for most methods
- median_survival_control/treatment: Median survival times
- accrual_period: Patient recruitment duration
- follow_up_period: Additional follow-up time
- dropout_rate: Loss to follow-up rate
Method-Specific Parameters
Genetic Analysis
- snp_maf: Minor allele frequency
- genetic_model: additive, dominant, or recessive
- genetic_effect_size: Genetic relative risk
Cure Models
- cure_rate_control/treatment: Proportion cured in each group
- survival_distribution: Underlying survival distribution
- accrual_distribution: Patient recruitment pattern
Sequential Designs
- number_of_looks: Number of interim analyses
- spending_function: Alpha spending function
- interim_futility_boundary: Futility stopping boundary
Epidemiological Studies
- number_of_covariates: Total covariates in model
- covariate_correlation: Average correlation between covariates
- interaction_effect_size: Interaction effect magnitude
Output Interpretation
Power Analysis Results
The function returns comprehensive results including:
- Primary Calculation: Sample size, power, or effect size
- Study Design Summary: Key parameters and assumptions
- Method Details: Specific methodology used
- Sensitivity Analysis: Results under different assumptions
- Recommendations: Guidance for study planning
Additional Outputs
When enabled, the function can provide:
- Power Curves: Visualization of power across parameter ranges
- Sensitivity Analysis: Robustness testing
- Method Comparison: Results from multiple approaches
- Study Design Export: Parameters for protocol development
Advanced Features
RMST Analysis
For restricted mean survival time analysis:
result <- survivalPowerComprehensive(
method_category = "advanced",
statistical_method = "rmst",
rmst_timepoint = 36, # months
calculation_type = "sample_size",
alpha = 0.05,
power = 0.80
)
Non-inferiority Trials
For non-inferiority margin testing:
result <- survivalPowerComprehensive(
method_category = "advanced",
statistical_method = "non_inferiority",
non_inferiority_margin = 1.25,
superiority_test = TRUE,
calculation_type = "sample_size"
)
Interaction Effects
For testing gene-environment or treatment-covariate interactions:
result <- survivalPowerComprehensive(
method_category = "epidemiological",
statistical_method = "interaction_effects",
interaction_effect_size = 1.8,
number_of_covariates = 3,
calculation_type = "power"
)
Best Practices
Study Planning
- Start Simple: Begin with standard methods before exploring advanced options
- Conservative Assumptions: Use conservative effect sizes and event rates
- Sensitivity Analysis: Test multiple scenarios and assumptions
- Expert Consultation: Validate assumptions with domain experts
Method Selection
- Standard Methods: For most randomized controlled trials
- Competing Risks: When multiple event types are relevant
- Genetic Methods: For genomic association studies
- Cure Models: When long-term cures are expected
- Sequential Designs: For trials with interim monitoring
Parameter Estimation
- Literature Review: Base assumptions on published studies
- Pilot Studies: Use preliminary data when available
- Expert Opinion: Consult clinical experts for realistic parameters
- Registry Data: Utilize population-based estimates
Quality Assurance
Validation Steps
The function includes built-in validation for:
- Parameter ranges and combinations
- Method compatibility
- Statistical assumptions
- Convergence criteria
Cross-validation
Results can be cross-validated using:
- Multiple statistical methods
- Different software implementations
- Published power calculations
- Simulation studies
Troubleshooting
Common Issues
- Convergence Problems: Try different starting values or methods
- Unrealistic Results: Check parameter assumptions
- Method Conflicts: Ensure parameter compatibility with chosen method
- Missing Parameters: All required parameters must be specified
Getting Help
- Review parameter documentation
- Check method-specific requirements
- Consult package vignettes
- Use simulation validation
Conclusion
The survivalPowerComprehensive
function provides a unified, comprehensive platform for survival power analysis across multiple methodologies. Its modular design allows for standard calculations while supporting advanced methods for specialized research needs.
For additional examples and detailed methodology, see the ClinicoPath package documentation and the underlying specialized packages (NPHMC, powerSurvEpi, survSNP, survivalpwr, rpact).