Cox 回归中的预测

机器算法验证 回归 生存 预言 cox模型
2022-02-07 08:21:40

我正在做一个多元 Cox 回归,我有重要的自变量和 beta 值。该模型非常适合我的数据。

现在,我想使用我的模型并预测新观测值的存活率。我不清楚如何用 Cox 模型做到这一点。在线性或逻辑回归中,这很容易,只需将新观察值放入回归中并将它们与 beta 相乘,这样我就可以预测我的结果。

如何确定我的基线危害?除了计算预测之外,我还需要它。

这是如何在 Cox 模型中完成的?

4个回答

根据 Cox 模型,具有协变量向量的估计风险具有形式 其中是通过最大化部分似然来找到的,而来自 Nelson-Aalen 估计器, 其中 ,是不同的事件时间,的死亡人数 (例如,参见第 3.6 节)。ixi

h^i(t)=h^0(t)exp(xiβ^),
β^h^0
h^0(ti)=dij:tjtiexp(xjβ^)
t1t2,diti

类似地,

S^i(t)=S^0(t)exp(xiβ^)
S^0(t)=exp(Λ^0(t))
Λ^0(t)=j:tjth^0(tj).

编辑: 可能也很有趣:-)

也许你也想尝试这样的事情?拟合 Cox 比例风险模型并使用它来获得新实例的预测生存曲线。

从 R 中survfit.coxph的帮助文件中取出(我刚刚添加了行部分)

# fit a Cox proportional hazards model and plot the  
# predicted survival for a 60 year old 
fit <- coxph(Surv(futime, fustat) ~ age, data=ovarian) 
plot(survfit(fit, newdata=data.frame(age=60)),
     xscale=365.25, xlab="Years", ylab="Survival", conf.int=F) 
# also plot the predicted survival for a 70 year old
lines(survfit(fit, newdata=data.frame(age=70)),
     xscale=365.25, xlab="Years", ylab="Survival") 

您应该记住,尽管比例风险假设仍然适用于您的预测,但您预测的患者应该来自与您用于推导 Cox 比例风险模型的人群在质量上相同的组。预言。

predictSurvProb如果您使用 R ,包中的函数pec可以为您提供基于现有 cox 模型的新数据的绝对风险估计。

我无法解释的数学细节。

编辑:该函数提供生存概率,到目前为止我将其视为 1-(事件概率)。

编辑2:

没有 pec 包也可以。仅使用生存包,以下函数基于 Cox 模型返回绝对风险

risk = function(model, newdata, time) {
  as.numeric(1-summary(survfit(model, newdata = newdata, se.fit = F, conf.int = F), times = time)$surv)
}

包的basehaz功能survival提供了事件时间点的基线危害。从中,您可以逐步计算 ocram 提供的数学运算,并包括您的 coxph 估计值的 OR。