方差分量周围的区间

时间:2014-10-27 19:35:37

标签: r lme4

我对lme4 :: lmer模型中随机效应的方差分量估计值的(置信度)区间或标准误差或类似的东西(基于抽样?)感兴趣。

我确信我的事情过于简单(而且我知道标准错误在这里被认为不是正确的事情),但我会非常感谢某些代码行,它们可以衡量这些估算的可信度。

在VarCorr帮助页面的示例中,我想对此输出的Variance列中的三个值有一定的信心:

data(Orthodont, package="nlme")
fm1 <- lmer(distance ~ age + (age|Subject), data = Orthodont)
vc <- VarCorr(fm1)
print(vc,comp=c("Variance"))

1 个答案:

答案 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,而不是残差标准差,即使我没有更改名称......)