引言Introduction

Kaplan-Meier曲线是临床研究最常见的生存分析图,但很多人会画,不会读。时间、事件、删失、分组、检验,这些参数一旦理解偏了,结论就可能失真。想把曲线真正用于论文和汇报,必须先掌握它的核心逻辑。
一张临床研究数据分析场景图,左侧为患者随访时间轴,右侧为阶梯状Kaplan-Meier曲线,突出删失点和中位生存期标记

1. Kaplan-Meier曲线是什么,解决什么问题

1.1 它不是普通折线图

Kaplan-Meier曲线,简称K-M曲线,本质上是生存函数的非参数估计 。它描述的是,观察对象在某个时间点之后仍然存活的概率。常用于肿瘤、心血管、感染、器官移植等随访研究。

它和普通折线图不同。普通折线图看的是数值变化,K-M曲线看的是**“到某时间点仍未发生结局事件的概率”** 。这里的结局事件可以是死亡、复发、进展,也可以是其他研究终点。

1.2 为什么临床研究离不开它

K-M曲线最大的价值,是它能处理删失数据 。这在真实世界随访中很常见。比如患者失访、研究结束时仍未发生事件,都会形成删失。
如果忽略删失,生存率估计会偏差。K-M法通过逐时间点计算生存概率,再累积相乘,尽量保留每条记录的信息。

它回答的核心问题只有一个。某组患者的结局发生得更早,还是更晚。 这也是它在论文中最常见的用途。

2. 绘制K-M曲线前,先看懂这5个关键参数

2.1 时间变量

时间变量是K-M分析的横轴基础。它代表从起点到终点的观察时长。常见单位是天、月、年。
时间起点必须定义清楚。 例如,手术日、入组日、随机分组日,不能混用。起点不统一,曲线就没有可比性。

在数据处理中,时间变量最好保持连续数值。若有两个时间点,如起始和结束,也要先转换成随访时长。

2.2 事件状态

事件状态是最关键的参数之一。它决定某个个体是否在观察期内发生了结局。
在R的Surv()函数中,通常会将状态变量编码为0和1,但具体含义要以数据字典为准。不同数据集可能不同,不能默认。

事件变量必须和研究终点严格一致。 例如研究总生存期时,事件通常是死亡;研究无进展生存期时,事件可能是进展或死亡。

2.3 删失信息

删失不是错误数据,而是生存分析的常规组成部分。常见删失包括随访截止时未发生事件、失访、退出研究。
在K-M曲线中,删失点通常会标在曲线上,常见为小短线或加号。它提示的是“截至此时仍未观察到事件”。

需要注意的是,删失不等于痊愈,也不等于失败。 它只是表示后续结局未知。因此,删失处理是否合理,会直接影响曲线可信度。

2.4 分组变量

分组变量用于比较不同人群的生存差异。最常见的是治疗组与对照组,也可以是性别、分期、基因分型、风险评分分层。
分组后会得到两条或多条K-M曲线。曲线间距、交叉情况、下降速度,都是判断差异的重要线索。

但分组不是越多越好。组别过多会降低每组样本量,增加结果不稳定性。 在样本有限时,建议先保证组间定义清晰,再考虑进一步分层。

2.5 统计检验

画出曲线不代表有统计学差异。比较组间生存差异时,最常用的是Log-rank检验
它检验的是不同组的生存曲线是否存在总体差异。若P值小于0.05,通常认为差异具有统计学意义。

但要注意,Log-rank检验适合风险比例大致稳定 的情况。若曲线明显交叉,单纯依赖这个检验可能不足,需要结合Cox模型或分层分析。

3. Kaplan-Meier曲线是怎么一步步算出来的

3.1 先排序,再计算每个时间点的生存概率

K-M法的基本思路并不复杂。先把所有生存时间从小到大排序,再在每个发生事件的时间点上计算死亡概率和生存概率。
一个时间点的生存率,等于前一个时间点生存率乘以当前时段的生存概率。删失时刻不引起生存率下降。

你可以把它理解为连续乘法。前一段没出事,下一段也没出事,累计生存率才会保留。 这也是K-M曲线呈阶梯下降的原因。

3.2 中位生存期是怎么来的

