第十八章生存分析和COX回归上海第二医科大学生物统计教研室第一节基本概念•在医学,生物学研究中,常用到生存分析(SurvivalAnalysis)方法。例如对于肿瘤等疾病的疗效及预后的考核,通常不用治愈率,有效率等表示,而用将来复发或死亡的时间长短表示,也即生存期来表示。•所谓生存期(survivaltime)是指从某个标准时刻(如发病,确诊,开始治疗或进行手术的时间)算起至死亡或复发为止的时间。生存期不同于一般指标的二个特点:1.有截尾数据(censoreddata)随访中未能知道病人的确切生存时间,只知道病人的生存时间大于某时间。(1)病人失访或因其他原因而死亡---失访(2)到了研究的终止期病人尚未死亡---终访截尾数据可记为t+,如:4+=生存时间大于4年。虽然截尾数据提供的信息是不完全的,但不能删去,因为这不仅损失了资料,而且会造成偏性。2.生存期的资料一般不服从正态分布。由于上述原因,常用的统计方法不适用,而要用特殊的统计方法。生存分析是指对于生存期这一指标进行分析的一系列特殊的统计方法。•生存时间不一定专用于死与活的情况,生存时间(存活时间)可定义为从某种起始事件到达某终点事件所经历的时间跨度。例如急性白血病病人从治疗开始到复发为止之间的缓解期;冠心病病人在两次发作之间的时间间隔;已作输卵管结扎的妇女从施行输卵管吻合手术后至受孕的时间间隔;在流行病学研究中,从开始接触危险因素到发病所经历的时间等都可作为生存时间用作生存分析。•有时还收集一些有关因素(称为自变量或协变量),以分析这些协变量是否对生存时间有影响,影响的大小,是缩短或延长生存时间。这可以通过Cox回归进行分析,因此,Cox回归可看成带有协变量的生存分析。•包括:•(1)开始观察日期,终止观察日期---生存时间•(2)结局(最终的观察到的是死亡还是存活)•死于该病---完全数据•存活或死于其他原因---截尾数据•每个生存期数据要用2个变量表示:观察到的生存时间和是否截尾(如:用1表示截尾,用0表示死亡;4+用4,1表示;4用4,0表示)。•(3)协变量---各种影响生存期长短的因素。随访资料的记录:第二节描述生存时间分布规律的函数•一.生存率(SurvivalRate)•又称为生存概率或生存函数,它表示一个病人的生存时间长于时间t的概率,用S(t)表示:s(t)=P(Tt)•如5年生存率:s(5)=P(T5)•以时间t为横坐标,S(t)为纵坐标所作的曲线称为生存率曲线,它是一条下降的曲线,下降的坡度越陡,表示生存率越低或生存时间越短,其斜率表示死亡速率。•§1.2概率密度函数•(ProbabilityDensityFunction)•简称为密度函数,记为f(t),其定义为:•f(t)=lim(一个病人在区间(t,t+△t)内死亡概率/△t)•它表示死亡速率的大小。如以t为横坐,f(t)为纵坐标作出的曲线称为密度曲线,由曲线上可看出不同时间的死亡速率及死亡高峰时间。纵坐标越大,其死亡速率越高,如曲线呈现单调下降,则死亡速率越来越小,如呈现峰值,则为死亡高峰。•§1.3风险函数(HazardFunction)•用h(t)表示,其定义为:•h(t)=lim(在时间t生存的病人死于区间(t,△t)的概率/△t)•由于计算h(t)时,用到了生存到时间t,这一条件,故上式极限式中分子部分是一个条件概率。可将h(t)称为生存到时间t的病人在时间t的瞬时死亡率或条件死亡速率或年龄别死亡速率。当用t作横坐标,h(t)为纵坐标所绘的曲线,如递增,则表示条件死亡速率随时间而增加,如平行于横轴,则表示没有随时间而加速(或减少)死亡的情况。风险函数的不同情况:常数,如:死于飞机失事。下降,如:急性损伤。上升,如:持续接触危险因素。澡盆样,如:人的一生。生存分析目的:(1)估计生存函数。(2)比较各组的生存函数。(3)研究影响生存期长短的因素。第三节生存率的估计方法•生存率S(t)的估计方法有参数法和非参数法。常用非参数法,非参数法主要有二个,即,乘积极限法与寿命表法,前者主要用于观察例数较少而未分组的生存资料,后者适用于观察例数较多而分组的资料,不同的分组寿命表法的计算结果亦会不同,当分组资料中每一个分组区间中最多只有1个观察值时,寿命表法的计算结果与乘积极限法完全相同。t(年)s(t)0110.6720.4530.340.250.1460.0970.06参数法可求出一个方程表示生存函数S(t)和时间t的关系,画出的生存曲线是光滑的下降曲线。非参数法只能得到某几个时间点上的生存函数,再用直线联起来,画出的生存曲线是呈梯型的。一.乘积极限法(Product-LimitMethod)•简称为积限法或PL法,它是由统计学家Kaplan和Meier于1958年首先提出的,因此又称为Kaplan-Meier法,是利用条件概率及概率的乘法原理计算生存率及其标准误的。•设S(t)表示t年的生存率,s(ti/ti-1)表示活过ti-1年又活过ti年的条件概率,例如s(1),s(2)分别表示一年,二年的生存率,而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资料中药组积限法计算生存率─────────────────────────────────────时间状态期初人数死亡人数条件生存率累积生di∑di/ni(ni-di)累积生存tisinidi(ni-di)/ni存率^S(ti)ni(ni-di)率标准误①②③④⑤⑥⑦⑧⑨=⑥√⑧─────────────────────────────────────2活4死1510.93330.93330.0047620.0047620.06446活6活8活9死1110.90900.84850.0090910.0138530.09999活10死910.88890.75420.0138890.0277420.125612活13死710.85710.64650.0238100.0515510.146818死610.83330.53870.0333330.0848850.157019活24死410.75000.40400.0833330.1682180.165726死310.66670.26940.1666670.3348850.155931死210.50000.13470.5000000.8348850.123143活─────────────────────────────────────积限法的计算步骤为:1.将n个生存数据ti,按小到大排列,当截尾数据与完全数据(非截尾值)相同时,截尾数据排列在后,并写出每个生存数据的状态Si(即死或活),见表22.1的1,2列2.写出各个完全数据(即死亡状态)的期初人数ni和死亡人数di,见表22.1的3,4列。3.计算条件生存率的估计值,见表中第5列,^S(ti/ti-1)=(ni-di)/ni4.计算累积生存率,即时间ti的生存率估计值(见表中第6列)^S(ti)=^S(ti-1)^S(ti/ti-1)5.计算S(ti)的标准误(见表中第9列)iSE(^Sti)=^S(ti)√{∑dj/[nj(nj-dj)]}j=1表中已列出了积限法的全部结果,各个时间点的生存率和标准误分别在6,9两列,例如二年生存率(即24个月)为0.4040±0.1657二.寿命表法(LifeTableMethod)•适用于随访的病例数较多,将资料按生存期进行分组,在分组的基础上计算生存率,本法也能用于不分组的资料,此时计算结果与积限法相同。某医院1946年1月1日到1951年12月31日收治的126例胃癌病例,生存情况如表22.2,试用寿命表法估计生存率。表22.2126例胃癌患者寿命表法估计生存率─────────────────────────────────────────────────────时间(年)期初例数死亡例数失访例数截尾例数有效例数条件生存率累积生存率di∑di/ni(ni-di)累积生存tin'idiuiwini^S(ti/ti-1)^S(ti)ni(ni-di)率标准误⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾=⑻√⑽─────────────────────────────────────────────────────0-12647415116.50.59660.59665.805×10-35.805×10-30.04551-60561151.50.90290.53862.088×10-37.893×10-30.04792-38201530.50.93440.50332.301×10-30.01020.05083-2122716.50.87880.44238.359×10-30.01860.06024-100067.01.00000.442300.01860.06025-40042.01.00000.442300.01860.0602─────────────────────────────────────────────────────寿命表法估计生存率步骤如下:1.将观察例数按时间段(年)0-,1-,2-,划分,分别计数期初例数,死亡,失访,截尾例数列入表22.2的1-5列。事实上,从第二个时间段开始,期初人数ni系由下式算得:n'i=n'i-1-di-ui-wi例如第二行,即时间段1-,有n'2=126-47-4-15=602.计算各时间段期初实际观察例数,(亦称有效例数)nini=n'i-ui/2-wi/2上式表明该时间段期初例数中的失访,及截尾例数只计其半时,即得有效例数。如第一行,n1=126-4/2-15/2=116.53.分别用(22.5)(22.6)(22.7)式计算条件生存率^S(ti/ti-1),累积生存率s(ti)及其标准误。计算结果已列于表22.2中,第7,8,11列,表中9,10二列系用于第11列的计算。例如时间段0--中^S(ti/ti-1)=(116.5-47)/116.5=0.5966^S(ti)=1×0.5966=0.5966SE(S(ti))=0.5966×√5.805×10-3=0.0455故一年生存率的估计为0.5966±0.0455同样二年生存率的估计为0.5386±0.0479由于寿命表法与积限法的累积生存率及其标准误的计算公式完全相同,所以,当分组资料中每一个分组区间中最多只有1个观察值时,寿命表法就是积限法。第四节生存率的比较•当有两个或两个以上的生存分布时,我们常需比较它们是否来自同一生存分布,此时的假设检验为:•H0:样本所来自的总体生存分布相同。•H1:样本所来自的总体生存分布不相同。•可选用的检验方法有: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)2df=3-1表22.3例22.1资料两疗法生存比较的Logrank检验───────────────────────────