
生存分析入门:Kaplan-Meier 曲线、Log-rank 检验与 Cox 回归
面向临床科研人员的生存分析实用教程——讲清楚什么时候要用生存分析、怎么准备数据、怎么解读 KM 曲线和 Cox 回归结果。
你的研究需要比较两组患者的预后,结局指标是"从手术到复发的时间"。有些患者复发了,有些到末次随访还没有复发,有些中途失访了。你不能简单地用 t 检验比较两组的平均时间——因为那些没有复发的患者,你并不知道他们真正的复发时间是多少。
这就是为什么需要生存分析。
什么是生存分析?
生存分析是一类专门处理"时间到事件"(time-to-event)数据的统计方法。这里的"事件"不一定是死亡,可以是任何你关心的结局:
- 肿瘤复发
- 疾病进展
- 术后并发症发生
- 移植物失功
- 患者死亡
生存分析的核心优势是它能正确处理删失数据(censored data)——那些在观察期结束时还没有发生事件的个体。如果你直接把这些人排除,会引入严重的偏倚;如果你把他们的随访时间当成事件时间,结果同样是错的。生存分析提供了一套数学框架来合理利用这些不完整的信息。
你的数据需要什么格式?
做生存分析,每个患者至少需要两个变量:
- 时间变量(time):从起始时间点到事件发生或删失的持续时间。起始点通常是确诊日期、手术日期或入组日期。单位可以是天、月或年,但要全部统一
- 状态变量(status / event):标记该患者是否发生了事件。通常编码为 1 = 事件发生,0 = 删失
例如:
| 患者 ID | 随访时间(月) | 事件状态 | 分组 |
|---|---|---|---|
| 001 | 24 | 1(复发) | 治疗组 |
| 002 | 36 | 0(删失) | 对照组 |
| 003 | 12 | 1(复发) | 治疗组 |
| 004 | 30 | 0(删失) | 治疗组 |
什么情况算删失?
- 患者在研究结束时仍未发生事件
- 患者失访(中途失去联系)
- 患者因与研究事件无关的原因退出(如搬迁、拒绝继续参与)
数据准备阶段最常见的错误是时间计算不一致(有的从确诊算起,有的从手术算起)和删失状态标记不准确。在开始分析之前,务必仔细核对。
Kaplan-Meier 方法
Kaplan-Meier(KM)方法是最基础也最常用的生存分析工具。它用来估计生存函数——即在任意时间点 t,患者尚未发生事件的概率。
KM 曲线怎么读?
KM 曲线的横轴是时间,纵轴是生存概率(0 到 1 或 0% 到 100%):
- 曲线从左上角的 1.0(100%)开始
- 每当有患者发生事件,曲线会下降一个台阶
- 删失数据在曲线上通常用小竖线或加号标记——曲线在该点不下降,但后续的风险集合人数减少了
- 曲线越平坦,说明事件发生率越低,预后越好
- 两条曲线分离越大,说明两组之间的差异越明显
中位生存时间
中位生存时间是 KM 曲线与 50% 生存概率水平线的交点对应的时间值。它表示有一半的患者在这个时间点之前发生了事件。
如果曲线始终高于 50%(即超过一半的患者在观察期内没有发生事件),那么中位生存时间无法计算——这在预后较好的研究中很常见。
风险表(Number at risk)
规范的 KM 图下方通常附带一张风险表,展示在各个时间节点上仍然"处于风险中"的患者人数。这张表很重要,因为曲线后半段的估计往往基于很少的患者,置信度较低。如果某个时间点只剩 5 个患者,曲线的波动就不太可靠了。
Log-rank 检验
KM 曲线展示的是视觉上的差异,但你还需要一个统计检验来判断两组之间的差异是否具有统计学意义。
Log-rank 检验是最常用的方法。它的原理是比较在每个事件发生时间点上,两组的实际事件数与期望事件数的差异。
- 零假设:两组的生存曲线没有差异
- 结果:给出一个卡方统计量和 p 值
- 适用条件:两组的风险比(hazard ratio)在整个随访期间大致恒定(即两条 KM 曲线不交叉)
如果两条 KM 曲线出现交叉(比如一种药物短期效果好但长期效果差),Log-rank 检验的效能会降低,此时可能需要考虑其他检验方法(如 Wilcoxon 检验或分段分析)。
Cox 比例风险回归
Log-rank 检验只能告诉你两组有没有差异,但不能告诉你差异有多大,也不能调整混杂因素。这时候就需要 Cox 回归。
Cox 比例风险回归是生存分析中最重要的多因素分析方法。它的输出是风险比(Hazard Ratio, HR):
- HR = 1:两组风险相同
- HR > 1:该因素增加事件风险(预后更差)
- HR < 1:该因素降低事件风险(预后更好)
例如,"治疗组相对于对照组的 HR = 0.62(95% CI: 0.45–0.85, p = 0.003)"意味着在调整了其他变量之后,治疗组的事件风险比对照组低 38%。
等比例风险假设
Cox 回归的核心假设是等比例风险假设(proportional hazards assumption):即两组之间的风险比在整个随访期间保持不变。
检验方法包括:
- Schoenfeld 残差检验:如果 p 值显著,说明违反了等比例风险假设
- 观察 KM 曲线:如果两条曲线交叉,通常意味着等比例风险假设不成立
如果假设不成立,可以考虑将时间作为分层变量,或使用时间依赖的 Cox 模型。
多因素 Cox 回归
在实际论文中,Cox 回归通常分两步报告:
- 单因素分析:逐个检验每个变量与结局的关系,筛选出有意义的变量(通常 p < 0.1 或 p < 0.2 作为纳入标准)
- 多因素分析:把筛选出的变量同时放入模型,得到调整后的 HR
多因素 Cox 回归的结果通常用森林图展示,横轴是 HR(对数刻度),竖线标注 HR = 1 的参考线。这是临床论文中最常见的结果呈现方式之一。
常见陷阱
1. 起始时间点不统一
有的患者从确诊日期开始算,有的从手术日期开始算。起始点必须在研究设计中明确定义,并在数据中严格统一。
2. 信息性删失
如果患者因为"病情恶化转院"而失访,这种删失与事件本身是相关的,违反了生存分析的基本假设。需要在论文中讨论这种偏倚的影响。
3. 样本量不足
Cox 回归中每个自变量通常需要至少 10–20 个事件数。如果总共只有 30 个事件,你最多只能纳入 2–3 个变量。变量放太多会导致模型过拟合。
4. 只报 p 值不报 HR
很多初学者的论文只写"两组差异有统计学意义(p < 0.05)",而不报告 HR 和 95% CI。审稿人几乎一定会要求补充。
手动做这些有多麻烦?
用 SPSS 做生存分析,你需要手动设置时间变量和事件变量、逐步构建模型、手动调整 KM 图的格式。用 R 更灵活但学习成本更高——光是 survival 和 survminer 两个包的参数就够研究一阵。
而且生存分析的结果呈现有很多细节:KM 图需要附风险表、Cox 回归需要用森林图、还需要报告等比例风险假设的检验结果……每个细节都需要额外的代码和排版工作。
Data2Paper 如何简化这个流程
Data2Paper 内置了完整的生存分析功能。上传包含时间变量和事件状态的临床数据文件,系统会自动识别数据结构,生成 Kaplan-Meier 生存曲线(含风险表)、执行 Log-rank 检验、构建 Cox 回归模型,并输出符合期刊规范的图表和解读文字。
你不需要写代码,也不需要在统计软件和文档之间反复切换——上传数据、描述研究问题,就能拿到可以直接放进论文的完整结果。
更多文章

AI 论文审稿:Data2Paper 如何用五位独立审稿人评审你的论文
Data2Paper 的论文审稿功能模拟完整的编辑评审委员会——五位具有不同专业背景的 AI 审稿人、引用完整性验证、编辑决定和优先级修改路线图。


AI 文献综述:Data2Paper 如何从一个研究主题生成完整的文献综述报告
Data2Paper 的文献综述功能将研究主题转化为结构化的文献综述报告,包含真实引用、主题综合分析,提供 PDF、Word 和 LaTeX 格式下载。


临床数据分析全流程指南:从病历导出到论文结果
一篇面向医学研究生和临床科研人员的数据分析教程——从医院信息系统导出数据开始,到产出符合期刊规范的统计结果。

邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新