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