科研星球

Stata详细教程:Cox回归和比例风险假定检验

作为最基本的生存分析工具之一,K-M曲线可以让我们对于两组或多组患者的生存率、死亡率进行直观的比较,Log-rank检验也可以让我们得到统计学上的相应证据。


然而,作为一种非参数估计方法,K-M方法不能控制潜在的混杂因素对于结局事件的影响,也不能让我们看出某一种因素(例如患者性别、年龄)是否是结局发生的独立因素之一。


今天,我们就一起来学习如何使用Stata进行Cox回归分析以及比例风险假定(Proportional hazard assumption, PH假定)的检验


1. 问题与数据


问题:在一个抗癌药物的临床试验中,48名患者被随机分配到新药组(28人)和安慰剂组(20人),研究人员想知道新药是否影响患者的生存情况。


数据:我们这次仍然使用上次使用的癌症药物临床试验的数据集。请大家在command对话框中输入“webuse drugtr”以调入这个数据集。


上次我们已经进行过了数据的初步观测、将数据转化为生存数据格式。今天,我们直接开始Cox回归分析。


2. Cox回归


Step 1:通过Statistics > Survival analysis > Regression models > Cox proportional hazards model找到操作的对话框。


Step 2:选项设置。


由于我们已经在一开始将数据转化为生存数据的时候指定过终点事件、时间变量,我们在这里只需要设置需要在回归方程中控制的变量即可。例如,我们想看drug对于生存的影响,便在Independent variables的下拉菜单中选择drug,点击OK。


下载.jpeg


屏幕上出现结果:


下载 (1).jpeg

 

我们可以看到,Drug变量的Hazard Ratio (风险比) 是0.133,95%置信区间为0.056至0.314。这说明和Drug=0 (安慰剂组) 相比,Drug=1 (新药) 可显著降低终点事件 (died=1) 发生的风险 (p<0.001)。


然而,在这个模型中,我们没有调整其他的混杂因素。研究人员思考,有没有可能患者的年龄也是终点事件发生的一个独立危险因素呢? 为了解决这个问题,我们可以把age也纳入cox回归的模型。


下载 (2).jpeg


得到的结果如下:


下载 (3).jpeg

 

我们可以看到,drug变量的风险比变成了0.105 (95% CI: 0.043, 0.256), age变量的风险比为1.120 (95% CI: 1.041, 1.205)。我们得出结论:


1) 在控制了患者年龄后,和安慰剂相比,新药可显著降低终点事件发生的风险 (p<0.001)。


2) 患者年龄是终点事件发生的独立危险因素。在控制了治疗方法后,患者年龄每增加1岁,发生终点事件的风险增加到原来的1.120倍(p=0.002)。


3. PH假定的检验


在cox回归之后,我们需要检验模型是否满足PH假定。通过Statistics > Survival analysis > Regression models > Test proportional-hazards assumption找到操作的对话框。


640.jpeg

 

我们选择默认的Schoenfeld Residuals方法,点击OK。屏幕上出现结果如下:


下载 (4).jpeg

 

请注意,PH假定的检验基于上一步cox回归纳入的变量。如果上一步没有进行cox回归分析,屏幕上会显示“last estimates not found”的错误代码。


下载 (5).jpeg

 

在这个例子中,在stcox drug age这个命令后,我们进行了PH假定的检验。该检验的零假设是纳入Cox回归模型的变量满足PH假定(drug变量和age变量满足PH假定),因为p=0.8064,大于0.05,不能拒绝零假设。因此,PH假定成立。


我们也可以通过图像直观地观测某个变量是否满足PH假定,更加直观地在论文中中展现结果。不同于上述的检验方法,在使用图像展示时,我们只能看某一个变量是否满足PH假定(我们可以控制其他变量,下文提到)。


我们可以通过Statistics > Survival analysis > Regression models > Graphically assess proportional-hazards assumption找到操作的对话框。我们在Independent variable 这里选择drug, 看一看drug是否满足PH假定。点击OK。


下载 (6).jpeg

 

我们可以看到在下图中,在任何一个时间节点上,drug=1几乎都是平行于drug=2的线,因此PH假定成立。


下载 (7).jpeg

 

在这个例子中,如果我们勾选上对话框中的“adjust estimates”,便可以控制其他一个或多个变量,然后看drug变量是否满足PH假定。


4. 其他注意事项


1)  所有对话框操作均可通过command实现


cox回归的命令:cox var1 var2 var3 


解释:在这个命令中,var是自变量名字。请注意,cox回归中不需要指定因变量(y变量),因为我们在stset时已经指定过结局变量了 (请参考上期推送)


检验PH假定的命令:estat phtest


解释:请注意,这个命令需要紧跟在cox回归的命令之后,否则Stata不知道检验哪个回归的PH假定。


绘制PH假定图像的命令:stphplot, by(var1) adjust(var2) 


解释:var1是自变量名,var2是希望控制的变量。注意,这个命令不一定要跟在cox回归之后。


2) 我们也可以在回归模型中控制更多的危险因素。


3) 如果某变量不满足PH假定,我们则应当将变量放入Strata框中进行分层变量控制。我们可以在Cox回归的对话框中选择需要分层的变量。


640 (1).jpeg

 

4) 在解读结果时,一定要强调3点:

  • 控制了哪些变量? (e.g. 在控制了患者年龄、性别后…)

  • 和谁比? (e.g. 和安慰剂相比,治疗组…; 和体重正常的人比,超重的人…)

  • 量化 (给出95%置信区间、p值)


相关推荐:
没有账号?