Вероятность выживания в определенные моменты времени с использованием randomForestSRC

Я использую rfsrc смоделировать проблему выживания, вот так:

library(OIsurv)
library(survival)
library(randomForestSRC)

data(burn)
attach(burn)

library(randomForestSRC)

fit <- rfsrc(Surv(T1, D1) ~  ., data=burn)

# predict on the train set
pred <- predict(fit, burn, OOB=TRUE, type=response)
pred$predicted

это дает мне общую вероятность выживания всех пациентов.

Как получить вероятность выживания для каждого человека в разные моменты времени, скажем, 0-5 месяцев или 0-10 месяцев?

1 ответ

Решение

Документация на это не сразу очевидна, если вы не знакомы с пакетом, но это возможно.

Загрузить данные

data(pbc, package = "randomForestSRC")

Создание пробных и тестовых наборов данных

pbc.trial <- pbc %>% filter(!is.na(treatment))
pbc.test <- pbc %>% filter(is.na(treatment))

Постройте нашу модель

rfsrc_pbc <- rfsrc(Surv(days, status) ~ .,
                   data = pbc.trial,
                   na.action = "na.impute")

Проверить модель

test.pred.rfsrc <- predict(rfsrc_pbc, 
                           pbc.test,
                           na.action="na.impute")

Все хорошее содержится в нашем объекте предсказания. $survival Объект представляет собой матрицу из n строк (по 1 на пациента) и n столбцов (по одному на time.interest - они выбираются автоматически, хотя вы можете ограничить их, используя ntime аргумент. Наша матрица 106х122)

test.pred.rfsrc$survival

$time.interest Объект представляет собой список различных "time.interests" (122, так же, как количество столбцов в нашей матрице из $surival)

test.pred.rfsrc$time.interest

Допустим, мы хотели бы увидеть наш прогнозируемый статус через 5 лет, мы бы
необходимо выяснить, какой временной интерес был ближайшим к 1825 дням (поскольку наш период измерения составляет дни), когда мы смотрим на наши $time.interest объект, мы видим, что строка 83 = 1827 дней или примерно 5 лет. строка 83 в $time.interest соответствует столбцу 83 в нашем $survival матрица. Таким образом, чтобы увидеть прогнозируемую вероятность выживания через 5 лет, мы просто взглянем на столбец 83 нашей матрицы.

test.pred.rfsrc$survival[,83]

Затем вы можете сделать это для тех моментов времени, которые вас интересуют.

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