lifelines
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseLifelines - Survival Analysis
Lifelines - 生存分析
In medicine, we often care about "Time to Event" (death, recovery, relapse). Lifelines handles the complexity of "censored" data (patients who left the study).
在医学领域,我们通常关注「事件发生时间」(如死亡、康复、复发)。Lifelines可处理「删失数据」的复杂性(即中途退出研究的患者数据)。
When to Use
适用场景
- Analyzing clinical trial data (time to death, disease progression).
- Comparing survival between treatment groups.
- Identifying risk factors using Cox Proportional Hazards regression.
- Building survival models for prognosis.
- Epidemiology studies (time to infection, recovery).
- 分析临床试验数据(如死亡时间、疾病进展时间)。
- 对比不同治疗组的生存情况。
- 利用Cox比例风险回归识别风险因素。
- 构建生存模型以进行预后预测。
- 流行病学研究(如感染时间、康复时间)。
Core Principles
核心原理
Censoring
删失
Patients who haven't experienced the event by the end of the study are "censored". Lifelines properly accounts for this.
研究结束时未发生目标事件的患者数据被称为「删失数据」。Lifelines可正确处理这类数据。
Hazard Ratios
风险比
In Cox regression, a hazard ratio > 1 means increased risk; < 1 means decreased risk.
在Cox回归中,风险比>1意味着风险升高;<1意味着风险降低。
Survival Curves
生存曲线
Kaplan-Meier estimates the probability of survival over time without assuming a distribution.
Kaplan-Meier法可在不假设分布的情况下,估算随时间变化的生存概率。
Quick Reference
快速参考
Standard Imports
标准导入
python
from lifelines import KaplanMeierFitter, CoxPHFitter
from lifelines.statistics import logrank_test
import pandas as pdpython
from lifelines import KaplanMeierFitter, CoxPHFitter
from lifelines.statistics import logrank_test
import pandas as pdBasic Patterns
基础用法
python
undefinedpython
undefined1. Kaplan-Meier (Visualizing survival)
1. Kaplan-Meier(可视化生存情况)
kmf = KaplanMeierFitter()
kmf.fit(durations=df['days'], event_observed=df['died'])
kmf.plot_survival_function()
kmf.median_survival_time_ # Time when 50% have died
kmf = KaplanMeierFitter()
kmf.fit(durations=df['days'], event_observed=df['died'])
kmf.plot_survival_function()
kmf.median_survival_time_ # 50%患者死亡时的时间
2. Cox Proportional Hazards (Risk factors)
2. Cox比例风险模型(分析风险因素)
cph = CoxPHFitter()
cph.fit(df, duration_col='days', event_col='died')
cph.print_summary() # See hazard ratios for age, drug type, etc.
cph.plot_partial_effects_on_outcome(covariates=['age'], values=[30, 50, 70])
undefinedcph = CoxPHFitter()
cph.fit(df, duration_col='days', event_col='died')
cph.print_summary() # 查看年龄、药物类型等因素的风险比
cph.plot_partial_effects_on_outcome(covariates=['age'], values=[30, 50, 70])
undefinedCritical Rules
重要规则
✅ DO
✅ 建议
- Use event_observed correctly - 1 = event occurred, 0 = censored.
- Check proportional hazards assumption - Use to validate Cox model.
cph.check_assumptions() - Compare groups with logrank test - Statistical test for survival curve differences.
- Plot confidence intervals - Survival estimates have uncertainty, especially with small samples.
- 正确使用event_observed参数 - 1表示事件已发生,0表示数据被删失。
- 验证比例风险假设 - 使用验证Cox模型的有效性。
cph.check_assumptions() - 用logrank检验对比组间差异 - 用于检验生存曲线差异的统计方法。
- 绘制置信区间 - 生存估算存在不确定性,尤其是样本量较小时。
❌ DON'T
❌ 禁忌
- Don't ignore censoring - Treating censored patients as "survived" biases results.
- Don't use regular regression - Time-to-event data requires specialized methods.
- Don't assume proportional hazards - If violated, use stratified Cox or parametric models.
- 不要忽略删失数据 - 将删失患者视为「存活」会导致结果偏差。
- 不要使用常规回归模型 - 事件发生时间数据需要专用分析方法。
- 不要默认比例风险假设成立 - 若假设不成立,可使用分层Cox模型或参数模型。
Advanced Patterns
进阶用法
Comparing Multiple Groups
多组对比
python
from lifelines.statistics import multivariate_logrank_testpython
from lifelines.statistics import multivariate_logrank_testCompare survival across treatment groups
对比不同治疗组的生存情况
results = multivariate_logrank_test(df['days'], df['group'], df['died'])
print(results.p_value)
undefinedresults = multivariate_logrank_test(df['days'], df['group'], df['died'])
print(results.p_value)
undefinedParametric Models
参数模型
python
from lifelines import WeibullFitter, ExponentialFitterpython
from lifelines import WeibullFitter, ExponentialFitterWhen you need to extrapolate beyond observed data
当需要对观测数据范围外的情况进行外推时
wf = WeibullFitter()
wf.fit(df['days'], df['died'])
wf.plot()
Lifelines transforms complex survival data into actionable medical insights, enabling evidence-based decisions in clinical research and practice.wf = WeibullFitter()
wf.fit(df['days'], df['died'])
wf.plot()
Lifelines可将复杂的生存数据转化为可落地的医学洞见,助力临床研究与实践中的循证决策。