Time to event methods
Skill choxos/BiostatAgent/plugins/clinical-trial-simulation/skills/time-to-event-methods
Claude Code plugin marketplace for biostatistics in R — 30 agents, 17 commands, and 45 skills spanning Bayesian modeling (Stan/PyMC/JAGS), indirect treatment comparisons (NMA/MAIC/STC/ML-NMR), tidy R workflows, and clinical trial simulation.
npx -y skills add choxos/BiostatAgent --skill time-to-event-methodsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Survival analysis methods including weighted logrank, MaxCombo, RMST, and milestone tests. Use when analyzing TTE data or choosing analysis methods for non-proportional hazards.
SKILL.md
7.0 KB, as published. Nobody here has run it
Time-to-Event Methods
When to Use This Skill
- Selecting appropriate analysis methods for survival endpoints
- Handling non-proportional hazards scenarios
- Implementing weighted logrank tests
- Designing MaxCombo tests
- Using RMST or milestone endpoints
Analysis Methods Overview
Standard Logrank Test
When Optimal:
- Proportional hazards assumption holds
- Treatment effect constant over time
Formula:
Z = Σ(O_trt - E_trt) / √(Var)
simtrial Implementation:
data |> wlr(weight = fh(rho = 0, gamma = 0))
Fleming-Harrington Weighted Logrank
Weight Function:
w(t) = S(t)^ρ × (1 - S(t))^γ
Parameter Effects:
| ρ | γ | Emphasis | Best For |
|---|---|---|---|
| 0 | 0 | Uniform (standard LR) | Proportional hazards |
| 0 | 0.5 | Moderate late | Moderate delayed effect |
| 0 | 1 | Strong late | Strong delayed effect |
| 1 | 0 | Early | Early divergence |
| 0.5 | 0.5 | Balanced | Crossing hazards |
simtrial Implementation:
# Late emphasis
data |> wlr(weight = fh(rho = 0, gamma = 0.5))
# Early emphasis
data |> wlr(weight = fh(rho = 1, gamma = 0))
Magirr-Burman (MB) Weights
Design: Zero weight before delay, then increasing weight.
Parameters:
delay: Time before weights increasew_max: Maximum weight cap
Formula:
w(t) = min(w_max, S(min(t, τ*))^(-1))
When to Use:
- Known delay in treatment effect
- Clear scientific rationale for delay period
simtrial Implementation:
# 4-month delay, max weight 2
data |> wlr(weight = mb(delay = 4, w_max = 2))
# Unlimited weight growth
data |> wlr(weight = mb(delay = 6, w_max = Inf))
Early Zero Weights (Xu et al., 2017)
Design: Exactly zero weight for early period, then standard logrank.
When to Use:
- Want to completely ignore early period
- Regulatory acceptance of early exclusion
simtrial Implementation:
# Zero weight for first 6 months
data |> wlr(weight = early_zero(early_period = 6))
MaxCombo Test
Concept: Combine multiple weighted logrank tests, take maximum Z-score.
Advantages:
- Robust across NPH patterns
- Maintains power under uncertainty
- Single pre-specified p-value
Common Combinations:
| Combo | Tests | Use Case |
|---|---|---|
| 2-test | FH(0,0) + FH(0,1) | Unknown late effect |
| 3-test | FH(0,0) + FH(0,0.5) + FH(0.5,0.5) | Comprehensive |
| Custom | FH(0,0) + FH(0,1) + FH(1,1) | Maximum robustness |
simtrial Implementation:
# Two-test MaxCombo
data |> maxcombo(rho = c(0, 0), gamma = c(0, 1))
# Three-test MaxCombo
data |> maxcombo(rho = c(0, 0, 0.5), gamma = c(0, 0.5, 0.5))
Correlation Handling: MaxCombo accounts for correlation between tests using multivariate normal distribution.
Restricted Mean Survival Time (RMST)
Definition: Area under survival curve up to time τ.
Formula:
RMST(τ) = ∫₀^τ S(t) dt
Advantages:
- Interpretable (expected survival time)
- Valid under non-PH
- No proportionality assumption
Considerations:
- Choice of τ is critical
- τ must be within follow-up
- Less powerful than logrank under PH
simtrial Implementation:
data |> rmst(tau = 24) # RMST at 24 months
Milestone Analysis
Definition: Compare survival probability at fixed time point.
Test Statistic:
Z = (S_trt(t*) - S_ctrl(t*)) / SE
Advantages:
- Easy to interpret
- Clinically meaningful time point
- Valid under non-PH
simtrial Implementation:
data |> milestone(ms_time = 12, test_type = "naive")
Non-Proportional Hazards Patterns
Delayed Treatment Effect
Pattern: HR = 1 initially, then HR < 1
Analysis Recommendations:
- Primary: FH(0, γ) with γ > 0 or MaxCombo
- Sensitivity: Standard logrank
- Alternative: RMST with appropriate τ
Simulation Setup:
fail_rate <- data.frame(
stratum = rep("All", 4),
period = rep(1:2, 2),
treatment = c(rep("control", 2), rep("experimental", 2)),
duration = c(4, 100, 4, 100), # 4-month delay
rate = log(2) / c(12, 12, 12, 18) # HR=1 then HR=0.67
)
Crossing Hazards
Pattern: Early benefit reverses over time
Analysis Recommendations:
- Consider if crossing is clinically meaningful
- FH(0.5, 0.5) may be appropriate
- MaxCombo provides robustness
- RMST with carefully chosen τ
Diminishing Effect
Pattern: Strong early effect that wanes
Analysis Recommendations:
- FH(ρ, 0) with ρ > 0
- Early milestone analysis
- Consider if effect is clinically durable
Cure Model
Pattern: Proportion of patients cured (never event)
Analysis Recommendations:
- Standard logrank often adequate
- Long-term milestone helpful
- Consider cure fraction estimation
Method Selection Algorithm
START
│
├─ Is proportional hazards expected?
│ ├─ Yes → Standard logrank FH(0,0)
│ └─ No → Continue
│
├─ Is delayed effect expected?
│ ├─ Yes, delay known → MB weights
│ ├─ Yes, delay uncertain → FH(0, 0.5) or MaxCombo
│ └─ No → Continue
│
├─ Is crossing possible?
│ ├─ Yes → RMST or FH(0.5, 0.5)
│ └─ No → Continue
│
├─ Maximum robustness needed?
│ ├─ Yes → MaxCombo
│ └─ No → FH(0, γ) based on expected pattern
│
END
Power Comparison Under Different Scenarios
Proportional Hazards (HR = 0.7)
| Method | Relative Power |
|---|---|
| Logrank FH(0,0) | 100% (optimal) |
| FH(0, 0.5) | ~95% |
| MaxCombo | ~98% |
| RMST | ~90% |
Delayed Effect (3-month delay, HR = 0.6 after)
| Method | Relative Power |
|---|---|
| Logrank FH(0,0) | 70% |
| FH(0, 0.5) | 90% |
| MB(delay=3) | 95% |
| MaxCombo | 92% |
Crossing Hazards
| Method | Relative Power |
|---|---|
| Logrank FH(0,0) | Variable |
| FH(0.5, 0.5) | Better |
| RMST | Depends on τ |
| MaxCombo | Robust |
Practical Considerations
Regulatory Acceptance
- FDA generally accepts weighted logrank with justification
- Pre-specification is critical
- MaxCombo gaining acceptance
- RMST as sensitivity analysis
Pre-specification Requirements
- Analysis method must be specified before unblinding
- Weight parameters (ρ, γ) must be fixed
- MaxCombo test components must be defined
- τ for RMST must be justified
Sample Size Implications
- Weighted tests may require larger sample under PH
- MaxCombo has slight efficiency loss
- Consider this in planning
Best Practices
- Primary Analysis: Choose method aligned with expected NPH pattern
- Sensitivity Analyses: Include standard logrank and alternatives
- Justification: Document scientific rationale for method choice
- Simulation: Validate power across plausible scenarios
- Pre-specification: Lock method before any data review