lme4 中 glmer() 的置信区间

机器算法验证 混合模式 置信区间 重复测量 线性模型 多层次分析
2022-03-29 14:02:56

我正在对一些数据运行混合模型。我想为我的模型计算置信区间。

为此,我从Predictions and/or confidence (or prediction) 区间对预测 (lme4)改编了以下代码部分。问题是我很难理解代码的实际作用,但到目前为止,这是我发现为我的结果计算一些合理的置信区间的唯一方法。

所以我的问题是:什么是pvar1tvar1

我猜是这样的SE2,但我看不出来,我无法描述它们的区别,或者它们的正常统计术语。我猜区别是一个是CI,另一个是PI?

此外,当代码然后计算它所说的置信区间时prediction +/- 2*sqrt(pvar1)不应该是正态分布的 t.crit 值或 1.96 吗?

library(lme4)
library(ggplot2) # Plotting
data("Orthodont",package="MEMSS")
fm1 <- lmer(
    formula = distance ~ age*Sex + (age|Subject)
    , data = Orthodont
)
newdat <- expand.grid(
    age=c(8,10,12,14)
    , Sex=c("Male","Female")
    , distance = 0
)
mm <- model.matrix(terms(fm1),newdat)
newdat$distance <- mm %*% fixef(fm1)
pvar1 <- diag(mm %*% tcrossprod(vcov(fm1),mm))
tvar1 <- pvar1+VarCorr(fm1)$Subject[1]  ## must be adapted for more complex models
newdat <- data.frame(
    newdat
    , plo = newdat$distance-2*sqrt(pvar1)
    , phi = newdat$distance+2*sqrt(pvar1)
    , tlo = newdat$distance-2*sqrt(tvar1)
    , thi = newdat$distance+2*sqrt(tvar1)
)
#plot confidence
g0 <- ggplot(newdat, aes(x=age, y=distance, colour=Sex))+geom_point()
g0 + geom_errorbar(aes(ymin = plo, ymax = phi))+
    labs(title="CI based on fixed-effects uncertainty ONLY")
#plot prediction
g0 + geom_errorbar(aes(ymin = tlo, ymax = thi))+
    labs(title="CI based on FE uncertainty + RE variance")

谢谢您的帮助。

1个回答

然后代码计算它所说的预测 +/- 2*sqrt(pvar1) 的置信区间。不应该是正态分布的 t.crit 值或 1.96 吗?

这是对的。1.96 是一个更准确的临界值,但是,由于存在随机效应,混合模型中的统计推断存在问题。很难量化随机效应的不确定性。

正如 Ben Bolker 在评论中指出的那样,经常使用 2,以强调这些是近似值。

因此,任何 p 值或置信区间都应视为近似值。