Вычисление индекса соответствия с рейнджером (пакет 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, Взгляните на следующую ссылку для более подробной информации.

Другие вопросы по тегам