如何从 Cox PH 模型计算预测的危险率?

机器算法验证 r 生存 冒险 cox模型
2022-03-29 11:49:15

我有以下 Cox PH 模型:

(时间,事件)~ X + Y + Z

我想得到预测的危险(我说的是危险率而不是危险比)给定的特定值X, Y, Z我知道muhaz R 包可以计算观察到的危险率,但我对预测模型感兴趣。

有没有办法在 R 中做到这一点?

2个回答

R 生存包中获取基线危险率的函数是basehaz.

然后你需要将它乘以各种eβ在给定您找到的系数的情况下获得特定的危险率。

一个简单的例子可能会有所帮助:

library(survival) #survival analysis
library(eha) #used for data 
data(oldmort) #create the data

# Create surv data set
mort <- Surv(time=oldmort$enter,time2=oldmort$exit,event=oldmort$event)

reg_fit <- coxph(formula=mort~oldmort$sex)
summary(reg_fit)

# Now get baseline curve
baseline <- basehaz(reg_fit)

# Draw baseline hazard (that's male)
plot(baseline$time, baseline$hazard, type='l',main="Hazard rates") 

# Draw female hazard
lines(baseline$time, exp(-0.1929)*baseline$hazard, col="blue") 

exp(0.1929)=0.8245是从 cox 回归的汇总结果中复制粘贴的summary(reg_fit),表示数据中的女性有危险率18%低于男性。

该函数basehaz(来自上一个答案)提供累积风险,而不是风险函数(比率)。我相信这个问题是关于危险函数的。估计危险函数需要指定平滑类型(如密度估计)。MuhazR 包可以对一个样本数据执行此操作我不知道可以为 Cox 模型中的基线危险执行此操作的函数。我也需要这个。我想我需要自己消除累积的风险。