Как рассчитать функцию выживания в анализе пакетов gbm? - PullRequest
0 голосов
/ 07 сентября 2018

Я бы хотел проанализировать свои данные на основе модели с градиентом.

С другой стороны, поскольку мои данные являются своего рода когортой, у меня возникают проблемы с пониманием результата этой модели.

Вот мой код. Анализ выполнен на основе данных примера.

install.packages("randomForestSRC")
install.packages("gbm")
install.packages("survival")

library(randomForestSRC)
library(gbm)
library(survival)

data(pbc, package="randomForestSRC")
data <- na.omit(pbc)

set.seed(9512)
train <- sample(1:nrow(data), round(nrow(data)*0.7))
data.train <- data[train, ]
data.test <- data[-train, ]

set.seed(9741)
gbm <- gbm(Surv(days, status)~.,
           data.train,
           interaction.depth=2,
           shrinkage=0.01,
           n.trees=500,
           distribution="coxph")

summary(gbm)


set.seed(9741)
gbm.pred <- predict.gbm(gbm, 
                        n.trees=500,
                        newdata=data.test, 
                        type="response") 

Когда я читаю документацию пакета, "gbm.pred" является результатом частичной вероятности Кокса.

set.seed(9741)
lambda0 = basehaz.gbm(t=data.test$days, 
                      delta=data.test$status,  
                      t.eval=sort(data.test$days), 
                      cumulative = FALSE, 
                      f.x=gbm.pred, 
                      smooth=T)

hazard=lambda0*exp(gbm.pred)

В этом коде lambda0 - базовая функция опасности.

Итак, по формуле: h (t / x) = лямбда0 (t) * exp (f (x))

«Опасность» - это функция опасности.

Однако, то, что я хотел вычислить, было "функцией выживания".

Потому что я хотел бы сравнить исход исходных данных (data $ status) с результатом прогнозирования (функция выживания).

Пожалуйста, дайте мне знать, как рассчитать функцию выживания.

Спасибо

1 Ответ

0 голосов
/ 04 декабря 2018

На самом деле, прибыль представляет собой совокупную базовую функцию опасности (неотъемлемая часть: \int^t\lambda(z)dz), а функцию выживания можно рассчитать, как показано ниже:

s(t|X)=exp{-e^f(X)\int^t\lambda(z)dz}

f (X) - это прогноз gbm, который равен пропорции логарифмической опасности.

Я думаю, что это руководство по анализу выживаемости на основе gbm поможет вам!

https://github.com/liupei101/Tutorial-Machine-Learning-Based-Survival-Analysis/blob/master/Tutorial_Survival_GBM.ipynb

...