Cox比例风险模型是一种半参数方法
风险函数
\[
\begin{aligned} h(t)=&\lim_{\Delta t\to 0}\frac{P(t\le T<t+\Delta t|T\ge t)}{\Delta t}\\ =&\lim_{\Delta t\to 0}\frac{P(t\le T<t+\Delta t\ \&\ T\ge t)}{\Delta t·P(T\ge t) }\\ =&\lim_{\Delta t\to 0}\frac{S(t)- S(t+\Delta t)}{\Delta t·S(t)}\\ =&-\frac{d(\ln S(t))}{dt} \end{aligned}
\]
风险率
对于有风险因子\(x_1,x_2,...,x_k\) 的个体在时间 t 的风险率\(h(t|x_1,x_2,...,x_k)\)
\[ h(t|x_1,x_2,...,x_k)=h_0(t)g(x_1,x_2,...,x_k)=h_0(t)exp(\sum_{j=1}^k\beta_jx_j) \]
其中
\(h0 (t)\)是给定所有风险因子(协变量)为零的随时间变化的基线风险函数。
\(g(X)\)是k个独立风险因子的集合函数,代表变量的风险效应。
\(β_j\)是部分回归系数,表示风险比的比例变化。
比例风险假设
(proportional hazards assumption)
\[ \frac{h(t)}{h_0(t)}=exp(\sum_{j=1}^k\beta_jx_j) \]
风险比(hazard ratio)
假设有两个个体,分别具有独立变量,两个个体的风险函数之比称为风险比
\[ HR=\frac{h(t|x_1,x_2,...,x_k)}{h(t|x_1^*,x_2^*,...,x_k^*)}=exp(\sum_{j=1}^k\beta_j(x_j-x_j^*)) \]
Code
df <- read_csv("data/log-rank-survival.csv")
library(survminer)
library(survival)
# 使用 Kaplan-Meier 方法创建一个Surv对象
surv_formula <- Surv(Days,status)~treatment
# 拟合Cox比例风险模型
cox_model <- coxph(surv_formula, data = df)
# 查看模型结果
summary(cox_model)
#> Call:
#> coxph(formula = surv_formula, data = df)
#>
#> n= 56, number of events= 39
#>
#> coef exp(coef) se(coef) z Pr(>|z|)
#> treatmentDPVB -2.740141 0.064561 0.580664 -4.719 2.37e-06 ***
#> treatmentLDRT -0.383558 0.681432 0.387499 -0.990 0.322
#> treatmentLR_DPVB -4.632850 0.009727 0.878661 -5.273 1.34e-07 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> exp(coef) exp(-coef) lower .95 upper .95
#> treatmentDPVB 0.064561 15.489 0.020688 0.20148
#> treatmentLDRT 0.681432 1.467 0.318848 1.45634
#> treatmentLR_DPVB 0.009727 102.807 0.001738 0.05444
#>
#> Concordance= 0.822 (se = 0.025 )
#> Likelihood ratio test= 61.41 on 3 df, p=3e-13
#> Wald test = 36.01 on 3 df, p=7e-08
#> Score (logrank) test = 60.47 on 3 df, p=5e-13
# 检查比例风险假设
cox.zph(cox_model)
#> chisq df p
#> treatment 0.833 3 0.84
#> GLOBAL 0.833 3 0.84
模型系数的估计
条件死亡概率和局部似然函数方法
\[ \ln L_p(\beta)=\sum_{i=1}^{d}\left[ \sum_{j=1}^k\beta_jx_{ij}-\ln\sum_{m\in R_i}exp( \sum_{j=1}^k\beta_jx_{mj}) \right] \]
Newton-Raphson iterative method
\[ \begin{cases} \frac{\partial \ln L_p(\beta)}{\partial \beta_1}=0\\ \frac{\partial \ln L_p(\beta)}{\partial \beta_2}=0\\ \vdots\\ \frac{\partial \ln L_p(\beta)}{\partial \beta_k}=0\\ \end{cases} \]
模型系数的假设检验
-
Wald‘s test
检验是否有独立变量需要被消除,统计量\(Z=b_j/S_{b_j}\)
当样本量足够大时,Z服从标准正态分布,Z2 服从自由度为1 的\(\chi^2\) 分布
\[ \chi^2_W=(b_j/S_{b_j})^2\sim \chi^2(1) \]
-
Partial likelihood Ratio test
主要用于非显著性变量的消除,新变量的引入和模型的比较。
\[ \chi^2_{LR}=2\left[ \ln L_p(\beta_k)-\ln L_p(\beta_{k-1}) \right]\sim\chi^2(1) \]
其中分别是包含 k 个和 k-1 个(不包含要检验的第 j 个变量)独立变量的对数局部似然函数