本篇推文来介绍Cox比例风险模型(Cox proportional hazards model),简称为Cox模型。
目录如下:
1 Cox模型形式
1.1 模型的数学形式
1.2 模型说明
1.3 模型的代码形式
2 常规Cox模型
2.1 单类型单事件
2.2 单类型多事件
2.3 多类型单事件
3 多状态Cox模型
3.1 模型示例一
3.2 模型示例二
1 Cox模型形式
1.1 模型的数学形式
通过对生存曲线的学习,我们知道生存率(或死亡风险)是关于生存时间的函数。Cox模型也继承了这一假设,不过它研究的直接对象并不是生存率或死亡率,而是风险函数(hazard function),使用表示,含义是瞬时死亡率。
使用表示死亡函数,即主体生存时间不大于的概率,那么有,
基准风险(baseline hazard)表示风险函数随时间变化的部分,使用表示。
此外,风险函数还会受到主体自身原因即协变量的影响,如性别等。Cox模型假设这部分风险是与时间无关的,并使用以下形式表示:
Cox模型还假设风险函数与基准风险成比例,比例系数就是上式,称为比例风险(proportional hazards,PH),也称风险比(hazards ratio,HR),或相对风险(relative risk,RR)。
基于以上假设,有
将简记为。从而,Cox模型的形式就是:
也可写成如下类似于Logistic模型的形式:
1.2 模型说明
Cox模型被归属于“半参数模型”。其中,基准风险是模型的非参数部分,它与时间的关系没有固定的分布模式;而比例风险函数则是模型的参数部分。
在介绍生存曲线时,我们知道生存率可以根据协变量进行分组计算,这样就限制了协变量必须是分类型变量。而对于Cox模型来说,比例风险部分是一个对数线性模型,连续型和离散型变量均可。
1.3 模型的代码形式
在survival
工具包中,主要使用coxph()
函数运行Cox模型,代码形式大致如下:
单事件:
coxph(formula = Surv(t, status) ~ X,
data = data, id = id)
多事件:
coxph(formula = Surv(t1, t2, status) ~ X,
data = data, id = id)
从形式上看,
coxph()
函数的用法和前面介绍的survfit()
函数很相似。
在前面介绍的四种类型的生存分析中,只有多类型多事件会涉及到生存状态之间的转移过程,这使得这种情况下的模型设定会更加复杂。接下来的内容安排如下:
第2节介绍常规Cox模型,即针对单类型单事件、单类型多事件和多类型单事件的生存分析;
第3节介绍多状态Cox模型,即针对多类型多事件的生存分析。
2 常规Cox模型
2.1 单类型单事件
2.1.1 模型示例
仍然使用推文《生存曲线(上)》第2节中使用的示例数据ovarian
。
library(survival)
model1 <- coxph(Surv(futime, fustat) ~ age,
data = ovarian)
summary(model1)
summary(model1)
语句输出结果的解读如下:
## Call:
## coxph(formula = Surv(futime, fustat) ~ age, data = ovarian)
##
## n= 26, number of events= 12
模型形式;数据集的行数(状态事件数+删失数);状态事件发生数。