¿Cómo interpretar los coeficientes de un modelo mixto multivariado en lme4 sin intercepción general?

10

Estoy tratando de adaptar un modelo mixto multivariado (es decir, respuesta múltiple) R. Aparte de los paquetes ASReml-ry SabreR(que requieren software externo), parece que esto solo es posible en MCMCglmm. En el documento que acompaña al MCMCglmmpaquete (págs. 6), Jarrod Hadfield describe el proceso de ajustar un modelo como el de remodelar múltiples variables de respuesta en una variable de formato largo y luego suprimir la intercepción general. Tengo entendido que suprimir la intersección cambia la interpretación del coeficiente para cada nivel de la variable de respuesta como la media de ese nivel. Dado lo anterior, ¿es posible ajustar un modelo mixto multivariante usando lme4? Por ejemplo:

data(mtcars)
library(reshape2)
mtcars <- melt(mtcars, measure.vars = c("drat", "mpg", "hp"))
library(lme4)
m1 <- lmer(value ~ -1 + variable:gear + variable:carb + (1 | factor(carb)),
    data = mtcars)
summary(m1)
#  Linear mixed model fit by REML 
#  Formula: value ~ -1 + variable:gear + variable:carb + (1 | factor(carb)) 
#     Data: mtcars 
#   AIC   BIC logLik deviance REMLdev
#   913 933.5 -448.5    920.2     897
#  Random effects:
#   Groups       Name        Variance Std.Dev.
#   factor(carb) (Intercept) 509.89   22.581  
#   Residual                 796.21   28.217  
#  Number of obs: 96, groups: factor(carb), 6
#  
#  Fixed effects:
#                    Estimate Std. Error t value
#  variabledrat:gear  -7.6411     4.4054  -1.734
#  variablempg:gear   -1.2401     4.4054  -0.281
#  variablehp:gear     0.7485     4.4054   0.170
#  variabledrat:carb   5.9783     4.7333   1.263
#  variablempg:carb    3.3779     4.7333   0.714
#  variablehp:carb    43.6594     4.7333   9.224

¿Cómo interpretaría uno los coeficientes en este modelo? ¿Funcionaría este método también para modelos lineales mixtos generalizados?

Chris
fuente

Respuestas:

2

Su idea es buena, pero en su ejemplo, olvidó modelar diferentes intersecciones y diferentes variaciones aleatorias para cada rasgo, por lo que su salida no es interpretable como es. Un modelo correcto sería:

m1 <- lmer(value ~ -1 + variable + variable:gear + variable:carb + (0 + variable | factor(carb))

En ese caso, obtendría las estimaciones de los efectos fijos en cada variable (por ejemplo, variabledrat:geares el efecto del predictor gearen la respuesta drat), pero también obtendría las intersecciones para cada variable (por ejemplo, variabledratpara la intercepción de la respuesta drat) y el azar varianza de cada variable y las correlaciones entre variables:

Groups       Name         Std.Dev. Corr     
 factor(carb) variabledrat 23.80             
              variablempg  24.27    0.20     
              variablehp   23.80    0.00 0.00
 Residual                  23.80       

Ben Bolker ha escrito una descripción más detallada de estos métodos , así como el uso MCMCglmmen un marco bayesiano. Otro paquete nuevo, mcglmtambién puede manejar modelos multivariados, incluso con respuestas no normales, pero debe codificar sus matrices de diseño aleatorio. Un tutorial debería estar disponible pronto (consulte la página de ayuda de R).

Charlotte R
fuente