使用glmer提取随机效应分量的标准偏差

时间:2014-08-01 16:39:58

标签: r lme4

我正在使用glmer,我希望提取随机效应的方差分量的标准差(截距和斜率)。

我尝试过使用:

VarCorr(model)

返回两个标准偏差值(加上相关性),但我只想提取截距和斜率SD值。

我尝试使用:

VarrCorr(model)[1]

提取随机拦截SD,让我知道:

attr(,"stddev")
(Intercept)        year 
      0.075       0.011 

但我不知道如何将这些提取为单个元素。

1 个答案:

答案 0 :(得分:7)

有两种方法可以做到这一点。

## make up a model
library(lme4)
(gm <- glmer(incidence ~ period + (size | herd),
              family = poisson, data = cbpp))

方法1

当前版本的lme4允许您将VarCorr对象强制转换为数据框:

as.data.frame(VarCorr(gm))

然后你可以选择行1:2和第5列来提取随机截距和斜率的标准偏差。

方法2

如果您想以老式的方式提取值,可以使用attributes

attributes(VarCorr(gm)$herd)$stddev
(Intercept)        size 
 1.18970662  0.08826278 

如果您想删除名称(例如(intercept)size),则可以使用as.numericunname

相关问题