Dadas tres variables, y
y x
, que son positivas continuas, y z
, que es categórica, tengo dos modelos candidatos dados por:
fit.me <- lmer( y ~ 1 + x + ( 1 + x | factor(z) ) )
y
fit.fe <- lm( y ~ 1 + x )
Espero comparar estos modelos para determinar qué modelo es más apropiado. Me parece que en cierto sentido fit.fe
está anidado dentro fit.me
. Por lo general, cuando se cumple este escenario general, se puede realizar una prueba de ji cuadrado. En R
, podemos realizar esta prueba con el siguiente comando,
anova(fit.fe,fit.me)
Cuando ambos modelos contienen efectos aleatorios (generados por lmer
el lme4
paquete), el anova()
comando funciona bien. Debido a los parámetros de límite, normalmente es aconsejable probar el estadístico Chi-Cuadrado resultante a través de la simulación, sin embargo, todavía podemos usar el estadístico en el procedimiento de simulación.
Cuando ambos modelos contienen solo efectos fijos, este enfoque --- y el anova()
comando asociado --- funcionan bien.
Sin embargo, cuando un modelo contiene efectos aleatorios y el modelo reducido solo contiene efectos fijos, como en el escenario anterior, el anova()
comando no funciona.
Más específicamente, me sale el siguiente error:
> anova(fit.fe, fit.me)
Error: $ operator not defined for this S4 class
¿Hay algo malo en usar el enfoque Chi-Square desde arriba (con simulación)? ¿O es simplemente un problema de anova()
no saber cómo manejar los modelos lineales generados por diferentes funciones?
En otras palabras, ¿sería apropiado generar manualmente la estadística Chi-Square derivada de los modelos? Si es así, ¿cuáles son los grados de libertad apropiados para comparar estos modelos? Según mis cálculos:
Estamos estimando dos parámetros en el modelo de efectos fijos (pendiente e intercepción) y dos parámetros más (parámetros de varianza para la pendiente aleatoria y la intercepción aleatoria) en el modelo de efectos mixtos. Normalmente, el parámetro de intercepción no se cuenta en el cálculo de los grados de libertad, por lo que eso implica que y ; Dicho esto, no estoy seguro de si los parámetros de varianza para los parámetros de efectos aleatorios deben incluirse en el cálculo de los grados de libertad; no se consideran las estimaciones de varianza para los parámetros de efectos fijos , pero creo que se debe a que se supone que las estimaciones de los parámetros para efectos fijos son constantes desconocidas, mientras que se consideran variables aleatorias desconocidaspara efectos mixtos. Agradecería un poco de ayuda en este tema.
Finalmente, ¿alguien tiene una R
solución más apropiada ( basada en) para comparar estos modelos?
fuente
lm()
congls()
desde elnlme
paquete ylmer()
conlme()
(nuevamente desde elnlme
paquete), todo funcionará bien. Pero tenga en cuenta que obtendrá una prueba conservadora ( valores p demasiado grandes ), ya que los parámetros para el modelo más simple están en el límite del espacio de parámetros. Y realmente la elección de si incluir los efectos aleatorios debe basarse en la teoría (por ejemplo, el plan de muestreo), no en una prueba estadística.Respuestas:
Técnicamente, puede hacer que funcione simplemente cambiando el orden de los parámetros:
Funcionará bien. Si pasa un objeto generado por
lmer
primero,anova.merMod
se llamará al en lugar deanova.lm
(que no sabe cómo manejarlmer
objetos). Ver:Sin embargo, elegir un modelo mixto o un modelo fijo es una opción de modelado que debe tener en cuenta el diseño experimental, no un problema de selección de modelo. Consulte https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#testing-significance-of-random-effects de @BenBolker para obtener más detalles:
fuente