Come interpretare i coefficienti di un modello misto multivariato in lme4 senza intercettazione generale?


10

Sto cercando di adattare un modello misto multivariato (ovvero, risposta multipla) R. A parte i pacchetti ASReml-re SabreR(che richiedono software esterno), sembra che ciò sia possibile solo in MCMCglmm. Nel documento che accompagna il MCMCglmmpacchetto (pagg.6), Jarrod Hadfield descrive il processo di adattamento di un modello come il rimodellamento di più variabili di risposta in una variabile di lungo formato e quindi la soppressione dell'intercettazione generale. La mia comprensione è che la soppressione dell'intercettazione modifica l'interpretazione del coefficiente per ciascun livello della variabile di risposta in modo che sia la media per quel livello. Alla luce di quanto sopra, è quindi possibile adattare un modello misto multivariato usando lme4? Per esempio:

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

Come interpretare i coefficienti in questo modello? Questo metodo funzionerebbe anche con modelli misti lineari generalizzati?

Risposte:


2

La tua idea è buona, ma nel tuo esempio, hai dimenticato di modellare diverse intercettazioni e diverse varianze casuali per ogni tratto, quindi il tuo output non è interpretabile così com'è. Un modello corretto sarebbe:

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

In tal caso, otterresti le stime degli effetti fissi su ciascuna variabile (ad esempio, variabledrat:gearè l'effetto del predittore gearsulla risposta drat), ma otterrai anche le intercettazioni per ciascuna variabile (ad esempio variabledratper l'intercetta della risposta drat) e il casuale varianza di ciascuna variabile e correlazioni tra variabili:

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       

Una descrizione più dettagliata di questi metodi è stata scritta da Ben Bolker , così come l'uso MCMCglmmin un quadro bayesiano. Un altro nuovo pacchetto mcglmpuò anche gestire modelli multivariati, anche con risposte non normali, ma è necessario codificare le matrici di progettazione casuali. Un tutorial dovrebbe essere presto disponibile (vedere la pagina di aiuto di R).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.