我正在使用glmer,我希望提取随机效应的方差分量的标准差(截距和斜率)。
我尝试过使用:
VarCorr(model)
返回两个标准偏差值(加上相关性),但我只想提取截距和斜率SD值。
我尝试使用:
VarrCorr(model)[1]
提取随机拦截SD,让我知道:
attr(,"stddev")
(Intercept) year
0.075 0.011
但我不知道如何将这些提取为单个元素。
答案 0 :(得分:7)
有两种方法可以做到这一点。
## make up a model
library(lme4)
(gm <- glmer(incidence ~ period + (size | herd),
family = poisson, data = cbpp))
当前版本的lme4
允许您将VarCorr
对象强制转换为数据框:
as.data.frame(VarCorr(gm))
然后你可以选择行1:2和第5列来提取随机截距和斜率的标准偏差。
如果您想以老式的方式提取值,可以使用attributes
:
attributes(VarCorr(gm)$herd)$stddev
(Intercept) size
1.18970662 0.08826278
如果您想删除名称(例如(intercept)
,size
),则可以使用as.numeric
或unname
。