Использование пакета caret :: train для расчета ошибки предсказания (MdAE) glmms с бета-биномиальными ошибками - PullRequest
0 голосов
/ 21 ноября 2018

Вопрос более или менее соответствует названию.Я хотел бы использовать функцию caret::train с бета-биномиальными моделями, сделанными с пакетом glmmTMB (хотя я не против других функций, способных приспосабливать бета-биномиальные модели) для вычисления оценок средней абсолютной ошибки (MdAE) с помощьюперекрестная проверка ножа (оставьте один)Функция glmmTMBControl уже способна оценить оптимальный параметр дисперсии, но я надеялся также как-то сохранить эту информацию ... или, возможно, с осторожностью выполнить вычисления?

Набор данных, с которым я работаю, выглядитthis:

 df <- data.frame(Effect = rep(seq(from = 0.05, to = 1, by = 0.05), each = 5), Time = rep(seq(1:20), each = 5))

В идеале я бы мог передать функцию glmmTMB в trainControl примерно так:

BB.glmm1 <- train(Time ~ Effect, 
              data = df, method = "glmmTMB", 
              method = "", metric = "MAD")

Вывод будет таким, как в примерах, содержащихся в trainХотя, возможно, с оценками для параметра дисперсии.

Хотя я никоим образом не против обходных путей - заранее спасибо!

1 Ответ

0 голосов
/ 22 ноября 2018

Я не уверен, как выполнить требуемую операцию с помощью каретки, не создавая пользовательский метод, но я уверен, что реализовать его с помощью цикла for (lapply) довольно просто.В этом примере я буду использовать набор данных sleepstudy, поскольку данные вашего примера генерируют кучу предупреждений.

library(glmmTMB)

для выполнения LOOCV - для каждой строки создайте модель без этой строки и прогнозируйте в этой строке:

data(sleepstudy,package="lme4")

LOOCV <- lapply(1:nrow(sleepstudy), function(x){
  m1 <- glmmTMB(Reaction ~ Days + (Days|Subject),
                data = sleepstudy[-x,])
  return(predict(m1, sleepstudy[x,], type = "response"))
})    

получить медиану невязок (я думаю, что это MdAE? Если не оставить комментарий о том, как он рассчитывается):

median(abs(unlist(LOOCV) - sleepstudy$Reaction))
...