merToolsвести прогнозирование () для модели с вложенным случайным эффектом

Есть лиpredictInterval() отmerTools пакет не похож на вложенные случайные эффекты? Например, используяmsleep набор данных изggplot2 пакет:

library("lme4")
library("merTools")
library("ggplot2")
mod <- lmer(sleep_total ~ bodywt + (1|vore/order), data=msleep)
predInt <- predictInterval(merMod=mod, newdata=msleep) 

Возвращает ошибку:

Error in '[.data.frame'(newdata, , j) : undefined columns selected

Это нормально работает без проблем:

mod <- lmer(sleep_total ~ bodywt + (1|vore) + (1|order), data=msleep)
predInt <- predictInterval(merMod=mod, newdata=msleep)

(Ну на самом деле это дает предупреждение оNA уровни в переменных случайных эффектов, но меня это не касается)

ОБНОВИТЬ

Как обсуждалось в комментариях к ответу Бена Болкера ниже, новая версияmerTools учитывает вложенные случайные эффекты. Однако, когда я пытаюсь предсказать данные, содержащие новые уровни вложенного случайного эффекта, я получаю ошибки.

Это работает:

mod <- lmer(sleep_total ~ bodywt + (1|vore/order), data=msleep)
predInt <- predictInterval(merMod=mod, newdata=msleep) 

И это работает, хотя и с парой предупреждений (дополнительную информацию о предупреждениях * см. Ниже):

mod <- lmer(sleep_total ~ bodywt + (1|vore) + (1|order), data=msleep)
msleep2 <- msleep %>% mutate(vore = "omni")
predInt <- predictInterval(merMod=mod, newdata=msleep2) 

Но это не работает

mod <- lmer(sleep_total ~ bodywt + (1|vore/order), data=msleep)
msleep2 <- msleep %>% mutate(vore = "omni")
predInt <- predictInterval(merMod=mod, newdata=msleep2) 

Со следующей ошибкой:

Error in `[.data.frame`(tmp, alllvl) : undefined columns selected
In addition: Warning message:
In predictInterval(merMod = mod, newdata = msleep3) :
  newdata is tbl_df or tbl object from dplyr package and has been
              coerced to a data.frame

И здесь,"omni" на самом деле не новый уровеньvore, но в сочетании сorderсоздает новые вложенные комбинации переменных.

Если я использую"new" или что-нибудь еще, что не является наблюдаемым уровнемvore, Я получаю аналогичные результаты: он работает для не вложенной версии модели, но не для вложенной версии.

* Кроме того, я должен быть обеспокоен предупреждением, данным вторым фрагментом модели выше:

> mod <- lmer(sleep_total ~ bodywt + (1|vore) + (1|order), data=msleep)
> msleep2 <- msleep %>% mutate(vore = "omni")
> predInt <- predictInterval(merMod=mod, newdata=msleep2)
Warning messages:
  1: In predictInterval(merMod = mod, newdata = msleep2) :
     newdata is tbl_df or tbl object from dplyr package and has been
       coerced to a data.frame
  2: In chol.default(sigma, pivot = TRUE) :
     the matrix is either rank-deficient or indefinite

Я собираюсь предположить, что второй результатvore принимая одно и то же значение для каждого наблюдения, но это не должно быть проблемой для прогноза, не так ли? Я мог видеть, что это проблема, если переменная принимала то же значение, когда я подбирал модель, но не думаю, что это должно быть проблемой при прогнозировании новых наблюдений?

Ответы на вопрос(1)

Ваш ответ на вопрос