merTools predicInterval () para el modelo con efecto aleatorio anidado

HacepredictInterval() desde elmerTools paquete no como efectos aleatorios anidados? Por ejemplo, usando elmsleep conjunto de datos de laggplot2 paquete:

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

Devuelve un error:

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

Esto funciona bien, no hay problema:

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

(Bueno, en realidad da una advertencia sobreNA niveles en las variables de efectos aleatorios, pero eso no me preocupa)

ACTUALIZAR

Como se discute en los comentarios de la respuesta de Ben Bolker a continuación, una nueva versión demerTools explica los efectos aleatorios anidados. Sin embargo, cuando trato de predecir datos que contienen nuevos niveles del efecto aleatorio anidado, obtengo errores.

Esto funciona:

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

Y esto funciona, aunque con un par de advertencias (ver más abajo para Q adicional sobre las advertencias *):

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

Pero esto no funciona:

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

Con el siguiente error:

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

Y aquí,"omni" en realidad no es un nuevo nivel devore, pero cuando se combina conorder, crea nuevas combinaciones anidadas de las variables.

Si yo uso"new" o cualquier otra cosa que no sea un nivel observado devore, Obtengo resultados similares: funciona para la versión no anidada del modelo, pero no para la versión anidada.

* Además, ¿debería preocuparme la advertencia dada por el segundo fragmento de modelo anterior:

> 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

Voy a adivinar que el segundo es el resultado devore tomando el mismo valor para cada observación, pero eso no debería ser un problema para la predicción, ¿verdad? Podría ver que es un problema si la variable toma el mismo valor cuando estaba ajustando el modelo, pero ¿no creo que debería ser un problema al predecir nuevas observaciones?

Respuestas a la pregunta(1)

Su respuesta a la pregunta