Вычисление индекса соответствия с рейнджером (пакет R)
Я пытаюсь использовать прогнозы из случайного леса выживания, рассчитанного с помощью 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
Тем не менее, хотя я могу легко вычислить c-index в эти моменты времени с помощью случайного леса, созданного с использованием rfsrc()
Я не смог сделать это с помощью рейнджера.
В дополнение к pec cindex()
функция (которая не работает с объектами класса "рейнджер", я также пробовал функцию concordance.index (часть пакета SurvComp) и пробовал различные комбинации с использованием функции pregnet.ranger для генерации прогнозов вероятности выживания, но ничего не сработало.
Если кто-нибудь может предоставить код для того, как рассчитать c-индекс RSF рейнджера (в определенные моменты времени и на внешнем валидационном наборе), я был бы очень признателен!!! Я смог сделать это с randomforestSRC, но это занимает так много времени, что часто мой R-сеанс истекает, и я фактически не смог получить ЛЮБЫЕ результаты с запусками, имеющими>10 деревьев...
1 ответ
Пакеты рейнджера вычисляют c-индекс Харрелла, который похож на статистику соответствия. Если у вас есть подогнанная модель rf
Атрибут prediction.error
эквивалентно 1 - Harrell's c-index
, Взгляните на следующую ссылку для более подробной информации.