中位生存期,指生存率下降到0.5时对应的时间点。它是临床论文里最常见的结果之一。
如果曲线没有降到0.5,或样本随访时间不足,中位生存期可能无法估计,论文里应如实说明,而不是强行填写。

中位生存期不是“平均活多久” 。它只表示一半样本尚存活的时间位置,临床含义更稳健,也更不受极端值影响。

4. 画图时常见的4个错误,很多人都踩过

4.1 把事件编码写反

这是最常见错误。把0、1含义弄反,会直接让曲线方向和结论错误。
例如把“死亡=1”误写成“生存=1”,结果就会把真实风险解释反。

画图前一定先核对数据字典和原始编码。不要只看变量名,要看定义。

4.2 时间单位前后不一致

一个变量用天,另一个变量用月,或同一研究中不同表格单位不一致,都会导致图形和结果无法解释。
建议在分析前统一单位,并在图注里明确写出。

4.3 忽略样本量太小的问题

K-M曲线对样本量很敏感。尤其是后期时间段,风险集人数越来越少,曲线尾部容易不稳定。
所以看图时不能只盯着末端下降,应该同时关注at risk人数 。没有风险集支撑的尾部变化,解释价值有限。

4.4 只看P值,不看曲线形态

P值能说明统计差异,但不能替代临床判断。
如果两条曲线早期分离、后期交叉,背后可能提示治疗延迟效应、非比例风险,或者分组异质性。读图要结合临床背景,而不是只看一个数字。

5. 如何把K-M曲线读得更像“临床结论”

5.1 先看曲线方向和分离度

如果某组曲线整体更高,说明其生存概率更好。若下降更慢,通常提示预后更优。
但要结合起始时间、终点定义和删失分布一起看。

曲线分离越早,往往提示干预效应越明显。若晚期才分离,则可能是长期随访后才显现差异。

5.2 再看中位生存期和置信区间

中位生存期是最直观的临床指标。
但单看一个数还不够,最好结合95%置信区间。区间越宽,说明估计越不稳定。样本量不足或删失较多时,置信区间会明显变宽。

5.3 最后看统计检验和临床意义

统计显著不等于临床显著。
比如两组中位生存期差异只有1个月,但样本量很大,P值也可能很小。反过来,差异很大但样本不足,也可能不显著。

所以,真正规范的表述应包括以下内容。

  • 曲线是否分离。
  • 中位生存期是多少。
  • Log-rank检验P值是多少。
  • 是否存在删失较多、尾部不稳定的问题。

6. 从软件操作到论文输出,怎么做得更规范

6.1 数据准备要先标准化

在R中绘制K-M曲线前,通常需要先整理出三个核心字段。

  1. 随访时间。
  2. 事件状态。
  3. 分组变量。

如果使用survival包,Surv(time, status)是基础输入。随后可用survfit()拟合模型,再用plot()或更美观的绘图工具输出图形。

6.2 图中建议保留的元素

一张合格的K-M曲线图,建议至少包含以下内容。

  • 坐标轴名称和单位。
  • 每组曲线颜色区分。
  • 删失标记。
  • 风险人数表。
  • Log-rank P值。
  • 中位生存期标注,若可估计。

如果图上缺少风险人数表,读者很难判断后期曲线是否可靠。 这在投稿和答辩中尤其重要。

6.3 结果描述要简洁、准确

论文中不要只写“组间差异有统计学意义”。
更好的写法是:某组中位生存期为X个月,另一组为Y个月,Log-rank检验P=0.0X,提示两组生存结局存在差异。
如果无法估计中位生存期,也应直接说明“中位生存期未达到”。

总结Conclusion

Kaplan-Meier曲线看似简单,真正难点在于理解它背后的时间、事件、删失、分组和统计检验逻辑。画图只是开始,读图才是关键。 只有把这5个参数掌握清楚,才能避免编码错误、单位混乱和误读P值。
如果你希望把生存分析做得更规范,既能快速出图,又能清晰展示风险人数和统计结果,可以考虑借助专业工具提升效率。解螺旋 可以帮助你更高效地整理数据、输出规范图表,让K-M曲线从“会画”真正变成“会解释、能发表”。

解螺旋科研助手企业微信二维码,扫码添加免费领取科研资料礼包,包含AI科研提效、SCI投稿技巧、国自然基金、医学科研绘图、科研软件工具等实用资料