Algunas de las otras respuestas son viables, pero afirmo que la mejor respuesta es usar el método de acceso diseñado para esto - VarCorr
(este es el mismo que en el predecesor lme4
, el paquete nlme
).
ACTUALIZACIÓN en las versiones recientes de lme4
(versión 1.1-7, pero todo a continuación es probablemente aplicable a versiones> = 1.0), VarCorr
es más flexible que antes, y se debe hacer todo lo que desee sin tener que recurrir a la pesca en torno dentro del objeto modelo ajustado.
library(lme4)
study <- lmer(Reaction ~ Days + (1|Subject), data = sleepstudy)
VarCorr(study)
## Groups Name Std.Dev.
## Subject (Intercept) 37.124
## Residual 30.991
Por defecto desviaciones VarCorr()
impresiones estándar, pero se puede obtener variaciones en cambio, si lo prefiere:
print(VarCorr(study),comp="Variance")
## Groups Name Variance
## Subject (Intercept) 1378.18
## Residual 960.46
(comp=c("Variance","Std.Dev.")
imprimirá ambos).
Para mayor flexibilidad, se puede utilizar el método de as.data.frame
para convertir el objeto VarCorr
, que da a la variable de agrupación, variable (s) efecto, y la varianza/covarianza o desviación/correlaciones estándar:
as.data.frame(VarCorr(study))
## grp var1 var2 vcov sdcor
## 1 Subject (Intercept) <NA> 1378.1785 37.12383
## 2 Residual <NA> <NA> 960.4566 30.99123
Finalmente, la forma cruda del objeto VarCorr
(que probablemente no debería meterse con usted si no es necesario) es una lista de matrices de varianza-covarianza con información adicional (redundante) que codifica las desviaciones y correlaciones estándar, así como también como atributos ("sc"
) dando la desviación estándar residual y especificando si el modelo tiene un parámetro de escala estimado ("useSc"
).
unclass(VarCorr(fm1))
## $Subject
## (Intercept) Days
## (Intercept) 612.089748 9.604335
## Days 9.604335 35.071662
## attr(,"stddev")
## (Intercept) Days
## 24.740448 5.922133
## attr(,"correlation")
## (Intercept) Days
## (Intercept) 1.00000000 0.06555134
## Days 0.06555134 1.00000000
##
## attr(,"sc")
## [1] 25.59182
## attr(,"useSc")
## [1] TRUE
##
Si quiere los valores, entonces VarCorr() es mucho más eficiente. Eche un vistazo a la publicación de Ben Bolker – Thierry
esto está algo desactualizado ahora (aunque la pregunta original se refiere a "mer objects", que están asociados por definición con pre-1.0 'lme4' - la clase ahora se llama' merMod' –