我有一个分层的 cox 模型,并且想要基于该模型预测某些配置文件的生存曲线。
现在,因为我正在处理一个包含很多层的大型数据集,所以我只想预测非常具体的层,以节省时间和内存。
survfit.coxph
的帮助页面指出:...如果新数据确实包含层变量,则结果将根据指示的层,每行新数据包含一条曲线原始模型。
当我运行下面的代码时,newdata 确实包含层变量,我仍然得到两个层的预测,这与帮助页面相矛盾
df <- data.frame(X1 = runif(200),
X2 = sample(c("A", "B"), 200, replace = TRUE),
Ev = sample(c(0,1), 200, replace = TRUE),
Time = rexp(200))
testfit <- coxph( Surv(Time, Ev) ~ X1 + strata(X2), df)
out <- survfit(testfit, newdata = data.frame(X1 = 0.6, X2 = "A"))
这里有什么我看不到或看不懂的地方吗?
最佳答案
我不确定这是 survival:::survfit.coxph
中的错误还是功能。看起来代码中的预期行为是只返回请求的层。在函数中:
strata(X2)
在包含newdata
的环境中进行计算,返回结果A
。- 然后创建完整的曲线。
- 然后有一些逻辑将曲线
拆分
成层,但前提是result$surv
是矩阵。
在您的示例中,它不是矩阵。如果这不是错误,我找不到任何关于预期用途的文档。也许值得给作者/维护者留言。
maintainer("survival")
# [1] "Terry M Therneau <xxxxxxxx.xxxxx@xxxx.xxx>"
关于r - 分层考克斯模型的生存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67231786/