我对lme4 :: lmer模型中随机效应的方差分量估计值的(置信度)区间或标准误差或类似的东西(基于抽样?)感兴趣。
我确信我的事情过于简单(而且我知道标准错误在这里被认为不是正确的事情),但我会非常感谢某些代码行,它们可以衡量这些估算的可信度。
在VarCorr帮助页面的示例中,我想对此输出的Variance列中的三个值有一定的信心:
data(Orthodont, package="nlme")
fm1 <- lmer(distance ~ age + (age|Subject), data = Orthodont)
vc <- VarCorr(fm1)
print(vc,comp=c("Variance"))
答案 0 :(得分:1)
预赛:(我将冒昧使用另一个例子,因为Orthodont
似乎有些奇怪,我将不得不考虑......)
library("lme4")
fm1 <- lmer(Reaction ~ Days + (Days|Subject), data = sleepstudy)
vc <- VarCorr(fm1)
print(vc,comp=c("Variance"))
计算置信区间。使用oldNames=FALSE
为我们提供了更有意义的名称:
cc <- confint(fm1,which="theta_",oldNames=FALSE)
print(cc,digits=3)
## 2.5 % 97.5 %
## sd_(Intercept)|Subject 14.382 37.716
## cor_Days.(Intercept)|Subject -0.482 0.685
## sd_Days|Subject 3.801 8.753
## sigma 22.898 28.858
Squaring cc
给出了方差的置信区间 - 遗憾的是,平方相关系数的置信区间相当无用(我们可能更喜欢协方差的置信区间,这需要更多的工作)。删除第二行(相关)行,并在行名称的开头删除即将出现误导的sd_
/ cor_
标记:
ccsq <- cc[-2,]^2
rownames(ccsq) <- gsub("^.*_","",rownames(ccsq))
ccsq
## 2.5 % 97.5 %
## (Intercept)|Subject 206.82812 1422.49637
## Days|Subject 14.44885 76.62172
## sigma 524.33063 832.78396
(注意最后一行是剩余方差的95%CI,而不是残差标准差,即使我没有更改名称......)