教你三招:Cox回归比例风险(PH)假定的检验

专题合集更多教程

Cox回归是生存分析中的常用方法,其假定Hazard Ratio(HR)不随时间变化,即满足比例风险假定(Proportional Hazards Assumption, PH假定)。在进行Cox回归前需要对该假定进行检验,本文介绍三种方法。

 

1、-ln(-ln(survival)) 图法

 

判断标准:如果待评价的变量分成的亚组曲线平行,说明满足PH假定。

 

2、预测生存概率图法

 

判断标准:利用拟合的Cox回归方程生成概率曲线,该曲线假定PH成立,然后与实际得到KM曲线做比较,如果两条曲线基本重合说明PH假定成立。

 

3、统计检验法

 

判断标准:该法将给出统计学检验的P值,通过P值判断。

 

下面通过里一个例子展示如何利用Stata软件进行操作。示例数据来自于一个真实的白血病研究(Garrett 1997),包含42例患者,其变量意义如下:

 

表1. 示例变量及赋值

我们假定变量Treatment1是满足PH假定的。首先需要在Stata中定义数据结构为生存数据结果,然后再进行后续的分析。方法如下:

 

1. 依次点击:Statistics—Survival analysis—Setup and utilities—Declare data to be survival-time data(图1),会出现相应窗口(图2)。

 

图1

 

2. 将代表时间的变量week选入Time variable框内,代表结局事件的变量relapse选入Failure variable框内,“1”代表发生事件,填入Failure values框内。

 

图2

 

3. 点击OK。

 

定义好数据后,接下来介绍如何用三种方法进行检验。

 

1、-ln(-ln(survival)) 图法

 

Stata命令框内输入命令:stphplot, by(treatment1),回车,得如下图(图3):

 

图3

 

判断:从图中可以看出,Treatment1代表的两种治疗方法,曲线基本平行,因此可认为该变量的PH假定基本成立。

 

如果在判断的时候需要对其他协变量(如wbc2,wbc3)进行调整,可修改代码为:stphplot, strata(treatment1) adj(wbc2 wbc3),得到下图(图4):

 

图4

 

可以看到,对其他协变量进行调整后两曲线依然基本平行。

 

2、预测生存概率图法

 

Stata命令框内输入命令:stcoxkm, by(treatment1),回车,得如下图(图5):

 

图5

 

判断:图中Observed曲线为根据实际数据得到的K-M曲线,Predicted曲线为假定PH成立的Cox模型拟合出的曲线,可以看到,在两个治疗组中,曲线基本重合,因此说明PH假定是成立的。

 

该法无法调整其他变量。

 

3、统计检验法

 

在进行PH统计学检验之前,需要首先运行要检验的Cox模型,后续的检验会自动使用模型运算的某些结果。

 

首先运行要检验的Cox模型(假设调整wbc2和wbc3协变量),输入命令:

stcox treatment1 wbc2 wbc3, nolog

 

然后输入命令:estat phtest, detail,回车,得如下结果(图6):

 

图6

 

前三行给出的是纳入Cox模型的三个变量各自的检验结果,可以看到P值均不显著,因此不能认为违反PH假定。最后一行给出的模型整体性的PH检验结果,同样不能认为违反PH假定。

 

实际上,本例中变量Treatment2是不满足PH假定的,为了给大家一个直观的印象,本文仅给出-ln(-ln(survival)) 图法的结果,输入命令:stphplot, by(treatment2),得到图7:

 

图7

 

对比图3,可以看出很明显的差别。该图中两曲线不再平行,而是发生了交叉,因此有理由相信Treatment2变量不满足PH假定。

 

其他方法的尝试大家可以自己进行。

 

总结

 

上面我们介绍了三种具体的方法,其中前两种利用主观判断,最后一种通过统计学检验。主观性判断往往因人而异,而统计学检验在P值无统计学意义时仅能说明在当前样本量下不能认为违反PH假定,也无法给出明确的答案。因此推荐多种方法同时使用,以利于综合判断。

 

除上面介绍的三种方法外,还可以在Cox模型中设置待检验变量与时间的交互项,通过判断系数是否有统计学意义判断是否违反PH假定,但该方法相对复杂,限于篇幅,将在另外的文章中予以介绍。

描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
提交问题
我要提问
描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
提交问题
描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
    提交问题