1、第十八章第十八章生存分析和生存分析和COXCOX回归回归上海第二医科大学生物统计教研室第一节第一节 基本概念基本概念 在医学,生物学研究中,常用到生存分析(Survival Analysis)方法。例如对于肿瘤等疾病的疗效及预后的考核,通常不用治愈率,有效率等表示,而用将来复发或死亡的时间长短表示,也即生存期来表示。所谓生存期(survival time)是指从某个标准时刻(如发病,确诊,开始治疗或进行手术的时间)算起至死亡或复发为止的时间。生存期不同于一般指标的二个特点:1.有截尾数据(censored data)随访中未能知道病人的确切生存时间,只知道病人的生存时间大于某时间。(1)病人失
2、访或因其他原因而死亡-失访(2)到了研究的终止期病人尚未死亡-终访截尾数据可记为t+,如:4+=生存时间大于4年。虽然截尾数据提供的信息是不完全的,但不能删去,因为这不仅损失了资料,而且会造成偏性。2.生存期的资料一般不服从正态分布。由于上述原因,常用的统计方法不适用,而要用特殊的统计方法。生存分析是指对于生存期这一指标进行分析的一系列特殊的统计方法。生存时间不一定专用于死与活的情况,生存时间(存活时间)可定义为从某种起始事件到达某终点事件所经历的时间跨度。例如急性白血病病人从治疗开始到复发为止之间的缓解期;冠心病病人在两次发作之间的时间间隔;已作输卵管结扎的妇女从施行输卵管吻合手术后至受孕的
3、时间间隔;在流行病学研究中,从开始接触危险因素到发病所经历的时间等都可作为生存时间用作生存分析。有时还收集一些有关因素(称为自变量或协变量),以分析这些协变量是否对生存时间有影响,影响的大小,是缩短或延长生存时间。这可以通过Cox回归进行分析,因此,Cox 回归可看成带有协变量的生存分析。包括:(1)开始观察日期,终止观察日期-生存时间(2)结局(最终的观察到的是死亡还是存活)死于该病-完全数据 存活或死于其他原因-截尾数据 每个生存期数据要用2个变量表示:观察到的生存时间和是否截尾(如:用1表示截尾,用0表示死亡;4+用4,1表示;4用4,0表示)。(3)协变量-各种影响生存期长短的因素。随
4、访资料的记录:第二节 描述生存时间分布规律的函数 一.生存率(Survival Rate)又称为生存概率或生存函数,它表示一个病人的生存时间长于时间t的概率,用S(t)表示:s(t)=P(Tt)如5年生存率:s(5)=P(T5)以时间t为横坐标,S(t)为纵坐标所作的曲线称为生存率曲线,它是一条下降的曲线,下降的坡度越陡,表示生存率越低或生存时间越短,其斜率表示死亡速率。1.2 概率密度函数 (Probability Density Function)简称为密度函数,记为f(t),其定义为:f(t)=lim(一个病人在区间(t,t+t)内死亡概率/t)它表示死亡速率的大小。如以t为横坐,f(t
5、)为纵坐标作出的曲线称为密度曲线,由曲线上可看出不同时间的死亡速率及死亡高峰时间。纵坐标越大,其死亡速率越高,如曲线呈现单调下降,则死亡速率越来越小,如呈现峰值,则为死亡高峰。1.3 风险函数(Hazard Function)用h(t)表示,其定义为:h(t)=lim(在时间t生存的病人死于区间(t,t)的概率/t)由于计算h(t)时,用到了生存到时间t,这一条件,故上式极限式中分子部分是一个条件概率。可将h(t)称为生存到时间t的病人在时间t的瞬时死亡率或条件死亡速率或年龄别死亡速率。当用t作横坐标,h(t)为纵坐标所绘的曲线,如递增,则表示条件死亡速率随时间而增加,如平行于横轴,则表示没有
6、随时间而加速(或减少)死亡的情况。风险函数的不同情况:常数,如:死于飞机失事。下降,如:急性损伤。上升,如:持续接触危险因素。澡盆样,如:人的一生。生存分析目的:(1)估计生存函数。(2)比较各组的生存函数。(3)研究影响生存期长短的因素。第三节 生存率的估计方法 生存率S(t)的估计方法有参数法和非参数法。常用非参数法,非参数法主要有二个,即,乘积极限法与寿命表法,前者主要用于观察例数较少而未分组的生存资料,后者适用于观察例数较多而分组的资料,不同的分组寿命表法的计算结果亦会不同,当分组资料中每一个分组区间中最多只有 1个观察值时,寿命表法的计算结果与乘积极限法完全相同。t(年)s(t)01
7、10.6720.4530.340.250.1460.0970.06 参数法可求出一个方程表示生存函数S(t)和时间t的关系,画出的生存曲线是光滑的下降曲线。非参数法只能得到某几个时间点上的生存函数,再用直线联起来,画出的生存曲线是呈梯型的。一.乘积极限法(Product-Limit Method)简称为积限法或PL法,它是由统计学家Kaplan和Meier于1958年首先提出的,因此又称为Kaplan-Meier法,是利用条件概率及概率的乘法原理计算生存率及其标准误的。设S(t)表示t年的生存率,s(ti/ti-1)表示活过ti-1年又活过 ti年的条件概率,例如s(1),s(2)分别表示一年
8、,二年的生存率,而s(2/1)表示活过一年者,再活一年的条件概率,据概率的乘法定律有:S(2)=S(1)S(2/1),一般地有 S(ti)=S(ti-1)S(ti/ti-1)例22.1 用某中药加化疗(中药组)和化疗(对照组)两种疗法治疗白血病后,随访记录各患者的生存时间,不带+号者表示已死亡,即完全数据,带+号者表示尚存活,即截尾数据,试作生存分析。时间单位为月。中药组 10,2+,12+,13,18,6+,19+,26,9+,8+,6+,43+,9,4,31,24 对照组 2+,13,7+,11+,6,1,11,3,17,7资料中药组积限法计算生存率时间 状态 期初人数 死亡人数 条件生存
9、率 累积生 di di/ni(ni-di)累积生存 ti si ni di (ni-di)/ni 存率S(ti)ni(ni-di)率标准误 =2 活 4 死 15 1 0.9333 0.9333 0.004762 0.004762 0.0644 6 活 6 活 8 活 9 死 11 1 0.9090 0.8485 0.009091 0.013853 0.0999 9 活 10 死 9 1 0.8889 0.7542 0.013889 0.027742 0.1256 12 活 13 死 7 1 0.8571 0.6465 0.023810 0.051551 0.1468 18 死 6 1 0.8
10、333 0.5387 0.033333 0.084885 0.1570 19 活 24 死 4 1 0.7500 0.4040 0.083333 0.168218 0.1657 26 死 3 1 0.6667 0.2694 0.166667 0.334885 0.1559 31 死 2 1 0.5000 0.1347 0.500000 0.834885 0.1231 43 活积限法的计算步骤为:1.将n个生存数据ti,按小到大排列,当截尾数据与完全数据(非截尾值)相同时,截尾数据排列在后,并写出每个生存数据的状态Si(即死或活),见表22.1的1,2列 2.写出各个完全数据(即死亡状态)的期初
11、人数ni和死亡人数di,见表22.1的3,4列。3.计算条件生存率的估计值,见表中第5列,S(ti/ti-1)=(ni-di)/ni 4.计算累积生存率,即时间ti的生存率估计值(见表中第6列)S(ti)=S(ti-1)S(ti/ti-1)5.计算S(ti)的标准误(见表中第9列)i SE(Sti)=S(ti)dj/nj(nj-dj)j=1 表中已列出了积限法的全部结果,各个时间点的生存率和标准误分别在6,9两列,例如二年生存率(即24个月)为0.40400.1657二.寿命表法(Life Table Method)适用于随访的病例数较多,将资料按生存期进行分组,在分组的基础上计算生存率,本法
12、也能用于不分组的资料,此时计算结果与积限法相同。某医院1946年1月1日到1951年12月31日收治的126例胃癌病例,生存情况如表22.2,试用寿命表法估计生存率。表22.2 126例胃癌患者寿命表法估计生存率 时间(年)期初例数 死亡例数 失访例数 截尾例数 有效例数 条件生存率 累积生存率 di di/ni(ni-di)累积生存 ti ni di ui wi ni S(ti/ti-1)S(ti)ni(ni-di)率标准误 =0-126 47 4 15 116.5 0.5966 0.5966 5.80510-3 5.80510-3 0.0455 1-60 5 6 11 51.5 0.902
13、9 0.5386 2.08810-3 7.89310-3 0.0479 2-38 2 0 15 30.5 0.9344 0.5033 2.30110-3 0.0102 0.0508 3-21 2 2 7 16.5 0.8788 0.4423 8.35910-3 0.0186 0.0602 4-10 0 0 6 7.0 1.0000 0.4423 0 0.0186 0.0602 5-4 0 0 4 2.0 1.0000 0.4423 0 0.0186 0.0602 寿命表法估计生存率步骤如下:1.将观察例数按时间段(年)0-,1-,2-,划分,分别计数期初例数,死亡,失访,截尾例数列入表22.2
14、的1-5列。事实上,从第二个时间段开始,期初人数ni 系由下式算得:ni=ni-1-di-ui-wi 例如第二行,即时间段1-,有 n2=126-47-4-15=60 2.计算各时间段期初实际观察例数,(亦称有效例数)ni ni=ni-ui/2-wi/2 上式表明该时间段期初例数中的失访,及截尾例数只计其半时,即得有效例数。如第一行,n1=126-4/2-15/2=116.5 3.分别用(22.5)(22.6)(22.7)式计算条件生存率S(ti/ti-1),累积生存率s(ti)及其标准误。计算结果已列于表22.2中,第7,8,11列,表中9,10二列系用于第11列的计算。例如时间段0-中 S
15、(ti/ti-1)=(116.5-47)/116.5=0.5966 S(ti)=10.5966=0.5966 SE(S(ti)=0.59665.80510-3=0.0455 故一年生存率的估计为0.59660.0455 同样二年生存率的估计为0.53860.0479 由于寿命表法与积限法的累积生存率及其标准误的计算公式完全相同,所以,当分组资料中每一个分组区间中最多只有1个观察值时,寿命表法就是积限法。第四节 生存率的比较 当有两个或两个以上的生存分布时,我们常需比较它们是否来自同一生存分布,此时的假设检验为:H0:样本所来自的总体生存分布相同。H1:样本所来自的总体生存分布不相同。可选用的检
16、验方法有:Logrank法,广义Wilcoxon法,和Cox-Mantel法等。当拒绝H0时,认为几个生存分布不相同。当不需要整体比较,而只要比较个别时间点上几组生存率时可用下面方法:(1)两个生存率比较 生存率S1和S2,其方差为V1和V2 用卡方检验:2=(S1-S2)2/(V1+V2)df=1(2)两个以上两个生存率比较 生存率S1,S2和S3,方差为V1,V2和V3 用卡方检验:权重W1=1/V1,W2=1/V2,W3=1/V3 加权平均生存率:S=(W1*S1+W2*S2+W3*S3)/(W1+W2+W3)2=W1*(S1-S)2+W2*(S2-S)2+W3*(S3-S)2 df=3
17、-1表22.3 例22.1资料两疗法生存比较的Logrank检验时间 秩次 中药组序号 死亡例序号 处于危险 Logrank (非截尾数据)状态例数 变换值Wti(年)i1 i2 i3 r 1 1 1 26 -0.96 2+2 1 0.04 2+3 0.04 3 4 2 23 -0.92 4 5 2 3 22 -0.87 6 6 4 21 -0.82 6+7 3 0.18 6+8 4 0.18 7 9 5 18 -0.77 7+10 0.23 8+11 5 0.23 9 12 6 6 15 -0.70 9+13 7 0.30 10 14 8 7 13 -0.63 11 15 8 12 -0.5
18、4 11+16 0.46 12+17 9 0.46 13 18 10 9 9 -0.37 13 19 10 8 -0.37 17 20 11 7 -0.16 18 21 11 12 6 0 19+22 12 1.00 24 23 13 13 4 0.25 26 24 14 14 3 0.59 31 25 15 15 2 1.09 43+26 16 2.093.1 Logrank检验(Log Rank Test)当比较的几个样本生存分布,全部为完全数据时,本检验又称为Savage检验。Logrank检验的计算步骤如下:1.将两样本的生存数据混合,由小到大排列,并给以秩次i1,当截尾数据与完全数据
19、数值相同时,截尾数据排列在后。并设两样本含量分别为m1,m2,总例数n=m1+m2。例22.1中药组与对照组生存数据排列结果见表22.3中第1,2列。2.列出所比较的两组中任一个组的序号i2(本处选用中药组),记入表22.3中第3列。3.列出死亡例的序号i3(见表22.3中第4列)。4.计算非截尾数据(完全数据)各时间点处于危险状态的例数r,它表示该时刻时还剩下多少例数。r系由与i3相应的i1值计算而得。r=n-i1+1 (22.10)例如与生存期7(月)相应的r值系由 r=26-9+1=18 算得,见表中第5列。5.对秩次i1作logrank变换,即计算logrank变换值W,其算法为秩次为
20、i1 的序号为i3非截尾数据的W值为 i3 W=1/rj-1 (22.11)j=1 秩次为i1的截尾数据,首先判断它在那二个非截尾数据之间,如果它在序号i3与i3+1之间则W为 i3 W=1/rj (22.12)j=1特别地,当截尾数据在第一个非截尾数据之前时,取W=0,几个截尾数据落在同样序号的非截尾数据之间时,它们具有相同的W值。例如表22.3中第1个数据为非截尾(已死亡)则由(22.11)式得 W=1/26-1=-0.96第2,3数据都是截尾数据(存活),它处于序号i3=1与2之间据(22.12)式,有 W=1/26=0.04第4个数据为非截尾,则由(22.11)式 W=1/26+1/2
21、3-1=-0.92余类推(见表22.3第6列)6.计算所指定的组别(本例为中药组,序号为i2)的logrank变换值之和T T=W i2上式的连加系在指定的i2范围内相加。其均数与方差分别为 E(T)=m1/n W V(T)=m1m2/n(n-1)(W-E(T)/m1)2(22.14)式中连加系在全部观察值上完成,m1系指所指定的组别的例数,(本例为中药组m1=16),n为总例数。Z=T-E(T)/V(T)Z服从标准正态分布,故可由Z0.05=1.96,Z0.01=2.58作出统计推断。本例资料有T=3.822,E(T)=0.440210-6,V(T)=3.1755,Z=2.145,故P0.0
22、5,拒绝H0,认为两种疗法生存分布不相同。3.2 Cox-Mantel检验(Cox-Mantel Test)又称广义Savage检验(Generalized Savage Test),可用于两个或多个生存分布的比较。仍用例22.1的资料说明本检验的计算过程,为叙述方便现将中药组称为A组,对照组称为B组。本检验的H0,H1同前。表22.4 例22.1资料两疗法生存分布比较的Cox-Mantel检验时间 状态 组别 A组 B组 合并死亡率 期望死亡数 ti si 期初人数 死亡数 期初人数 死亡数 (B组)n1i d1i n2i d2i pi =(+)/(+)=1 死 B 16 10 1 0.03
23、8462 0.38462 2 活 B 16 9 2 活 A 16 9 3 死 B 15 8 1 0.043478 0.347826 4 死 A 15 1 7 0.045455 0.318181 6 死 B 14 7 1 0.047619 0.333333 6 活 A 14 6 6 活 A 14 6 7 死 B 12 6 1 0.055556 0.333333 7 活 B 12 6 8 活 A 12 4 9 死 A 11 1 4 0.066667 0.266667 9 活 A 11 410 死 A 9 1 4 0.076923 0.30769211 死 B 8 4 1 0.083333 0.33
24、333311 活 B 8 412 活 A 8 213 死 A,B 7 1 2 1 0.222222 0.44444417 死 B 6 1 1 0.142857 0.14285718 死 A 6 1 0 0.166667 019 活 A 5 024 死 A 4 1 0 0.250000 026 死 A 3 1 0 0.333333 031 死 A 2 1 0 0.500000 043 活 A 1 0 小计 3.212284计算步骤为1.将两组生存数据混合由小到大排列,当截尾数据与非截尾数据数值相同时,截尾数据排列在后。并指明各生存数据的状态(死或活)及所属组别(见表22.4中1-3列)2.列出A
25、,B两组各生存时间上的期初人数及死亡人数分别以n1i,d1i,n2i,d 2i表示(见表22.4中第4-7列)。3.在完全数据的相应行中计算合并死亡率Pi Pi=(d1i+d2i)/(n1i+n2i)(22.16)4.在两组中任选一组(本处用B组)计算 各生存时间点上的期望死亡人数,它由该组期初人数乘以合并死亡率而得 E(d2i)=n2iPi (22.17)参见表22.4中8.9两列。5.所指定的组别(本处可B组)死亡人数的期望值与方差为 E(d2i)=n2iPi (22.18)V(d2i)=n1in2i/(n1i+n2i-1)Pi(1-Pi)(22.19)计算服从标准正态分布的统计量Z Z=
26、d2i-E(d2i)/V(d2i)(22.20)可据Z0.05=1.96,Z0.01=2.58,作出统计推断。代入本例资料有d2i=7,E(d2i)=3.212284,V(d2i)=1.916190,Z=2.7363 故P0.01,拒绝H0,认为两种疗法的生存期不相同。3.3 广义Wilcoxon检验(Generalized Wilcoxon Test)又称为Breslow检验法(Breslow Test),可用于两个或两个以上生存分布的比较,其H0,H1同前。本处仍用例22.1资料说明其计算过程。表22.5 例22.1资料两疗法生存分布比较的广义Wilcoxon检验时间 状态 组别 累积生存
27、率 计分值 A组计分值 ti si S(ti)Ui Ui(A)1 死 B 0.9615 0.9615 2 活 B -0.0385 2 活 A -0.0385 -0.0385 3 死 B 0.9197 0.8812 4 死 A 0.8779 0.7976 0.7976 6 死 B 0.8361 0.714 6 活 A -0.1639 -0.1639 6 活 A -0.1639 -0.1639 7 死 B 0.7897 0.6258 7 活 B -0.2103 8 活 A -0.2103 -0.2103 9 死 A 0.7370 0.5267 0.5267 9 活 A -0.2630 -0.263
28、010 死 A 0.6803 0.4173 0.417311 死 B 0.6236 0.303911 活 B -0.376412 活 A -0.3764 -0.376413 死 A 0.4851 0.1087 0.108713 死 B 0.4851 0.108717 死 B 0.4158 -0.099118 死 A 0.3465 -0.2377 -0.237719 活 A -0.6535 -0.653524 死 A 0.2598 -0.3937 -0.393726 死 A 0.1732 -0.567 -0.567031 死 A 0.0866 -0.7402 -0.740243 活 A -0.9
29、134 -0.91341.将两组生存数据混合由小到大排列,当截尾数据与完全数据数值相同时,截尾数据排列在后。并写出每个生存数据的状态(死或活)及所属组别(见表22.5中第1-3列)。2.用积限估计法对两组合并资料估计生存率(即累积生存率)S(ti),列于表中第4列3.计算各生存时间点的计分值Ui。Ui=S(ti-1)+S(ti)-1 观察值为完全数据 S(ti)-1 观察值为截尾数据 (22.21)其中S(0)=1例如第一个时间点Ti=1是完全数据(死亡),故U1=1+0.9615-1=0.9615,第2,3个时间点为截尾数据 U2=U3=0.9615-1=-0.0385第4个时间点为完全数据
30、 U4=0.9615+0.9197-1=0.8812 余类推。4.计算任一组的计分值之和的绝对值,本处选择A组,其计分值已记第6列中,T=Ui(A)(22.22)T的期望值为0,方差为 V(T)=m1m2U2/(m1+m2)(m1+m2-1)(22.23)(22.23)式中U2系指全部生存时间点的U值平方和,Z=T/V(T)(22.24)Z服从标准正态分布,故可据Z0.05=1.96,Z0.01=2.58作出统计推断。本例资料有T=2.8712,U2=6.6559,V(T)=1.6384,Z=2.243,P0表示该协变量是危险因素,越大使生存时间越短 I 0表示该协变量是保护因素,越大使生存时
31、间越长 h(t,x)=h0(t)exp(1x1+2x2+mxm)h0(t)为基础风险函数,它是全部协变量X1,X2,Xm都为0或标准状态下的风险函数,一般是未知的。h(t,x)表示当各协变量值X固定时的风险函数,它和h0(t)成比例,所以该模型又称为比例风险模型(proportional hazard model)COX回归模型不用于估计生存率,主要用于因素分析。COX回归的应用:和LOGISTIC回归相似(1)因素分析 分析哪些因素(协变量)对生存期的长短有显著作用。对各偏回归系数作显著性检验,如显著,则说明在排除其它因素的影响后,该因素与生存期的长短有显著关系。(2)求各因素在排除其它因素
32、的影响后,对于死亡的相对危险度(或比数比)如某因素Xi的偏回归系数为bi,则该因素Xi对于死亡的比数比为exp(bi)当Xi为二值变量时,如转移(1=转移,0=不转移)exp(bi)为转移相对于不转移对于死亡的相对危险度(或比数比)当Xi为等级变量时,如淋巴结转移,分0,1,2,3,4五个等级。exp(bi)为每增加一个等级,死亡的相对危险度,如等级3相对于等级0其死亡的相对危险度为:exp(3bi)当Xi为连续变量时,如年龄(岁)exp(bi)为每增加一岁时,死亡的相对危险度 如60岁相对于35岁其死亡的相对危险度为exp(25bi)(3)比较各因素对于生存期长短的相对重要性 比较各标准化偏
33、回归系数bi 绝对值的大小,绝对值大的对生存期长短的作用也大。(4)考察因素之间的交互作用 如考察XL和XK之间的交互作用是否显著,再增加一各指标:XLK=XL*XK,如其偏回归系数bLK显著,则XL和XK之间的交互作用显著。例18.4 结果-指标 回归系数 P值 相对危险度-肿瘤部位中段 -0.7169 0.0469 0.488肿瘤部位下段 -1.0077 0.0068 0.365 深度 0.3585 0.0007 1.431 TNM分期 0.1603 0.0003 1.174 未分化癌 0.7019 0.0385 2.018淋巴结转移数 0.2703 0.0001 1.310-侵及深度越深,TNM分期越大,淋巴结转移数越多,则生存期越短;细胞类型为未分化癌的生存期短 肿瘤部位中段或下段的比上段生存期长。COX回归方程为:h(t,x)=h0(t)exp(-0.7169X3b -1.0077X3c+0.3585X4+0.1603X5+0.7019X8c +0.2703X9)