Survival analysis methods including weighted logrank, MaxCombo, RMST, and milestone tests. Use when analyzing TTE data or choosing analysis methods for non-proportional hazards.
Scanned 6/5/2026
Install to Claude Code
npx -y skills add choxos/BiostatAgent --skill time-to-event-methods --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Time To Event Methods?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/choxos-time-to-event-methods)More formats (shields.io, HTML) on the badges page.
---
name: time-to-event-methods
description: Survival analysis methods including weighted logrank, MaxCombo, RMST, and milestone tests. Use when analyzing TTE data or choosing analysis methods for non-proportional hazards.
---
# 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:**
```r
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:**
```r
# 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 increase
- `w_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:**
```r
# 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:**
```r
# 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:**
```r
# 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:**
```r
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:**
```r
data |> milestone(ms_time = 12, test_type = "naive")
```
## Non-Proportional Hazards Patterns
### Delayed Treatment Effect
**Pattern:** HR = 1 initially, then HR < 1
**Analysis Recommendations:**
1. Primary: FH(0, γ) with γ > 0 or MaxCombo
2. Sensitivity: Standard logrank
3. Alternative: RMST with appropriate τ
**Simulation Setup:**
```r
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:**
1. Consider if crossing is clinically meaningful
2. FH(0.5, 0.5) may be appropriate
3. MaxCombo provides robustness
4. RMST with carefully chosen τ
### Diminishing Effect
**Pattern:** Strong early effect that wanes
**Analysis Recommendations:**
1. FH(ρ, 0) with ρ > 0
2. Early milestone analysis
3. Consider if effect is clinically durable
### Cure Model
**Pattern:** Proportion of patients cured (never event)
**Analysis Recommendations:**
1. Standard logrank often adequate
2. Long-term milestone helpful
3. 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
1. Analysis method must be specified before unblinding
2. Weight parameters (ρ, γ) must be fixed
3. MaxCombo test components must be defined
4. τ 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
1. **Primary Analysis**: Choose method aligned with expected NPH pattern
2. **Sensitivity Analyses**: Include standard logrank and alternatives
3. **Justification**: Document scientific rationale for method choice
4. **Simulation**: Validate power across plausible scenarios
5. **Pre-specification**: Lock method before any data review
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!