为什么 VarCorr 不显示 lmerModLmerTest 或 glmerMod 对象的方差?

Why won't VarCorr display variance for lmerModLmerTest or glmerMod objects?

我正在尝试从一组 glmms 中提取模型摘要的这一部分。我想要方差和标准差。

Random effects:
 Groups Name        Variance Std.Dev.
 herd   (Intercept) 0.4123   0.6421  
Number of obs: 56, groups:  herd, 15

我试过按照这个答案Extract random effect variances from lme4 mer model object

但我似乎无法获得方差,只能获得标准差。我想这可能是因为我使用的是 glmer 而不是 lmer,但我似乎得到了相同的结果。

gm1 <- lmer( size ~ period + (1 | herd), data = cbpp)

summary(gm1)
Random effects:
 Groups   Name        Variance Std.Dev.
 herd     (Intercept) 44.40    6.664   
 Residual             14.51    3.810   
Number of obs: 56, groups:  herd, 15


> VarCorr(gm1, comp="Variance")
 Groups   Name        Std.Dev.
 herd     (Intercept) 6.6636  
 Residual             3.8096  
> VarCorr(gm1, comp="Std.Dev.")
 Groups   Name        Std.Dev.
 herd     (Intercept) 6.6636  
 Residual             3.8096  
> VarCorr(gm1, comp=c("Variance","Std.Dev."))
 Groups   Name        Std.Dev.
 herd     (Intercept) 6.6636  
 Residual             3.8096  





gm2 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
             data = cbpp, family = binomial)

summary(gm2)
Random effects:
 Groups Name        Variance Std.Dev.
 herd   (Intercept) 0.4123   0.6421  
Number of obs: 56, groups:  herd, 15


> VarCorr(gm2, comp="Variance")
 Groups Name        Std.Dev.
 herd   (Intercept) 0.64207 
> VarCorr(gm2, comp="Std.Dev.")
 Groups Name        Std.Dev.
 herd   (Intercept) 0.64207 
> VarCorr(gm2, comp=c("Variance","Std.Dev."))
 Groups Name        Std.Dev.
 herd   (Intercept) 0.64207 

知道这里会发生什么吗?

compprint() 方法的参数,而不是 VarCorr.

print(VarCorr(gm1), comp=c("Variance", "Std.Dev."))
 Groups   Name        Variance Std.Dev.
 herd     (Intercept) 44.404   6.6636  
 Residual             14.513   3.8096

您可能也对

感兴趣
as.data.frame(VarCorr(gm1))[,c("vcov", "sdcor")]
      vcov    sdcor
1 44.40371 6.663611
2 14.51309 3.809605