生存曲线分析1什么是生存分析的内容?•“我的期望年龄是多少岁?”•“到底这个新疗法能使得这类绝症患者多存活多久?”“还有什么别的因素和存活长短有关?”•保险公司也要考虑各种人群的寿命,以确保其人寿保险或医疗保险既具有竞争力又有利可图。•在工程上,人们也会考虑一个材料,一个原件,甚至一个设备的寿命是多少。2什么是生存分析的内容?•对于某一特定个体“能够活多久”这一类的问题,任何负责任的人都不会作出确定的回答。•但是对于具有某些性质的一类人群,则可以通过对数据的分析来得到活过一定时间的概率。•如果关心不同治疗手段的效果,则可以通过数据分析来比较这些方法,看它们是否有效,还能建立可以预测的量化的模型。下面引进一个例子。3例子•例18.1(数据surv.txt)为了研究对农药中毒的治疗,需要进行动物试验。研究人员利用40只老鼠进行某种农药中毒后的某种治疗方法试验。•其中有20只鼠接受治疗处理;而作为对照的另外20只鼠没有接受治疗。•在此之后观察这些老鼠的生存时间(天数)。对每一个鼠都记录了其存活时间(t)、是否属于治疗组以及是否在某观测时间段数据出现删失。4例子•这里的所谓删失(censored)是由于某种原因,无法继续观测;这意味着老鼠至少活过了这个最后记录的时间,但最终活了多久就不得而知了。•这种删失在对于人类疾病的跟踪研究中经常出现;虽然不如未删失(uncensored)的数据完整,但也包含了其至少活了多久这样的信息。•这里数据中的删失称为右删失。56一些概念•在生存分析中,人们往往希望知道存活过时间t的概率,这就是所谓的生存函数(survivalfunction)S(t)。•显然它等于1减去生存时间少于t的概率,即S(t)=1-F(t)。•还有一个在t时刻处(附近),对死亡发生的可能性进行度量的函数,称为危险函数(hazardfunction),用h(t)表示,它实际上是-lnS(t)的关于t的导数(见后面公式)。717.1对生命数据的简单描述:生命表•生命表(LifeTable)是对生存分析数据的一种数量和图形的描述。•生命表计算出一些估计,并依此画出描绘性的图。•下页的生存函数图是从简单生命表得到的:8SurvivalFunction存活时间180160140120100806040200CumSurvival1.11.0.9.8.7.6.5.4.3.2.10.0组别1.00.00横坐标为生存的时间,而纵坐标是生存函数的大小。显然,随着时间流逝,生存的概率应该递减;因此这种曲线都是呈下降趋势。治疗组的生存概率要比对照组看上去要高。还可以得到生命表中的其他量的图,比如估计的概率密度函数和危险函数。由于它们并不比生存函数更直观,这里就不给出了。9检验治疗组与对照组的生存函数是否不同:Wilcoxon(Gehan)检验。•在上面得到的生存函数的估计下,可以对治疗组和对照组进行比较。所用的检验为Wilcoxon(Gehan)检验。•这里的零假设是:这两组的生存函数相同。•可以很容易从计算机输出得到检验的p-值等于0.0564。因此,如取显著性水平为0.05,就不能拒绝零假设。1017.2对简单生命表的改进:Kaplan-Meier方法•前面的描述性生命表有些粗糙,对于删失数据的处理也过于简单。•Kaplan-Meier方法对其进行了改进。主要是对累积生存函数(输出列为CumulativeSurvival)的估计方法和前面的不同。•下面的表格为根据例18.1数据按照Kaplan-Meier方法所产生的生命表。•这里一共两个表:第一个是对照组的(treat=0),第二个是治疗组的(treat=1)。这里Status=1意味着没有删失,而Status=0意味着有删失。111213SurvivalFunctions存活时间180160140120100806040200CumSurvival1.11.0.9.8.7.6.5.4.3.2.10.0组别1.001.00-censored.00.00-censored这是按照Kaplan-Meier方法所估计的生存函数的图。这个图和前面的不仅数值上不同,而且还标出了删失值的位置。14治疗组与对照组的生存函数是否不同:三种检验•在存在任意右删失(例18.1数据的删失就是右删失)的情况下,利用SPSS软件可以得到三种对治疗组和对照组进行比较的检验;检验的零假设均为:这两组的生存函数相同。这三种检验是对数秩(logrank)检验(Mantel-Cox检验)、Breslow检验(对前面Wilcoxon检验的改进),以及Tarone-Ware检验。通过软件计算可以得到这三种检验的结果:1517.3回归:COX比例危险模型•回归的方法对于统计推断是十分重要的。那么,如何在生存数据的分析上建立回归模型呢?•人们一般希望生存函数能表示为某些相关的自变量的一个函数。在例18.1中的自变量就是判别治疗组和对照组的哑元;•自变量还可能是连续变量,比如年龄,药物剂量等等。1617.3回归:COX比例危险模型•用x表示自变量(变量可能是向量,即有多个自变量);•用S(t|x)表示在时间t的生存函数,这里的x表示有关的自变量;•用S0(t)表示待估计的基本生存函数(baselinesurvivalfunction);它和自变量x无关;•Cox比例危险模型为exp(')00(|)[()]lnln(|)'ln()xStxStStxxHt或者17例18.1数据拟合Cox回归模型的SPSS输出:18可以得到各种点图(1)0.0020.0040.0060.0080.00SurvivalTime0.00.20.40.60.81.0CumSurvivalGroup.001.00SurvivalFunctionforpatterns1-2根据Cox模型所估计的治疗组(group=1)和对照组(group=0)的生存函数图19可以得到各种点图(2)10.0020.0030.0040.0050.0060.0070.0080.00SurvivalTime012345CumHazardGroup.001.00HazardFunctionforpatterns1-2根据Cox模型所估计的治疗组(group=1)和对照组(group=0)的累积危险函数20SPSS软件使用说明(描述性生命表)•选择Analyze-Survival-LifeTables;•然后把变量time选入Time;•再在DisplayTimeIntervals选0though200by1(或者诸如5等任意间隔);•把变量censored选入Status,再点击DefineEvent来定义未删失值用1代表;再把变量treat选入Factor,再点击DefineRange,在Minimum和Maximum分别选0和1;•之后点击Options,在其中点击LifeTable(默认值);在Plot选择需要的图,比如Survival;•在CompareLevelsofFirstFactor处,可点Overall或根据需要。然后在点击Continue之后,点击OK来运行。21SPSS软件使用说明(Kaplan-Meier方法)•选择Analyze-Survival-Kaplan-Meier;•然后把变量time选入Time;把变量censored选入Status,再点击DefineEvent来定义未删失值为1;再把变量treat选入Factor;•之后点击Options,在其中点击SurvivalTable(s)(默认值)和其他需要的表格;在Plot选择需要的图,比如Survival;•回到主对话框后,点击CompareFactorLevels来选择需要的检验;也可点击Save来存储一些输出。然后在点击Continue之后,最后点击OK来运行。22SPSS软件使用说明(Cox比例危险模型)•选择Analyze-Survival-CoxRegression;•然后把变量time选入Time;把变量censored选入Status,再点击DefineEvent来定义未删失值为1;再把变量treat选入Covariates;之后点击Categorical,把treat选入;•在主对话框点击Options,在其中选择需要的表格输出内容;•在主对话框点击Plots,选择需要的图形,其中可以把CovariateValuesPlottedat中的treat选入SeparateLinesfor以把定性协变量的不同水平的曲线放到一张图中[1]。然后在点击Continue之后,回到主对话框,最后点击OK来运行。•[1]注意在SPSS12.0之前的SPSS版本,这个操作有问题(不能实现)。23附录:对生命数据的简单描述:生命表•简单生命表对每个分析者确定的宽度为hi的时间段i:(ti,ti+1),给出了如下信息(以SPSS输出为例):2425简单生命表•在这个输出中的多数概念都是很容易理解的,最多参见最后一列的简单定义。•这种表格仅仅是数据通过初等运算的一些汇总。具体的生命表就不在这里展示了。后面一节还将介绍并展示改进的生命表。根据这里的生命表可以绘出描述性的图。•图18.1是根据例18.1数据绘出的对治疗组(组1)和对照组(组0)所估计的生存函数图。返回到生存函数图26本章的内容和公式(基本)27本章的内容和公式(Kaplan-Meier)28本章的内容和公式(Cox模型)29