用途
生存分析(Survival Analysis)用于研究从某一时间起点到特定事件发生所经历的时间,即“事件发生时间”数据。它能够处理删失数据——部分研究对象在观察期结束时事件尚未发生,或中途退出研究。通过生存分析,可以估计生存概率、比较不同组别的生存差异,并评估协变量对风险的影响,从而进行寿命预测和风险评估。
主要能力
该技能涵盖以下核心概念与模型:
- 核心概念:生存时间(Time until event)、删失(Censoring,事件未被观察到)、风险率(Hazard,t 时刻的瞬时风险)、生存曲线(Survival Curve,生存超过时间 t 的概率)、风险比(Hazard Ratio,组间相对风险)。
- 常用模型:Kaplan-Meier(非参数生存曲线)、Cox 比例风险模型(半参数回归)、Weibull/指数模型(参数模型)、Log-rank 检验(比较生存曲线)、竞争风险(多种事件类型)。
- 删失类型:右删失(事件尚未发生,最常见)、左删失(事件在观察前已发生)、区间删失(事件发生在未知时间区间内)。
- 模型比较:Kaplan-Meier 用于描述而非解释;Cox 模型可调整协变量并假设比例风险;参数模型假设特定分布;竞争风险处理多种事件类型。
使用方式
资料提供了完整的 Python 实现示例,依赖 pandas、numpy、matplotlib、seaborn 和 lifelines 库。主要步骤包括:
- 生成模拟生存数据:创建包含时间、事件指示、分组、年龄、风险评分等字段的数据集。
- Kaplan-Meier 估计:拟合整体生存曲线,计算中位生存时间及特定时间点的生存概率。
- 分组比较:按治疗组和风险四分位数绘制生存曲线。
- Log-rank 检验:比较对照组与治疗组的生存曲线差异。
- Cox 比例风险模型:拟合多变量模型,输出系数、风险比和模型摘要。
- 模型诊断:绘制部分风险图、计算一致性指数、按预测风险四分位数绘制生存曲线、展示变量系数。
- 生存预测:对新患者数据预测特定时间点的生存概率。
- 比例风险假设检验:使用 proportional_hazard_assumption 函数进行检验。
- 汇总统计:输出中位生存时间、Log-rank p 值、一致性指数等。
示例代码中使用了 lifelines 库的 KaplanMeierFitter、CoxPHFitter、WeibullAFTFitter 以及 logrank_test、proportional_hazard_assumption 等函数。
适用场景
- 临床试验中的生存终点分析
- 设备可靠性评估
- 客户流失预测
- 员工留存分析
- 产品寿命研究
交付物
- Kaplan-Meier 生存曲线
- 生存概率估计
- Log-rank 检验结果
- Cox 模型系数
- 风险比
- 风险分层组
- 生存预测
- 模型诊断
限制
资料未提供关于该技能的具体收费、价格、平台支持范围或使用限制的说明。示例代码基于模拟数据,实际应用时需根据真实数据调整。Cox 模型需满足比例风险假设,若不满足需考虑其他模型。参数模型需正确指定分布形式。竞争风险场景需采用专门方法。