2.1 生存分析
生存分析方法是一种非常重要的统计分析方法,主要用于分析涉及一定时间的发生和持续长度的时间数据,用以揭示事件发生和发展的规律。生存分析是近一二十年来发展起来的数理统计新分支,它是根据现代医学、工程等科学研究的大量实际问题提出来的,着重对截断数据进行统计分析研究。生存分析的理论与应用受到了世界各国,特别是发达国家很大的重视。1986年美国国家科学院委员会提出的数学发展概况中,曾把生存分析列为六大发展方向之一。
生存分析目前已广泛应用在医学、生物学、公共健康、金融学、保险和人口统计等诸多领域,它涉及数理统计中原有的参数统计与非参数统计的结合,而且涉及一些较深较新的概率和其他数学工具,因此,生存分析方法日益受到人们的重视。
本章将介绍如何使用SPSS来进行生存分析,SPSS所提供的功能主要有以下4项。
Life Tables:生命表分析。
Kaplan-Meier:Kaplan-Meier估计。
Cox Regression:Cox回归分析。
Cox w/Time-Dep Cov:时间相依性的回归分析。
2.1.1 生存分析简介
生存分析(Survival Analysis)主要用于对涉及一定时间的发生和持续长度的时间数据的分析。生存分析所分析的数据通常称为生存数据,生存数据按照观察数据所提供的信息的不同,可以分为完全数据、删失数据和截尾数据3种。
生存分析是目前统计学的热门,自20世纪70年代中期以来,得到了迅速的发展,无论在理论或应用方面都受到了人们的重视。生存分析不仅能妥善处理现实生活中常见的截尾数据(Censored Data)问题,而且在解决实际问题的同时,还揭示一些更为复杂的理论问题,促进了数理统计理论的发展。1986年美国国家科学院委员会提出的数学发展概况的报告中,6个有代表性的分支学科中就有一个是论述生存分析的,而且被作为数学与其他学科,甚至社会科学互相渗透的一个重要例子。
生存分析所要分析的数据称为生存数据,用于度量某事件发生前所经历的时间长度。事件可以是产品的失效、保单的索赔、疾病的发生、生命的死亡等。若跟产品失效有关,生存数据也称为失效数据。
按照观察数据所提供的信息的不同,生存数据又可以分为以下3大类。
1.完全数据
完全数据指的就是提供了完整信息的数据。比如研究某种产品的失效时间,如果有一个样品从进入研究直到失效都在我们的观察之中,就可以得到其失效的具体时间,那么这个失效数据就是一个完全数据。
2.删失数据
生存分析经常研究在不同的时间点或时期被研究的事件发生的概率,而研究的周期可能很长,比如在医学领域,研究某种慢性疾病的治疗效果一般都要对患者进行长期随访,统计一定时期后的生存或死亡的情况以判断治疗效果,这种随访数据就是生存数据。但是,由于获得数据的时间很长,中间可能患者由于迁移、不愿意继续合作等各种原因退出了随访,或者研究单位由于人力、物力、财力等方面的原因在某个时刻决定中止随访,那么这些退出研究或者被终止研究的患者提供的信息就是不完整的信息,他们在退出研究之时仍然存活,而日后的确切死亡时间在数据中就无法反映。
完全数据和删失数据都是在生存分析中经常会碰到的数据,SPSS 要求在进行生存分析时每个变量都必须再设置一个相应的示性函数,用以说明这个数据到底是完全数据还是删失数据。通常采用的示性函数的取值规则是:完全函数,示性函数取值为0;删失数据,示性函数取值为1。
3.截尾数据
截尾数据和删失数据一样,所提供的是不完整的数据,它和删失数据的不同在于它提供的是跟时间有关的条件信息。比如保险公司想研究60岁以上的老年人投保了意外伤害的人发生意外的概率,那么被研究的投保人在研究期内所提供的生存数据为截尾数据,因为它们都附带一个时间条件:进入研究的人的年龄都应该大于等于60岁。
不过SPSS软件只考虑对完整数据和删失数据的分析,对截尾数据不提供专门的分析方法。
2.1.2 寿命表分析
在生存分析中,对生存函数的估计是一个重要问题。生命表方法是一种重要的非参数估计方法,它不仅有悠久的历史,而且在各领域都有广泛的应用。
在实际研究中,通常需要了解两个事件之间间隔的时间长短的分布。例如,如果正在研究治疗某种致命疾病的效果,可能要观察治疗实施到病人死亡这段时间的情况。得到评估结果的时候,若并非所有病人都死亡,则必须将死亡病人和仍然活着的病人的生存时间合并到分析中。又如,检验一部分人婚姻持续的时间,必须包括婚姻正在延续和婚姻已经终止的两种时间长度。从各保险表中,可以分析在一个特定时间点上生存患者的比例和婚姻持续的比例。总的来说,这样的一些事件被称为截断观测,此时,使用传统的方法来分析这种观测不再适合。
生命表分析正好适合于分析这种数据。生命表的基本思想是将观测区间划分为很多小的时间区间。对于每一个区间,所有的在该区间依然“存活”的观测个案都会被用来计算在此区间“死亡”的概率。对每一个区间所估计的概率都用来估计事件发生在不同的时间点上的概率。
建立或打开数据文件后,即可进行生命表分析。
在主窗口的菜单栏中单击Analyze菜单,然后选择Survival子菜单,单击Life Tables命令,即可打开如图2-1所示的Life Tables对话框。
图2-1 Life Tables对话框
左侧为源变量框,Time文本框用于从左边的源变量框中选择生存时间变量。
在Display Time Intervals选项组中设置时间区间的长度及终点。生命表分析以时间0为第一个时间区间的起点。用户在第一个文本框中输入最后一个区间的终点值,在 by 文本框中输入区间长度。
Status文本框用于选入状态变量。选入状态变量后,Define Event按钮被激活,单击该按钮,即可打开如图2-2所示的Life Tables:Define Event for Status Variable(生命表分析:设置状态)对话框。
图2-2 Life Tables:Define Event for Status Variable对话框
在该对话框中有两个选项:Single value单选按钮,在其后的文本框中设置一个指示事件发生的数值。在输入这个值之后,带有其他值的观测都被作为截断观测。Range of values单选按钮,在其后的文本框中设置一个指示事件发生的数值区间。在文本框中输入区间的上下界,观测值不在这个区间的观测都被作为截断观测。
设置完成后,单击Continue按钮确认选择并返回到主对话框。
Factor文本框用于从左边的源变量框中选入一阶因素变量。选入变量后,Define Range按钮被激活,单击此按钮,即可打开Life Tables: Define Range for Factor Variable(生命表分析:定义因素变量范围)对话框,如图2-3所示。
图2-3 Life Tables: Define Range for Factor Variable对话框
在Life Tables: Define Range for Factor Variable对话框中有两个文本框:Minimum文本框中的数值用于设置因素变量的下界;Maximum 文本框中的数值用于设置因素变量的上界。设置完成后,单击Continue按钮确认选择并返回到主对话框。
By Factor文本框用于选入二阶因素变量。选入变量后,Define Range按钮被激活,单击此按钮,即可打开如图2-3所示的Life Tables: Define Range for Factor Variable对话框,用于设置第二因素变量取值的上下限,设置方法同上。设置完成后,单击Continue按钮确认选择并返回到主对话框。
在主对话框中,单击Options按钮,即可打开Life Tables: Options对话框,如图2-4所示。
图2-4 Life Tables: Options对话框
Life table(s)复选框用于选择是否输出生命表。
Plot 选项组用于选择所输出的函数图形:Survival 复选框,如选择此项,则会输出以线性刻度生成的累积生存函数;Hazard复选框,如选择此项,则会输出以线性刻度生成的累积危险函数;One minus survival复选框,如选择此项,则会输出(1-累积生存函数); Log survival复选框,如选择此项,则会输出以对数刻度生成的累积生存函数;Density复选框,如选择此项,则会输出密度函数。
Compare Levels of First Factor选项组用于选择比较不同水平的一阶因素变量的方法:None单选按钮表示不进行子群之间的比较;Overall 单选按钮表示同时比较所有水平的一阶因素变量;Pairwise单选按钮表示配对比较一阶因素变量水平。
设置完成后,单击Continue按钮确认选择并返回到主对话框。
所有设置完成后,单击OK按钮,执行生命表分析。
2.1.3 Kaplan-Meier分析
Kaplan-Meier方法是Kaplan和Meier在1958年提出的一种求生存函数的非参数方法,也称为乘法极限估计(Product Limit Estimate)、PL 法或最大似然估计法(Maximum Likelihood Estimate)。Kaplan-Meier 法能对完全数据和截尾数据及不必分组的生存资料进行分析,并且能对分组变量各水平所对应的生存曲线与危险函数差异进行显著性检验等。
在现实生活中,很多时候用户需要检查两个事件之间的间隔时间的分布,例如被某个公司所雇用时间的长度(从进入公司到被公司解雇为止),但这些数据中可能存在截断观测。Kaplan-Meier 方法可以在有截断数据的情况下建立时间-事件模型。Kaplan-Meier 模型是建立在下面两个基础之上的:其一为对每一个事件发生的时间点的条件概率所作的估计,其二为这些概率的范围。然后使用这两方面的信息来估计每一个时间点的生存率。
Kaplan-Meier 估计由于具有乘积极限的形式,因而又称为乘积极限(PL)估计或最大似然估计(Maximum Likelihood Estimate)。Kaplan-Meier 估计有重要的理论意义,它在生存分析中的地位与经验分布函数在经典统计中的地位相仿,而且两者有渐近行为。
在数据编辑窗口的主菜单栏中单击 Analyze 菜单,选择 Survival 子菜单,然后单击Kaplan-Meier命令,即可打开Kaplan-Meier对话框,如图2-5所示。
图2-5 Kaplan-Meier对话框
该对话框与生命表分析的主对话框类似,Time文本框也是用于从左边的源变量框中选入一个时间变量。时间变量可以以任何长度为单位,在时间变量中如果存在负数,则分析过程中不考虑此负值。
Status文本框用于选入一个状态变量。选入变量后,Define Event按钮被激活。单击Define Event按钮,即可打开如图2-6所示的Kaplan-Meier:Define Event for Status Variable(Kaplan-Meier法:定义状态变量的事件)对话框。
图2-6 Kaplan-Meier:Define Event for Status Variable对话框
Single value 单选按钮用于设置一个指示事件发生的数值。在其后的文本框中输入数值之后,含有设定值的个案看作完全数据,带有其他值的观测都作为截尾数据处理。
Range of values单选按钮用于设置一个指示事件发生的数值区间。在其后的文本框中输入区间的上下界,观测值不在这个区间的观测都被作为截断观测。
List of values单选按钮,如选择此项,则还要在后面的文本框中设置指示事件发生的值的列表。输入数值后,单击Add按钮添加,单击Change按钮进行修改,而Remove按钮用于删除已经添加的内容。
Factor文本框用于选入一个分类变量,该变量可以将观测分为几个不相交的观测群。Strata文本框用于选入一个分层变量。下方的 Label Cases 文本框用于选入一个变量来标定观测量, SPSS将以变量标签值列出所有的变量。
在Kaplan-Meier主对话框的下方有Compare Factor、Save和Options 3个扩展按钮。
1. Compare Factor按钮
在主对话框中单击 Compare Factor 按钮,即可打开 Kaplan-Meier:Compare Factor Levels(Kaplan-Meier法:比较因子水平)对话框,如图2-7所示。
图2-7 Kaplan-Meier:Compare Factor Levels对话框
在该对话框中用户可以设置比较分类变量的统计方法。
Test Statistics选项组用于选择检验的统计方法:Log rank复选框,如选择此项,则会对所有的时间点给予相同的权重,来检验生存分布是否相等;Breslow 复选框,如选择此项,则会依据每一个时间点上的危险观测数来给予每一个时间点不同的权重,然后检验生存分布是否相等;Tarone-Ware 复选框,如选择此项,则会依据每一个时间点上的危险观测数的平方根来给予每一个时间点不同的权重,然后检验生存分布是否相等。
选择检验统计方法后,下方的用于选择比较方法的选项被激活:Linear trend for factor levels复选框,如选择此项,则会使用倾向信息来检验生存分布是否相等;Pooled over strata单选按钮,如选择此项,则会在检验生存曲线是否相等时,同时检验所有因素水平;For each stratum单选按钮,如选择此项,则会对每一个分层比较不同分类水平下的生存时间,用户需要注意,该选项只有在设置分层变量之后才有效;Pairwise over strata单选按钮,如选择此项,则会配对比较不同分类水平下的生存时间;Pairwise for each stratum单选按钮,如选择此项,则会对每一分层比较配对的分类水平下的生存时间。
2. Save按钮
在主对话框中单击Save按钮,即可打开Kaplan-Meier:Save New Variables(Kaplan-Meier法:保存新变量)对话框,如图2-8所示。
图2-8 Kaplan-Meier:Save New Variables对话框
在该对话框中有4个选项,用于选择新变量的保存。
Survival(生存率)复选框,如选择此项,则计算 S(t)并以“sur_”为变量名来保存累积生存概率的估计值。
Standard error of survival(生存率的标准误差)复选框,如选择此项,则以“se_”为变量名来保存累积生存概率的估计值的标准误差。
Hazard(危险函数)复选框,如选择此项,则会计算h(t)并以“haz_”为变量名来保存累积危险概率的估计值。
Cumulative events(累计事件)复选框,如选择此项,则当事件是按它们的生存时间和状态排序时,使用变量“cul_”来保存事件的累积频率值。
3. Options按钮
在主对话框中单击 Options 按钮,即可打开如图2-9所示的 Kaplan-Meier: Options (Kaplan-Meier法:选项)对话框。
图2-9 Kaplan-Meier: Options对话框
Statistics 栏用于选择在分析过程中所需要计算的统计量:Survival table(s)复选框,如选择此项,则会输出简化的生存表,该生存表中包含生存区间估计、估计的标准差、事件的累积频率和危险的观测数;Mean and median survival复选框,如选择此项,则会输出该生存时间的均值和中位数,以及生存时间的标准差和置信区间;Quartiles复选框,如选择此项,则会输出生存时间的四分之一、二分之一和四分之三分位数,以及它们的标准差。其中,Survival table(s)和Mean and median survival选项为系统默认选项。
Plots选项组用于设置分析过程中需要输出的图形:Survival复选框,如选择此项,则会输出以线性刻度生成的累积生存函数;One minus survival复选框,如选择此项,则会输出(1-累积生存函数); Hazard 复选框,如选择此项,则会输出以线性刻度生成的累积危险函数;Log survival复选框,如选择此项,则会输出以对数刻度生成的累积生存函数。
所有设置完成后,单击OK按钮,执行Kaplan-Meier分析。
2.1.4 Cox回归分析
Cox回归又称为比例危险度模型(Proportional Hazard Model),是生存分析中的一个重要模型,可以分析生存时间无一定规律,且具有完全(Complete)或截尾(Censored)状态和诸多危险因素之间的定量关系。如同生命表分析和Kaplan-Meier生存分析一样,Cox回归分析也是在存在截断数据情况下的拟合时间-事件模型的一种方法,其适应性比较强,是生存分析中的半参数方法(Semi-Parametric)。
在多变量场合通常使用多元回归分析的方法,但是,多元回归分析都有一个基本假定,即变量应服从正态分布,但是生存数据很少会服从正态分布,而是多服从指数分布、Weibull 分布等。而且,生存数据中有许多是删失数据,但多元回归分析只能针对完整数据分析。
如同生命表分析和Kaplan-Meier生存分析一样,Cox回归是一种存在截断数据情况下的拟合时间-事件模型的一种方法。但是,Cox 回归中可以在模型中包含预测变量(协变量)。例如,你想在受教育的层次和工作类别上建立一个雇佣时间长度的模型,Cox 回归能正确处理这种情况,而且还给出了每个协变量的相关系数。
在数据编辑窗口的主菜单栏中单击 Analyze 菜单,选择 Survival 子菜单,然后单击 Cox Regression命令,即可打开如图2-10所示的Cox Regression(Cox回归分析)对话框。
图2-10 Cox Regression对话框
在对话框的左侧为源变量框,右侧上方有 Time 文本框,与前面的生存分析对话框一样,该框用于选入时间变量,时间变量可以以任何长度为单位。在时间变量中如果存在负数,则分析过程中不考虑此负值。
Status文本框用于从源变量框中选入一个状态变量。选入状态变量后,下方的Define Event按钮被激活,单击该按钮,即可打开如图2-11所示的Cox Regression: Define Event for Status Variable(Cox回归分析:定义状态变量的事件)对话框。
图2-11 Cox Regression: Define Event for Status Variable对话框
该对话框中选项的含义如下。
Single value单选按钮,在其后的文本框中设置一个指示事件发生的数值。输入这个值之后,带有其他值的观测都被作为截断观测。Range of values单选按钮,在其后的文本框中设置一个指示事件发生的数值区间。在文本框中输入区间的上下界,观测值不在这个区间的观测都被作为截断观测。List of values单选按钮,如选择此项,则在后面的文本框中设置指示事件发生的值的列表。输入数值后,单击Add按钮添加,单击Change按钮进行修改,而Remove按钮用于删除已经添加的内容。
Covariates 文本框用于从左边的源变量框中选入协变量。在选入协变量时,用户可选择多变量的交互作用项(>a*b>),则根据所选变量生成两两交互选项。
在Method下拉列表框中选择协变量进入回归方程的形式,有如下7个选项。
Enter 选项:如选择此项,则对变量只检查容忍度,而不检查其他进入标准,然后让所有的变量进入回归方程。
Forward: Conditional选项:如选择此项,则采用向前选择的方法来选择协变量,协变量进入回归方程的标准是分值统计量的显著性,删除的标准是条件参数估计的似然率统计量的概率值。
Forward: LR选项:如选择此项,则采用向前选择的方法来选择协变量进入回归方程,协变量进入回归方程的标准是分值统计量的显著性,删除的标准是极大似然偏估计的似然率统计量的概率值。
Forward: Wald 选项:如选择此项,则会采用向前选择的方法来选择协变量进入回归方程,协变量进入回归方程的标准是分值统计量的显著性,删除的标准是 Wald 统计量的概率值。
Backward: Conditional选项:如选择此项,则采用向后选择的方法来选择协变量,删除协变量的标准是条件参数估计的似然率统计量的概率值。
Backward: LR选项:如选择此项,则采用向后选择的方法来选择协变量,删除协变量的标准是极大似然偏估计的似然率统计量的概率值。
Backward: Wald选项:如选择此项,则采用向后选择的方法来选择协变量,删除协变量的标准是 Wald 统计量的概率值。
Strata文本框用于选择分层变量。
在Cox Regression主对话框中有4个扩展按钮,下面一一进行讲解。
1. Categorical按钮
在主对话框中单击 Categorical 按钮,即可打开 Cox Regression: Define Categorical Covariates(Cox回归分析:定义分类变量)对话框,如图2-12所示。
图2-12 Cox Regression: Define Categorical Covariates对话框
从左边的Covariates列表框中选择分类协变量进入Categorical Covariates框中,选入协变量后,下方的Change Contrast选项组被激活,用于设置对比方法:Indicator选项,如选择此项,则比较是否具有同类效应;Simple选项,如选择此项,则将预测变量的每一类都与参照类进行比较;Difference 选项,如选择此项,则将预测变量的每一类都与其前面各类的平均效应进行比较;Helmert 选项,如选择此项,则将预测变量的每一类都与其后面各类的平均效应进行比较;Repeated选项,如选择此项,则将预测变量的每一类都与其前面的一类进行比较;Polynomial选项,如选择此项,则将各类变量的正交多项式进行比较;Deviation选项,如选择此项,则将预测变量的每一类都与整个观测相比较。
在设置完比较方式之后,对于Indicator、Simple和Deviation三项,可以在Reference Category栏内选择是由第一类还是由最后一类作为参照来进行分类。单击Change按钮,即确定这些改变。
设置完成后,单击Continue按钮确认选择并返回到主对话框。
2. Plots按钮
在主对话框中单击Plots按钮,即可打开Cox Regression: Plots(Cox回归分析:图形)对话框,如图2-13所示。
图2-13 Cox Regression: Plots对话框
Plot Type选项组用于选择要生成的图形:Survival复选框,如选择此项,则会输出以线性刻度生成的累积生存函数;One minus survival复选框,如选择此项,则会输出(1-累积生存函数); Hazard复选框,如选择此项,则会输出以线性刻度生成的累积危险函数;Log minus log复选框,如选择此项,则会输出(1-对数刻度生成的累积生存函数)。
在Plot Type选项组选择任意一种生成图形类型后,下方的Covariate Values Plotted列表框被激活,从中选择分类协变量进入右边的Separate Lines for框中,SPSS按其变量值将数据分为两个或多个小的分组,然后再分别对各个小的分组生成图形。
选择协变量后,Change Value栏被激活,在此栏中选择以什么样的对比变量和协变量的均值来输出函数图形:Mean表示均值,选择该项后单击Change按钮即可确定;Value文本框用于输入相应数值。
设置完成后,单击Continue按钮确认选择并返回到主对话框。
3. Save按钮
在主对话框中单击Save按钮,即可打开Cox Regression: Save New Variables(Cox回归分析:保存新变量)对话框,如图2-14所示。
图2-14 Cox Regression: Save New Variables对话框
Survival 选项组用于选择所要保存的生存函数:Function 复选框,如选择此项,则会以“sur_” 为变量名来保存累积生存概率的估计值;Standard error复选框,如选择此项,则会以“se_”为变量名的变量来保存累积生存概率的估计值的标准差;Log minus log复选框,如选择此项,则会以“lml_”为变量名的变量来保存经对数转换的生存函数估计值。
Diagnostics选项组用于选择保存诊断:Hazard function复选框,如选择此项,则会以“haz_”为变量名的变量来保存累积危险概率的估计值;Partial residuals复选框,如选择此项,则会以“pr_”为变量名的变量来保存生存时间的偏残差;DfBeta(s)复选框,如选择此项,则会以“dfb_”为变量名的变量来保存Beta系数。它是因消除一个观测值而引起的相关系数的变化值,包括常数项的每一项的相关系数都要计算。
X*Beta复选框,如选择此项,则会以“xbe_”为变量名的变量来保存线性预测因素分值,即每个变量中心协变量值与其相应的参数估计值的积之和。
设置完成后,单击Continue按钮确认选择并返回到主对话框。
4. Options按钮
在主对话框中单击Options按钮,即可打开Cox Regression: Options(Cox回归分析:设置)对话框,如图2-15所示。
图2-15 Cox Regression: Options对话框
Model Statistics选项组用于选择模型统计量:CI for exp复选框,如选择此项,则在后面的文本框中设定相对危险估计值的置信区间,在进行统计时,会输出置信区间,系统默认的置信水平为95%; Correlation of estimates复选框,如选择此项,则输出回归系数的相关矩阵。
Display model选项组用于设置需要显示的模型信息,对于现有的模型,Cox回归输出似然比统计量和卡方统计量。对于模型中的变量,输出估计的参数、它们的标准差和 Wald 统计量。对于不在模型中的变量,输出分值统计量和残差的卡方统计量。在此选项组中有两个选项:At each step单选按钮,如选择此项,则会对每一步进入过程都输出上述的所有统计量;At last step单选按钮,如选择此项,则会输出最后的回归模型的上述的所有统计量。
Probability for Stepwise选项组用于选择逐步分析方法:Entry文本框用于设置协变量进入模型的阀门值,即引入的概率;Removal 文本框用于设置从模型中删除协变量的阀门值,即剔除概率。
Maximum Iterations文本框用于设置迭代进行的最大次数,系统默认为20次。
Display baseline function复选框,如选择此项,则会输出基准危险函数,以及以协变量均值衡量的生存函数和危险函数。如果还设置了一个分层变量,则会对每一分层输出一个统计量表。
设置完成后,单击Continue按钮确认选择并返回到主对话框。
所有设置结束后,单击OK按钮,即执行Cox回归分析。