Cox Model and the Proportional Hazards Assumption
Upon Completing This Topic
You will be able to connect the hazard ratio of the Cox proportional hazards model to the structure of time, risk sets, and covariates. You will diagnose the proportional hazards assumption and avoid automatically reporting a single hazard ratio when that assumption is violated.
Hazard and Hazard Ratio
Hazard is a concept expressing the instantaneous risk that a unit, which has not experienced an event up to just before a specific time point, experiences that event at that time point. The Cox model uses a semi-parametric structure that separates the baseline hazard from the covariates. The hazard ratio is a comparison within the model under the condition that other factors are equal; it is not a value such as probability, risk difference, or survival rate.
Running CoxPHFitter
from lifelines import CoxPHFitter
cph = CoxPHFitter()cph.fit(survival_df, duration_col="T", event_col="E")print(cph.hazard_ratios_)print(cph.confidence_intervals_)T represents the observed time, and E represents whether the event was observed; the covariate columns must be defined in advance. This API was executed in the survival overlay, and we confirmed the hazard ratio and confidence interval results of CoxPHFitter.
The Proportional Hazards Assumption
The Cox model includes the assumption that the hazard ratio of covariates remains constant over time. If the effect changes over time, a single hazard ratio may not adequately summarize the relationship across the entire follow-up period.
lifelines provides check_assumptions() and a proportional hazard test API to check the assumptions of the fitted Cox model. Diagnostic results are not commands to automatically fix the model but signals to review time-interactions, strata, or other structures.
cph.check_assumptions(survival_df, p_value_threshold=0.05)Interpreting in Light of the Research Question
The fact that the hazard ratio is greater than or less than 1 does not, by itself, determine event probability or clinical utility. Report the baseline hazard, follow-up, censoring, covariate units, and proportional hazards diagnostics together. Cox coefficients from observational data are not automatically causal effects.
Common Failures
- Do not translate hazard ratio as risk ratio or survival probability.
- Do not determine a single HR for the entire period without proportional hazards diagnostics.
- Do not hide censoring and entry time.
- Do not delete warnings and convergence issues from the results.
Key Takeaways
- The Cox model models the relationship between hazard and covariates.
- Read the hazard ratio within the context of time, model, and covariate conditions.
- Proportional hazards is an assumption that must be diagnosed.
Next Topic
The next topic covers count matrices, normalization, batch effects, and omics-specific characteristics.
References
- lifelines CoxPHFitter: https://lifelines.readthedocs.io/en/latest/fitters/regression/CoxPHFitter.html
- lifelines Survival Regression: https://lifelines.readthedocs.io/en/latest/Survival_Regression.html
- lifelines statistics: https://lifelines.readthedocs.io/en/latest/lifelines.statistics.html
The survival schema and synthetic data in this module were written independently by BioStatPy.