转自个人微信公众号【MemoCleon】的统计学习笔记:生存分析之Cox回归。 随访资料的生存分析是一个很大的题目。 从分析的因素上看,有单因素分析和多因素分析。正如“连续资料的单因素分析常用t检验、方差分析,对应的多因素分析是多重线性回归”、“分类资料的单因素分析方法卡方分析,对应的多因素分析有logistic回归”一样,生存分析的常用单因素(或少数因素)的分析有LifeTables法、KaplanMeier法,对应的多因素模型则常用Cox回归模型(Cox风险比例模型)。从采取的分析方法上看,生存分析有非参数法(如Wilcoxon法、Logrank法)、参数法(如Weibull回归、lognormal回归等)和半参数分析(Cox回归)。Cox回归要求满足比例风险假定(proportionalhazardsassumption)的前提条件。所谓比例风险假定,就是假定风险比(HR,HazardRatio)不随时间t变化而变化。在进行生存分析前,你最好对以下的一些概念及其意义有所了解:起始事件、失效事件(FailureEvent)终点事件(EndpointEvent)、生存时间(SurvivalTime)失效时间(FailureTime)、中位生存时间(MedianSurvivalTime)、平均生存时间(MeanSurvivalTime)、删失值截尾值(censoredvalues)、生存概率(SurvivalProbability)、生存率(SurvivalRate)积累生存概率生存函数积累生存函数(CumulativeSurvivalFunction)、风险函数(HazardFunction)、累积风险函数风险函数h(t)概率密度函数f(t)生存函数S(t),概率密度函数f(t)为累积分布函数F(t)的导数,而F(t)1S(t)。可参见《生存分析》。 模型结构与参数释义可参见颜虹等主编的《医学统计学》,如下。对此不感兴趣而只关心操作和结果解读的,可直接越过。 当前笔记用STATA演示Cox回归操作。STATA在进行Cox回归分析前首先需要声明生存时间变量,另外比例风险假定是进行Cox回归的前提条件,需要进行考察和检验。 示例(陈启光等。医学统计学第3版):探讨某肿瘤的预后,某研究机构收集了41例患者的生存时间(月份)、生存结构及影响因素。影响因素包括性别、年龄、病理分级、是否复发、PDL1分子。变量赋值与资料如下: X1:X2:X3:X4:X5:PDL1 【1】数据录入:略 【2】声明时间变量:统计生存分析模型设定和实用工具声明数据集为生存时间数据,将在〔时间变量〕和〔失效变量〕中选择相应的变量即可。具体步骤如下: 相应命令如下: stsettime,failure(status1) 也可以不指定失效值,默认不等于0的为失效值。另外scale选项可以重新定义生存时间,如本例生存时间单位是月,可以使用scale(12)后生存时间代表的就是年啦,命令为:stsettime,failure(status)scale(12) 【3】Cox回归:统计生存分析回归模型Cox比例风险模型,选入相应的自变量即可。主要添加自变量时应选择合适的变量类型即参照水平(默认低水平为参照),如果未经步骤【2】的生存时间变量声明,也可以在此对话框中的〔生存设置〕中声明。需要说明的是,本例有序变量按连续变量处理,性别、病例分级、复发即PDL1虽然是分类变量但都是二分类,直接按连续变量分析也不影响结果。命令为:stcoxi。genderagei。gradei。recuri。PDL1或者stcoxgenderagegraderecurPDL1。 结果显示相比空白模型,纳入五个变量的整体模型是有统计学意义的(LRChi222。3,P0。0005)。主要结果中默认显示的是风险比(HR),如果想显示模型系数,需要在Cox比例风险模型对话框中的〔报告〕选项卡中选中复选框〔报告系数,而不是风险比〕,HRexp()。根据系数可得出模型为:h(t)h0(t)exp(0。113gender0。365age5。44grade1。985recur0。190PDL1)结果显示校正其他因素,女性相比男性、病例IV期相比III期死亡风险更低,但没有统计学意义;而年龄每增加一个等级、复发相对不复发、PDL1阳性相比阴性死亡风险更高(分别是1。44、7。28、1。21倍),但只有复发与否具有统计学意义。 很明显,模型给出是强制纳入了所有的变量的结果,但实际上有很多因素并不具有统计学意义,为了精简模型,我们可能需要对模型的变量进行筛选,可以采用逐步回归,SPSS里面可直接在〔method〕中进行选择相应的方法。STATA里面则可借助stepwise命令,Cox逐步回归菜单操作: 统计其他逐步估计,具体操作如下。本例采用向前逐步回归,默认wald检验,变量剔除标准P值为0。1,纳入标准P值为0。05。如果直接进行逐步回归,分析前不要忘记声明生存时间变量。 相应命令:stepwise,pr(0。1)pe(0。05)forward:stcoxgenderagegraderecurPDL1 说明: stepwise,pr(0。1)pe(0。05)forward:stcox(gender)(age)(grade)(recur)(PDL1),nohr pr(剔除标准),pe(纳入标准)。逐步回归方法:forward、backward,逐步回归方法:lr,默认是wald法。括号内为同进同出的变量为一个回归项,类似于SPSS里面的Block,同一个回归项中变量同进同出,比如同一个分类变量设置为哑变量后可以放在同一个回归项中。nohr表示报告系数而不是风险比。 逐步回归结果如下:最终引入的变量是recur和age,模型:h(t)h0(t)exp(1。756recur0。451age)recur和age的HR分别为5。791、1。569,即是否复发与年龄是该肿瘤的死亡风险因素。固定其他因素的影响,患者肿瘤复发的死亡风险是不复发的5。791倍;固定其他因素的影响,患者年龄每增加一个等级,死亡风险增加1。569倍。 有时候我们还想得到生存曲线。以指定协变量recur,绘制生存率曲线为例,操作如下: 〔图形生存分析图生存,风险,累积风险或累积发生函数〕或者〔统计后验估计〕,在打开的〔后验估计选择器〕中依次选择:设定,诊断和拟合优度分析生存函数,风险函数,累积风险等图形,点击〔开始〕进入〔曲线绘制生存函数,风险函数,累积风险函数或累积发病率函数〕对话框,界面操作如下: 相应命令为:stcurve,survivalat1(recur0)at2(recur1) 结果如下(你要是觉得图片丑可以启用图形编辑器进行编辑): 你也可以绘制KaplanMeier生存函数图、KaplanMeier失效函数图、NelsonAalen累积风险函数图即平滑危险估计图等,可在〔统计生存分析回归模型图形〕或〔图形生存分析图〕中进行。 【4】比例风险(PH)假定检验:比例风险假定是Cox回归的前提条件,可以通过计算检验,也可以通过图示法。 4。1计算检验命令:整体检验单独检验每个协变量estatphtest,detail 菜单可通过以下途径进入 统计生存分析回归模型比例风险假设检验; 图形生存分析图stcox后比例风险假设检验; 统计后验估计,在打开的〔后验估计选择器〕中选择〔比例风险假定的检验〕; 点击〔开始〕进入对话框〔estat后验估计统计量〕,选择〔基于Schoenfeld残差的比例风险假设检验(phtest)〕。如想进一步检验每个协变量的比例风险假定,可在继续点击对话框〔estat后验估计统计量〕中的〔选项〕按钮,在打开的对话框中选择复选框〔单独检验每个协变量的比例风险假设〕。 结果显示P0。05,满足比例风险假设。 4。2图示法可以通过生存函数的双对数图(Loglogplotofsurvival)与KaplanMeier与Cox预测的生存曲线图(KaplanMeierandpredictedsurvivalplot) stphplotplotssln{ln(survival)}curvesforeachcategoryofanominalorordinalcovariateversusln(analysistime)。Theseareoftenreferredtoas“loglog”plots。Optionally,theseestimatescanbeadjustedforcovariates。Theproportionalhazardsassumptionisnotviolatedwhenthecurvesareparallel。 stcoxkmplotsKaplanMeierobservedsurvivalcurvesandcomparesthemwiththeCoxpredictedcurvesforthesamevariable。Theclosertheobservedvaluesaretothepredicted,thelesslikelyitisthattheproportionalhazardsassumptionhasbeenviolated。 4。2。1Loglogplotofsurvival可以拟合命令单独或者分层的Cox模型,并可根据调整变量进行调整。 命令1:stphplot,by(recur) 根据分类变量recur拟合单独的Cox模型,结果是下图左; 命令2:stphplot,strata(recur)adjust(age)zero 根据分类变量recur拟合分层的Cox模型,并根据变量age进行调整,调增方法是将age值调整为0(默认是均值),结果为下图右。 菜单可通过以下途径进入stphplot生存函数的双对数图(Loglogplotofsurvival) 统计生存分析回归模型比例风险假设的图形评估; 图形生存分析图比例风险假设检验; 选入相应的自变量和分层变量即可。 结果显示变量recur两个水平基本“平行”,满足比例风险的假定。 4。2。2KaplanMeierandpredictedsurvivalplot 命令:stcoxkm,by(recur) 当然你可以单独绘制recur两个水平的观测预测曲线:stcoxkm,by(recur)separate 菜单操作: 统计生存分析回归模型KaplanMeier生存曲线和Cox预测曲线比较; 图形生存分析图KaplanMeier和Cox生存曲线比较; 选入相应的自变量即可。 结果显示KaplanMeier观测曲线与Cox回归预测曲线重合性较好,满足比例风险假设。 如果运气不好,你的数据违背了比例风险的假定,可以考虑含时依协变量的Cox回归。含时依协变量的Cox回归也可以作为验证比例风险的假设的一种手段。个人理解,这个所谓时依协变量,其实就是在Cox回归里构建的一个交互作用项。这个关于含时依协变量的Cox回归我们放在以后分享。