我正在尝试使用Ranger计算的随机生存林中的预测来计算特定时间点的c指数。我知道这可以通过以下代码轻松完成coxph模型:
cox_model = coxph(Surv(time, status == 1) ~ ., data = train)
c_index_test <- pec::cindex(cox_model, formula = Cox_model$formula, data=test, eval.times= c(30, 90, 730))
#want to evaluate at 1 month, 3 months, and 2 years
然而,尽管我可以使用rfsrc()
生成的随机森林在这些时间点轻松计算c-index,但我无法使用游侠来做到这一点。
除了pec cindex()
函数(它不适用于类“ranger”的对象之外,我还尝试了concordance.index函数(survcomp包的一部分)并尝试使用predict.ranger函数的不同组合生成生存概率预测,但没有任何效果。
如果有人可以提供关于如何计算游侠RSF的c-index的代码(在特定时间点和外部验证集上),我将非常感激!!!我已经能够使用randomforestSRC做到这一点,但它只需要很长时间,我的R会话通常会超时,而我实际上无法获得任何结果,运行有> 10棵树......
游侠包计算Harrell的c-index,类似于一致性统计。如果你有一个拟合的模型rf
,属性prediction.error
相当于1 - Harrell's c-index
。有关更多详细信息,请查看以下link。