如何从脆弱模型(使用 R coxph)生成预测的幸存者曲线?

机器算法验证 r 生存 cox模型 虚弱
2022-02-12 14:55:52

我想计算带有脆弱项的 Cox 比例风险模型的预测幸存者函数 [使用生存包]。似乎当模型中存在脆弱项时,无法计算预测的幸存者函数。

## Example 
require(survival)
data(rats)

## Create fake weight
set.seed(90989)
rats$weight<-runif(nrow(rats),0.2,0.9)

## Cox model with gamma frailty on litter
fit <- coxph(Surv(time, status) ~ rx+weight+frailty(litter,dist="gamma"),
data = rats) 

## Compute survival curve from the cox model for rx=0 and weight=0.5 kg
plot(survfit(fit, newdata=data.frame(rx=0,weight=0.5)),xlab = "time",
ylab="Survival") 

## Running this line, I get following error message:
Error in survfit.coxph(fit, newdata = data.frame(rx = 0, weight = 0.5)) : 
Newdata cannot be used when a model has sparse frailty terms

我尝试通过使用选项同时使用稀疏和非稀疏计算方法 sparse=TRUE, Sparse =FALSE, sparse =0, sparse=5然而,没有一个工作。

如何根据我的脆弱模型计算预测的幸存者曲线?

1个回答

这里的问题与试图从线性混合效应模型预测结果相同。由于生存曲线是不可折叠的,因此您示例中的每个窝都有根据您适合的模型的特定窝的生存曲线。您可能知道的脆弱与随机截距相同,表明每窝特有的混杂和预后变量的共同水平,大概是相对于遗传特征。因此,风险比的线性预测因子是观察到的固定效应和随机垃圾效应的混合。与混合模型不同,Cox 模型使用惩罚回归拟合脆弱项,拟合对象属于类coxph-penal且没有方法survreg.coxph-penal,因此创建线性预测器的尝试失败。有几个解决方法。

  1. 只需使用中心协变量拟合边缘模型。

  2. 将协变量居中,拟合 1,然后使用随机效应拟合随机效应模型coxme并提取随机效应,将它们添加到具有偏移量的线性预测变量中,以计算每窝的特定层生存曲线。

  3. 执行 2 并通过将所有生存曲线平均在一起来边缘化它们,这是一种拟合边缘模型的单独方法。

  4. 在边际 Cox 模型中使用固定效应或分层来预测每窝的不同生存曲线。