目录
前言
几个相关概念
生存概率与死亡概率
生存率
生存曲线
事件、生存时间
中位生存时间
生存率的比较
生存数据
风险集
如何读懂KM曲线
应用案例
新药对患者总生存时间的影响-KM曲线
软件操作及结果解读
应用GraphPad Prism制作生存曲线
SPSS绘制生存曲线图
问题描述
思路解析
图形绘制
结果解读
前言
在日常科研中,我们经常见到生存分析(Survival Analysis)与生存曲线分析,二者常用于研究患者预后的临床试验与生物标志物模型分析。
生存分析(Survival Analysis)是一种探索生存结局和时间数据关系以及规律的统计方法,这里的生存既可以指存活,也可以指研究者所关心的阳性事件。
而生存曲线则是生存分析数据的可视化体现,在各个研究领域的应用也十分广泛,接下来我们一起学习如何使用Graphpad Prism绘制生存曲线
几个相关概念
生存概率与死亡概率
生存概率:即条件生存率,表示某单位时段开始存活的个体,到该时段结束时仍存活的可能性,p。如年生存概率P = 活满一年例数/年初观察例数。
死亡概率:即条件死亡率,表示某单位时段开始时存活的个体死于该时段内的可能性大小,q。q = 1-p。
生存率
生存率:观察对象经历t个单位时段后仍存活的可能,即生存时间大于等于t的概率。
生存率随时间而变化,是关于时间t的函数,用S(t)表示,S(t)=P(T≥t)。某时间点生存函数的值就是该时间点的生存率。
估计生存率:
①若观察时段内没有删失:n年生存率 = 活满n年例数/期初观察例数。
②若观察时段存在删失:须分时段计算生存概率,假定观察对象在各个时段的生存时间独立,按概率相乘原理计算,n年的生存率 = P1×P2×P3×……×Pn,其中P1、P2、P3……Pn分别为第1、2、3……n年的生存概率。
具体方法:
①Kaplan-Meier法(乘积极限法):适用于小样本。②寿命表法:适用于大样本资料。
生存曲线
以观察(随访)时间为横轴,以生存率为纵轴,将各个时间点所对应的生存率连接在一起的绘阶梯状曲线图(图1)。
生存曲线时一条下降的曲线,分析时应注意曲线的高度和坡度。平缓的生存曲线表示高生存率或较长生存期,陡峭的生存曲线表示低生存率或较短生存期。
图 1 25例HIV-1 CRF01_AE 感染者进展至艾滋病期的生存曲线
事件、生存时间
生存分析是一种时间事件分析(time to event analysis),关注的是“事件”对于“主体”所发生的“时间点”。生存时间(survival time)是指主体从进入“风险”(risk)期直至“死亡”(death)的持续时间。在这里,“死亡”只是一个具体化的描述,可以泛指一切研究事件(event)的结果,事件发生即表示主体“死亡”。由于一些事件可以重复发生,如住院等,因此主体是可以多次“死亡”的。
中位生存时间
即生存时间的中位数,表示恰好有50%的个体尚存活的时间,又称半数生存期,所需研究时间短且受极端值影响较小,是生存分析中最常用的概括性统计量。
计算方法:
①图解法:利用生存曲线图在纵轴生存率为0.5处画一条与横轴平行的线,与生存曲线的交点所对应的时间即为中位生存时间(图2)。
图 2 25例HIV-1 CRF01_AE 感染者进展至艾滋病期的中位生存时间(图解法)
②线性内插法:找到相邻的两个时间段,使得S(ti-1)>0.5,S(ti)<0.5,中位生存时间计算如下S(42)=0.51,S(48)=0.36,其中位生存时间为(42-48)/(42-t)=(0.51-0.36)/(0.51-0.5),t=42.2(月)。
表1 25例HIV-1 CRF01_AE 感染者进展至艾滋病期的寿命表
生存率的比较
对于多组或多组生存率的比较,检验的无效假设是两组或多组总体生存时间分布(即整条生存曲线)相同,而不对其具体的分布形式做要求,属于非参数统计方法。常见的方法有log-rank检验和Breslow检验。
Log-rank检验对不同生存时间点取相同的权重进行计算,而Breslow检验按各时间点存活的观察单位数(随着生存时间增大而逐渐减小)加权。所以Breslow检验给观察早期差别更大权重,即对观察早期差别敏感;而log-rank检验对观察后期差别给相同权重,即对观察后期差别敏感。
生存数据
生存数据(survival data)拥有特定的格式,因事件类型和事件发生次数而异,如单类型单事件、单类型多事件、多类型单事件、多类型多事件。其中,单类型单事件是最“古典”(classic)的生存分析,它对应的生存数据常用(, )对表示,其中表示主体标识,表示时间点,为0/1变量,其中0表示主体删失,1表示主体“死亡”。
survival工具包中的ovarian是一个示例数据:
head(ovarian)
## futime fustat age resid.ds rx ecog.ps
## 1 59 1 72.3315 2 1 1
## 2 115 1 74.4932 2 1 1
## 3 156 1 66.4658 2 1 2
## 4 421 0 53.3644 2 2 1
## 5 431 1 50.3397 2 1 1
## 6 448 0 56.4301 1 1 2
data <- ovarian
其中,futime对应,fustat对应,其余为协变量。数据的第一行表示主体#1在时“死亡”;第四行表示主体#4在时删失。
风险集
风险集(risk set)是计算生存率(survival probability)的关键指标。使用表示主体在时间时仍处于受访状态,也称处于“风险”状态;当主体在时“死亡”或删失时,则为该主体受访的最后时间点(endpoint),即而。那么时处于风险状态的人数,即风险集就是,包括在时仍然存活的主体和刚好“死亡”或删失的主体。
如何读懂KM曲线
在临床研究中,我们常常强调要找客观可评价的终点指标来进行疾病疗效或者预后评价的指标。也越来越多人提出临床outcome的重要性。因此在大量的临床研究尤其是肿瘤预后研究中,我们往往选择死亡作为我们的outcome。说到死亡,我们看临床研究的论文时常常看到一类曲曲折折单调向下的曲线,也叫做生存曲线,可是这个生存曲线怎么看呢?
在有随访资料的研究中才能绘制生存曲线,生存曲线构成有两个重要的要素,就是终点事件是否发生以及终点事件发生的时间。生存曲线其实就是通过绘制一个单调向下的折线来展示一群患者随着时间的推移,终点事件发生的情况。在肿瘤临床研究里,这个事件常常是死亡、转移或复发。我们的随访时间或者说发生终点事件的时间,其实是从观察开始到发生了终点事件的时间。也就是说在生存曲线中除了终点事件还隐含了一个起始事件,临床研究中这个起始事件往往是某种干预,比如:服药、手术、化疗等;或者是某个特征时间点,比如:发病、疾病稳定、疾病缓解等。
了解完以上这些生存曲线构成的要素以后我们来看一条生存曲线。
这是用SPSS示例数据库绘制的一条生存曲线。可以看出来,这个生存曲线不是一个单一折线,显得比较粗。为什么呢?因为SPSS中用“+”来表示删失数据,这个研究删失病例多因此曲线中出现大量“+”使得曲线变得较粗。什么是删失(censor)呢?所谓删失病例就是失访、死于其它疾病或者观察结束时患者尚存活;也常叫做“截尾数据”。从这个图我们能看到:首先,这个疾病预后不差,在随访了120个月后仍有85%以上患者存活,也就是10年生存率在85%以上。其次,就是从这个曲线里,我们无法得到中位生存期,因为直到研究结束,我们也没观察到一半的患者死亡。但是我们可以获得这个人群的平均生存时间是122.7(120.1,125.3)月。从这个生存曲线我们还能看出这个疾病人群死亡速度是比较平缓、稳定的,这个曲线的下降斜率在不同点还是比较相似。不会有特别陡峭的下降,如果生存曲线陡峭往往说明这群患者的生存期会较短,预后不好。
大多数研究不是进行疾病自然史的研究,而是比较具有不同特征的患者或者是进行了不同干预措施的患者的生存情况,来判断预后。因此,我们在文献中看到的生存曲线往往是在一个坐标系里有两条或者两条以上的曲线。
比如这个生存曲线图就是比较Sorafenib和安慰剂组患者的死亡发生情况的,可以看出来,安慰剂组在最初几个月会有个陡峭下降,在3个月的时候就有一半的患者死亡,而Sorafenib组患者的情况则好一些,下降的趋势不像安慰剂组那么陡,在将近6个月的时候才发生一半患者死亡。也就是,两组的中位生存期时间分别是2.8和5.5个月;经计算,Sorafenib的HR是0.51,差异有统计学意义。也就是说,Sorafenib组的患者预后更好。
生存曲线中是可以直观看到不同组别的患者死亡的发生情况的,不同组别的生存曲线分得越开,也就是组间生存曲线下降趋势的差别越大,组与组之间预后的差别越大。
从生存曲线中还能直观看到50%,或者25%、75%、90%患者死亡发生在观察开始后多长的时间段里,这个对于临床医生向患者解释预后非常有意义。很多临床医生在阅读文献后,虽然“心领神会”HR的意义,但是往往很难向病人和家属介绍HR的意义。结合上面的例子,如果从HR的角度出发,医生会说,用Sorafenib比不用将使患者的死亡概率减少一半。可是要是结合生存曲线,我们可以说,用Sorafenib能延长一倍的生存时间。显然从生存曲线的角度出发来解释病情和解释治疗效果更容易让患者和家属理解和接受。
应用案例
新药对患者总生存时间的影响-KM曲线
医院需要研究一种新药的疗效情况,使用 Kaplan-Meier 曲线得到是否使用新药对患者总生存时间的影响。
患者状态:0代表存活或失访,1代表死亡。
软件操作及结果解读
软件操作
结果解读
1)模型数据摘要
上表展示了样本的事件数(状态=1)/删失数(状态=0)以及事件数占比的情况。
2)生存情况的均值和中位数
使用新药的中位生存时间是 58 周,而不使用新药是 26 周。可以认为新药的使用明显带来好处,使得生存时间有较大延长。
3)生存状态差异检验
- Log-Rank 检验,每个时点有相同的权重,对后期的差异更为敏感,最为常用。
- Breslow 检验,各时间点的观察例数为权重,例数越多权重越高,对前期的差异更为敏感。
- Tarone-Ware 检验,结合以上两种方法,适合生存曲线有交叉的情况使用。
三种方法的 P 值均小于 0.05,可以认为水平呈现显著性,拒绝原假设,因此认为这两组的生存率存在差异(原假设为生存率无差异)。
4)Kaplan-Meier 曲线
上图展示了 Kaplan-Meier 曲线,横轴为时间,纵轴为生存率,该曲线展示了随着时间变化生存率的变化情况,每一个“台阶”都对应着一个发生终点(死亡)事件的时间点。
X轴为0时,随访刚刚开始,还没有患者死亡,所以两组患者的生存率都是100%,随着时间的推移,有患者发生死亡,终点事件发生,生存率从1开始下降。在随后的随访过程中,我们发现未使用新药的死亡率在任何一个时间均高于使用新药,从图可见使用新药相比未使用新药,能明显增加生存率。
注意:
- 状态变量只能是二分类 0、1 变量,并且 1 代表是事件发生(如死亡/阳性等);
- Kaplan-Meier 生存曲线在于研究某 1 个因素对于 Y 的影响,COX 回归研究多个因素对于 Y 的影响
应用GraphPad Prism制作生存曲线
1. 打开Prism→选择survival→选择第1或第4个图
Show result as中选择“Fractions”那么纵坐标是从0-1,选择“Percents”那么纵坐标是从0-100。
2. 点create。这时需要录入生存数据了。数据的排列格式如下:
2.1第一列(X轴):是研究中患者的随访时间。单位可以是月、年等。
2.2第二列(A):是第一组患者对应的生存或死亡的情况,这里0代表生存,1代表死亡。第一行在表中是1,0,说明该患者随访了1个月,1个月随访时状态是生存,这一组第一个死亡的病例在表中是:10,1,说明该患者在10个月的时候死亡。
2.3第三列(B):是第二组患者对应的生存或死亡的情况。解释同上
3. 数据都录入好了我们就可以直接点左侧Graphs的Data1
4.这样我们可以得到最初的生存曲线
但这曲线不能直接用,因为它不符合我们的统计要求,生存曲线需要Y轴的最高点是1或100%,这个图明显不合适。下面我们来改改这个图让它更符合我们的要求。
5. 把鼠标点向Y轴,双击;会出现以下对话框
5.1 点击去掉Automatically determine the range and interval
5.2 把range中的maximum改成1.0
5.3 点击”OK“
就可以获得我们常常看到的生存曲线了。
6. 最后就是曲线的美化了。
6.1 双击任一生存曲线可以改变曲线的颜色,线型。改的同时图示中的颜色和线型也会同步改过来。
6.2 双击Y轴可以添加参考线。大多数研究会讨论中位生存时间,只要我们在图中双击Y轴,在”Additional ticks and grid lines“中写入0.5(如果开始作图时选择”Percents“这里应写入50)点选Tick Line在Details按钮中选择参考线的颜色和线型即可。
这样我们就可以得到以下这条符合要求的生存曲线了。
这个例子里,A组的中位生存时间大概是18个月,B组的中位生存时间大概是23个月。当然,要是愿意增加25%或75%都是可以的。只要在”Additional ticks and grid lines“中根据需要添加即可。
同样的,我们可以添加X轴的参考线,比如肿瘤预后研究中很关心5年生存率,这时我们只要双击X轴,在”Additional ticks and grid lines“中写入60(月)或5(年),点选上line即可。在这个栗子里,两组的5年生存率都是0,所以我先以1年生存率的参考线画出来示意一下:
可见在这个例子中,A组1年生存率是100%,B组是80%。
SPSS绘制生存曲线图
死亡速度、生存率、生存时间三者一事三表,高度相关(见下图)。
生存曲线图可集中形象反映三者的特征与关系。
生存曲线图最常见的莫过于Kaplan-Meier生存曲线图。1958年,Edward L. Kaplan和 Paul Meier合作发表了一篇关于如何处理不完整的生存时间资料文章后,利用Kaplan-Meier方法描绘生存过程、绘制生存曲线已经成为处理不同生存时间(time-to-event)的最熟悉的方式。
问题描述
我们以下数据为例,采用SPSS软件绘制出最朴素的生存曲线图。
3种疗法治疗66例白血病患者缓解时间(天),数据(kaplanm.sav)如下:
A疗法:4,5,9,10,11,12,13,20+,28,28,28,29,31,32,37,41,41,57,62,74,109,100,139,158+
B疗法:8,10,10,12,14,20,48,70,75,99,103,161+,162,169,195,199+,220,217+,245+
C疗法:8,10,11,12+,23,25,28,28,31,31,40,48,89,124,143,159+,190+,196+,197+,205+,219+
本案例中总共有3种疗法,每种疗法的终点阳性事件是疾病进展,生存时间即术后到疾病进展之间的缓解期时间。时间带+号意味着它是不完全生存时间,研究对象删失了。
随着时间的流逝,同一疗法的患者逐渐出现疾病进展的现象,且大部分出现在早期,所以早期生存率下降地较快(风险函数值即死亡速度较大)。不同人群的同一时期的死亡速度可能不一致,导致不同对象死亡率、中位生存时间都不一致。
思路解析
下图即Kaplan-Meier 生存曲线图,我们可以从中得到更多的信息。该图X轴为生存时间,Y轴为生存率,不同曲线代表不同治疗随着时间变化,生存率发生的变化。
很明显,三者死亡率均呈下降趋势,早期下降较快,后期趋于平稳;三者死亡率下降速度不一致,A疗法(代表蓝色曲线)生存率下降较快,死亡速度较快,因此生存时间也相对较短。B、C两种疗法伯仲之间。
曲线图折线的发生意味着此时此刻研究对象发生阳性事件(本例是患者出现了进展);带加号意味着,在此时此刻,患者出现了失访现象。
该时刻出现阳性事件
该时刻患者删失了
Y轴50%生存率对应的X轴时间为各条曲线的中位生存时间。可以看出来,时间长短上,A疗法<B疗法<C疗法,这是由于三种方法死亡速度不一致造成。
怎么看死亡速度(风险函数值)呢?某一时刻的死亡速度即该时刻的曲线的切线斜率(紫色虚线)。可以看出,在第40天前后,三者切线斜率是A疗法>B疗法>C疗法,意味着A疗法出现疾病进展的速度最快。同时,不同时刻同一人群死亡速度不同。
因此,通过K-M生存曲线图就可大致描述不同组人群的生存率、死亡速度、中位生存时间。同时,生存曲线图也显示出3组人群生存率变化趋势不尽相同,或者说3条生存曲线不一致,反映出3组人群不同的生存状态。
当然,若要更加细致地描述和比较生存状态,则要通过统计软件开展统计描述和统计分析。
利用SPSS描述与比较生存过程
研究利用SPSS方法,分析本文的案例“3种疗法治疗66例白血病患者缓解时间(天)”。该案例在SPSS数据库中,主要包括三个变量“分组变量”,“时间变量”,“是否删失(即是否出现阳性终点)”
描述生存过程的方法,包括寿命表法和Kaplan-Meier法。Kaplan-Meier法最常见,本文以该法为例开展分析。比较生存过程过程主要比较生存曲线是否一致,即比较生存率变化趋势总体上有无统计学差异,常见的方法包括LogRank检验和Bloslew方法。
图形绘制
1、 SPSS分析入口
SPSS分析入口:分析-生存分析-Kaplan-Meier法
2、 Kaplan-Meier法主界面及操作
①时间:放入生存时间;因子:放入分组变量;状态:放入结局变量,并定义事件。在定义事件中,软件要求作者指标,本研究阳性事件赋值。一般情况下,数据库构建针对生存结局变量,一般设定阳性事件赋值为1,因为删失而未观察到阳性结局者赋值为0。因此“定义事件”一般设定“单值”为1 。
②因子:放入分组变量,也就是处理因素或者暴露因素
③比较因子:即开展多条生存曲线的统计学比较,常见的方法包括秩的对数(LogRank)和布雷斯洛(Breslow)检验
③选项:一般选择计算生存分析表①(计算生存率)、平均值和中位数生存函数②(计算生存时间)、生存分析函数③(绘制生存曲线)
3、 分析结果
(1)生存率计算
SPSS软件基于Kaplan-Meier法,针对不同分组,比如A、B、C疗法,计算随访期间不同时点的生存率。Kaplan-Meier法根据每一个时间段的生存概率相乘得到累计生存率。因此在生存率表中,我们可以看到,当研究对象出现重点结局后,在对该时刻生存率的造成的改变;若研究对象删失,则生存率不发生改变(SPSS分析结果缺省)。
比如,我们想知道第20天A组人群的生存率。通过下表可以发现,第20天患者结局是删失,生存率缺省,那么可以观察前一时间段(13天)的生存率,它与第20天一致,即72.7%。
(2)中位生存时间计算
SPSS 同时给出生存时间的均数和中位数。不过生存分析一般只关注中位生存时间即可,所以可忽略下表的平均值。SPSS给出不同组和总人群的中位生存时间及其95%置信区间。
(3)生存过程总体比较
比较A、B、C生存过程的差异,比较的是生存曲线是否相同,实际比较的是生存率变化趋势是否相同,也近似地比较生存时间分布位置是否相同。
生存曲线是否相同一般有两种方式,基本统计学和高级统计学,基础统计学是差异性比较方法(类似于t检验、卡方检验);高级统计学是Cox回归。此处介绍基础统计学方法。
SPSS给出两种基础统计学方法,LogRank 和Breslow方法,两种均属于非参数检验。一般情况下结果相似。但是和Breslow对比较生存率是否相同时,对各时间点进行了根据样本量不同程度的加权,因此结果稍有不同。一般情况下,若需要突出早期随访生存率差异性,则采用Breslow,否则采用LogRank法。比如本例生存曲线图中,A、B、C 3种疗法早期效果差异不明显,所以Breslow检验无统计学差异(P=0.164),而LogRank则从全局考虑,得到了阳性结果(P=0.038)。
3种疗法生存时间的直方图
(4)最后给出生存分析图。上午已有详细的介绍,此处不再赘述。
结果表达
规范文字:结果表明,A疗法(中位生存时间32.0天 95%CI 20.3-43.7)、B疗法(中位生存时间99.0天 95%CI 52.1-145.9)、C疗法(中位生存时间48.0天 95%CI 0.0-131.6)存在着统计学差异(LogRank P=0.038)。
统计图:一般生存分析将结合生存曲线图来进行说明,且生存曲线图最好标注中位生存时间、P值甚至是HR值。如此一以来,作者阅读生存曲线图即可以得到关于生存率、时间和速度的所有信息。
结果解读
1.生存差异性的比较方法
生存分析核心任务是描述和比较差异性。研究者可通过生存曲线图大致了解组间的差异性,细致的数据需要借助统计分析方法。
统计分析方法论证生存曲线是否相同一般包括有两种方式,基本统计学和高级统计学。基础统计学是差异性比较方法(类似于t检验、卡方检验);高级统计学常用Cox回归。
基础统计学方法常用LogRank 和Breslow方法,主要是开展生存率分析比较,而Cox回归则比较的是风险函数,即“死亡”速度,的差异性。不仅如此,它还提供非常重要的指标:风险比(HR)。该指标不仅反映差异性,还反映研究因素(治疗措施、暴露因素)与生存风险的关联性程度。Cox回归一般用来同时探讨多种研究因素对生存风险的影响。我们将在后文详细介绍。
2.LogRank法是实验性研究研究评价疗效的首选方法
目前,越来越多的实验性研究注重对患者中长期的随访,因此生存分析逐渐成为评价疗效的主流方法。疗效评价主要开展疗效差异性研究,LogRank 、Breslow、Cox回归均可实现研究目的。
但由于Breslow注重短期效果,而Cox分析虽然能够计算HR值,但是它的使用受到诸多条件的限制,特别是等比例风险假设条件的限制。因此,实验性研究一般更注重LogRank检验,以该方法的P值作为衡量实验措施疗效的主要循证依据。
3. LogRank不能直接提供观察性研究病因学的证据
由于LogRank方法属于基础统计学,与t检验和F检验一样,在观察性研究中,只能探讨组间是否统计学差异。它无法克服组间不均衡带来的潜在干扰因素的影响。一般情况下,观察性研究探讨暴露因素与生存情况的因果关联性,往往需要借助Cox回归方法来进行,该方法同logistic回归一样,可以控制干扰因素的混杂偏倚。