simtrial
Clinical trial simulation for time-to-event endpoints
Documentation
View detailed documentation
Overview
simtrial provides comprehensive simulation capabilities for clinical trials with time-to-event endpoints. It enables researchers to validate trial designs, assess operating characteristics, and optimize study parameters through Monte Carlo simulation.
Installation
# Install from CRAN
install.packages("simtrial")
# Install development version from GitHub
devtools::install_github("Merck/simtrial")
Key Features
- Flexible Simulation Framework: Simulate various trial designs and scenarios
- Time-to-Event Focus: Specialized for survival and time-to-event endpoints
- Operating Characteristics: Comprehensive evaluation of design performance
- Scenario Analysis: Test multiple assumptions and design variations
- Integration: Works seamlessly with gsDesign and gsDesign2
Basic Usage
Simple Simulation
library(simtrial)
# Define trial parameters
enroll_rate <- define_enroll_rate(duration = 18, rate = 20)
fail_rate <- define_fail_rate(
duration = c(4, 100),
fail_rate = log(2) / 12,
hr = c(1, 0.7),
dropout_rate = 0.001
)
# Run simulation
sim_results <- sim_pw_surv(
n_sim = 1000,
study_duration = 36,
enroll_rate = enroll_rate,
fail_rate = fail_rate,
block = c("Experimental", "Control")
)
Group Sequential Simulation
# Simulate group sequential trial
gs_sim <- sim_gs_n(
n_sim = 1000,
alpha = 0.025,
beta = 0.1,
enroll_rate = enroll_rate,
fail_rate = fail_rate,
timing = c(0.5, 0.75, 1),
upper = list(bound = "OF"),
lower = list(bound = "futility")
)
Advanced Features
Non-Proportional Hazards Simulation
# Simulate with non-proportional hazards
nph_sim <- sim_pw_surv(
n_sim = 1000,
study_duration = 36,
enroll_rate = define_enroll_rate(duration = 18, rate = 20),
fail_rate = define_fail_rate(
duration = c(4, 8, 100),
fail_rate = log(2) / 12,
hr = c(1, 0.8, 0.6),
dropout_rate = 0.001
)
)
Adaptive Designs
# Simulate adaptive trial with interim modifications
adaptive_sim <- sim_fixed_n(
n_sim = 1000,
alpha = 0.025,
power = 0.9,
enroll_rate = enroll_rate,
fail_rate = fail_rate,
study_duration = 36,
interim_analysis = c(12, 24)
)
Simulation Outputs
Key Metrics
- Power: Probability of rejecting null hypothesis
- Type I Error: False positive rate under null hypothesis
- Expected Study Duration: Average trial completion time
- Expected Sample Size: Average number of subjects needed
- Operating Characteristics: Comprehensive performance metrics
Result Analysis
# Analyze simulation results
summary(sim_results)
plot(sim_results)
# Calculate operating characteristics
oc <- operating_characteristics(sim_results)
print(oc)
Best Practices
- Sufficient Simulations: Use adequate number of simulations (≥1000)
- Scenario Testing: Test multiple scenarios and assumptions
- Sensitivity Analysis: Assess robustness to assumption changes
- Computational Efficiency: Use parallel processing for large simulations
- Result Validation: Cross-check with analytical methods when possible
Common Applications
- Power analysis for complex designs
- Operating characteristics evaluation
- Adaptive trial planning
- Non-proportional hazards assessment
- Regulatory submission support
Integration with Other Packages
simtrial works well with:
gsDesign2: For modern group sequential designsgsDesign: For traditional group sequential methodssurvival: For survival analysisfuture: For parallel processingggplot2: For result visualization