生存分析之Kaplan-Meier曲线绘制与比较

发布网友 发布时间:2024-10-18 21:04

我来回答

1个回答

热心网友 时间:2024-10-19 03:10

转自个人微信公众号【Memo_Cleon】的统计学习笔记: 生存分析之Kaplan-Meier曲线绘制与比较。

我们先看一下这个案例的数据资料:

数据来自老美的TCGA( The Cancer Genome Atlas, 癌症基因组图谱, portal.gdc.cancer.gov/),下载多发性骨髓瘤CoMMpass研究中的临床资料,数据经过整理微调,所有的患者都经过了治疗。变量包括id、age(年龄)、race(种族:0=white;1=others;缺失值为没有报告或者不愿意记录)、relative_with_cancer_history(家族癌症史:0=无;1=有;缺失值为未统计)、stage(病理学分期:1=I期;2=II期;3=III期;缺失值表示没有该项数据)、status(状态:0=存活;1=死亡)、cause(死亡原因:0=存活;1=死于癌症;2=非癌症死亡);time_days(确诊后生存时间,天)。我们将利用这个数据进行一系列的生存分析演示。

此次笔记采用Kaplan-Meier法绘制生存曲线,同时比较不考虑其他因素下,不同病理学分期多发性骨髓瘤患者生存曲线。假设其他各个协变量组间均衡,已知研究变量病理学分期stage(1=I期;2=II期;3=III期),生存结局状态status(0=存活;1=死亡)生存时间time_days(确诊后生存时间,天)。

Kaplan-Meier法也称乘积极限法,SPSS操作可参见《 生存分析》,此次笔记示例stata操作。

【1】查看数据基本情况

分析>>生存分析>>摘要统计,检验和表格>>生存时间数据汇总:

点击[生存设置]进行生存数据设置:时间表选入time;失效事件选入status,失效值为1;确定;

分组单独摘要选入stage,确定。

数据集共纳入995例,存在191个失效事件,共有772871个分析人次,随访时间最长个体是1984天。分组查看各组信息,三个组共967例<995,表明stage变量有缺失。Ⅰ期和Ⅱ期中位生存时间无法进行估计,这是由于较早出现了截尾数据,Ⅲ期中位生存时间1616天。

【描述生存时间数据】可获得更详细的信息:分析>>生存分析>>摘要统计,检验和表格>>描述生存时间数据。【2】绘制生存K-M生存曲线

分析>>生存分析>>图形>>Kaplan-Meier生存函数:

生存时间设置,前面已经已经进行了设置;

按组单独进行计算,组变量选入stage。

sts graph, by(stage)

failure _d: status == 1

analysis time _t: time

结果显示,生存曲线组间存在差异,但差异是否具有统计学意义,需要进一步进行检验。如果想了解每一个时间节点上的风险人数、置信区间等,只需要在绘制的选项卡中设置就可以了。如果想用表格显示生存函数或者风险函数的具体人数,可以在分析>>生存分析>>摘要统计,检验和表格>>列表显示生存或累积风险函数进行设置。

【3】组间差异检验

分析>>生存分析>>摘要统计,检验和表格>>生存函数相等性检验:

生存时间设置,前面已经已经进行了设置;

变量选入stage;检验方法有多种,默认是log-rank法,其他还有以Cox回归为基础的相等性检验,Wilcoxon检验(即Breslow检验)等;stage是病理分期,等级变量,我们选中趋势检验复选框,看下随着多发性骨髓瘤分期的加重,生存函数是否出现线性变化趋势。

对数秩检验结果显示,不同病理分期的患者生存率曲线是不同的(chi2=69.35,P<0.0001);结合生存曲线,随着分期的加重,患者生存率呈逐渐缩短的趋势(chi2=66.80,P<0.0001)。

【4】三条生存曲线总体存在统计学差异,哪两条会存在差异呢?

在SPSS中直接提供了相应的Pairwise选项,但在stata里笔者也没有找到相应的命令(等找到了再补充@_@),我们可以考虑使用Cox回归的后验估计来完成。

分析>>生存分析>>回归模型>>Cox比例风险模型:

声明生存数据;自变量选入stage,且必须以因子变量的形式纳入,否则后验估计无法进行。

具体步骤如下:

在进行Cox回归前需要验证风险比例假定,Stata的Cox回归与风险比例假设检验的详细操作与解读可参见《 生存分析之Cox回归》一文。实际上本例并不满足风险比例假定,可能需要进一步的分段考察,因此本例仅是演示操作步骤。

统计>>后验估计:参数估计的检验,对比和比较>>成对比较,开始:

计算成对比较的因子项,本例选入stage;多重比较提供了具体两两比较的方法,本例选入Bonferroni法。

结果如下。结果显示任意两组间死亡风险均有统计学意义(95%CI均未包含0,即P<0.05)。

回到最开始的数据,很多时候我们会对生存结局有着更详细地记录,如本例,有些患者是死于癌症相关的,有些不是死于癌症相关的,这些在状态变量stauts里面全部标注为死亡。如果你的研究结局是多发性骨髓瘤死亡,这样做显然不合适,前面的示范明显是多发性骨髓瘤的全因死亡。如果我们想研究结局是多发性骨髓瘤的死亡该怎么做?较为传统的做法就是将非多发性骨髓瘤死亡的个体(如因其他疾病、意外等死亡)、失访个体均按删失数据( Censored Data)处理。结果如下:

上述处理方法是较为常见的方式,但这样处理有一个前提条件,即个体删失情况与个体终点事件相互,通俗一点说个体的删失不会影响到终点事件的发生。比如研究全因死亡,只要随访的时间足够长,终点事件(死亡)总会发生,只是现实当中限于资源以及患者的失访,我们不太可能完全获得或者随访至死亡结局出现而已,虽不能得,但死亡是肯定的。但如果研究的是癌症死亡,当发生了其他原因的死亡(如非癌症死亡、意外死亡等),无论你随访时间多长,患者都不会因为癌症再死一次;如果你研究的是疾病复发,当患者发生了死亡,患者也不会再出现复发这个终点事件了。这时候某个结局事件的发生阻碍了我们研究结局的发生,如采用传统的生存分析方法估计,生存风险会偏高,这个问题怎么解决呢?或者你早就知道了,这时候应该考虑竞争风险模型(Competing Risk Model )啦!预知竞争风险模型如何,且听以后再分解吧。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com