The workhorse model of survival analysis -- and its most abused assumptions
The log-rank test told you that two groups differ. But clinical decisions require more: How much does treatment reduce the hazard? What happens after adjusting for age, diabetes, and renal function? Which factors independently predict the outcome?
Cox regression answers all of these. It is to survival analysis what logistic regression is to binary outcomes.
The Cox proportional hazards model estimates hazard ratios adjusted for multiple covariates simultaneously. It is the most commonly used multivariable model in surgical research involving time-to-event outcomes.
Every Cox model produces a table. Here is how to read it.
| Variable | HR | 95% CI | p-value |
|---|---|---|---|
| Endovascular (vs open) | 1.38 | 1.05 -- 1.82 | 0.02 |
| Age (per 10 years) | 1.22 | 1.08 -- 1.38 | 0.001 |
| Diabetes | 1.54 | 1.18 -- 2.01 | 0.002 |
| eGFR < 30 | 1.89 | 1.31 -- 2.73 | <0.001 |
| Female sex | 0.91 | 0.68 -- 1.22 | 0.53 |
HR > 1: Higher hazard (worse outcome if the event is bad)
HR < 1: Lower hazard (protective)
HR = 1: No difference
Critical: The HR is a ratio of hazard rates, not a ratio of probabilities. HR = 2.0 does NOT mean "twice as likely to have the event." It means the instantaneous rate of the event is twice as high at any given time point.
Cox regression has specific assumptions. Violating them invalidates your hazard ratios.
The HR between groups must be constant over time. If the HR is 1.5 at 1 year, it should still be approximately 1.5 at 5 years. If one treatment is better early and worse late, a single HR is misleading.
How to check: Schoenfeld residuals test (p < 0.05 = violation), log-log plots (parallel lines = assumption met), or visual inspection of KM curves for crossing.
The log-hazard must increase linearly with continuous covariates. If age increases risk steeply after 70 but not before, the linear assumption fails. You may need to categorize or use splines.
How to check: Martingale residual plots. A non-linear pattern indicates the need for transformation or categorization.
A single patient with an extreme covariate pattern and an unusual outcome can disproportionately influence the model. This is especially problematic in small datasets.
How to check: dfbeta residuals. Large values identify patients whose removal would substantially change the estimated HR.
The model needs enough events relative to the number of predictors. The traditional rule is at least 10 events per variable (EPV). With 40 events, you should have no more than 4 covariates. Overfitting with too many variables produces unstable, unreproducible HRs.
How to check: Count events, not total patients. A study with 200 patients but only 25 events can support 2 -- 3 covariates at most.
The number one modeling error in surgical literature: too many covariates for too few events. A 15-variable Cox model with 30 events is not multivariable analysis -- it is noise fitting.
Mistakes that produce publishable but wrong results.
"We included all variables with p < 0.20 on univariable analysis."
This is stepwise selection in disguise. It is data-driven, inflates type I error, and produces unstable models. Variables should be selected based on clinical knowledge and a priori hypotheses, not p-value thresholds. Known confounders should be included regardless of their univariable p-value.
"After adjusting for age, sex, diabetes, hypertension, smoking, BMI, eGFR, COPD, CHF, prior revascularization, race, insurance status, and statin use, HR was 1.23."
Count the events, not the variables. If this study had 60 events and 13 covariates, the model is overfitted (EPV = 4.6). The HR estimate is unstable and the confidence interval is likely misleadingly narrow because the model is overfit to the sample.
"HR = 2.0, so patients are twice as likely to die."
The HR is not a risk ratio. HR = 2.0 means the instantaneous rate of death is twice as high at any given moment. Over time, the cumulative risk difference depends on the baseline hazard. Converting HRs to absolute risk requires additional information.
"We tested the proportional hazards assumption and it was met (p = 0.06 on the global Schoenfeld test)."
A global test is insufficient. The proportional hazards assumption should be tested for each covariate individually, not just globally. A global p-value of 0.06 may mask a severe violation for one variable. Also, a borderline p-value in a small study does not confirm the assumption is met -- it may reflect low power to detect the violation.
When reviewing a Cox model: count the events, check the EPV, confirm the PH assumption was tested per variable, and verify that variable selection was clinically driven. If any of these fail, the HRs are questionable.
Evaluate Cox model results and methodology.
Module 4 - Lesson 4 complete
Final lesson: Competing Risks -- why standard Kaplan-Meier overestimates your limb salvage rates and what to do about it.