Я хочу приспособить модель выживания, используя технику случайного леса с пакетом рейнджеров.
Данные (df) в коде - это примерные данные, реальные данные состоят из около 1000 наблюдений и 5 переменных (включая время и результат).
library(survival); library(mlr); library(ranger);
#library(dplyr) also requried
#> Loading required package: ParamHelpers
df <- dplyr::tribble(
~Time, ~Outcome, ~factorA,
10, 1, "Cat1",
70, 0, "Cat1",
60, 1, "Cat2",
10, 1, "Cat1",
40, 1, "Cat1",
10, 1, "Cat2",
10, 1, "Cat1",
30, 0, "Cat1",
10, 1, "Cat2",
20, 0, "Cat1",
50, 1, "Cat2",
10, 1, "Cat2",
50, 0, "Cat1",
10, 1, "Cat1",
10, 1, "Cat1",
)
df <- as.data.frame(df)
df$factorA <- factor(df$factorA)
surv_task <- makeSurvTask(data = df, target = c("Time", "Outcome"))
# Ranger params
ran_param <- makeParamSet(
makeDiscreteParam("splitrule", values = c("logrank", "C", "maxstat"))
)
ctrl <- makeTuneControlGrid()
rdesc <- makeResampleDesc("CV", iters = 3L)
check <- tuneParams("surv.ranger", surv_task, rdesc, par.set = ran_param, control = ctrl)
#> [Tune] Started tuning learner surv.ranger for parameter set:
#> Type len Def Constr Req Tunable Trafo
#> splitrule discrete - - logrank,C,maxstat - TRUE -
#> With control class: TuneControlGrid
#> Imputation value: -0
#> [Tune-x] 1: splitrule=logrank
#> Error in `[.data.frame`(num.response, x == y): undefined columns selected
Кто-нибудь может помочь в понимании, почему ошибка?
Какой должен быть правильный подход?