首页 > 解决方案 > lme4:使用不在模型中的样本数据引导置信区间

问题描述

我想计算模型参数(残差 SD)的置信区间除以模型中未包含的变量的平均值。例子:

library(lme4)
#> Loading required package: Matrix

set.seed(1)

mod <- lmer(angle ~ recipe + (1|replicate), data = cake)

calc_stats <- function(model) {
    recipeA <- fixef(model)[[1]] # Get intercept from model
    sd_components <- as.data.frame(VarCorr(model))[['sdcor']] # Get variance components (SD)
    sd_between = sd_components[1]
    sd_within = sd_components[2]
    
    c(
        recipeA = recipeA,
        sd_between = sd_between,
        sd_within = sd_within
    )
}

confint(mod, method="boot", FUN = calc_stats, nsim = 100)
#>                2.5 %    97.5 %
#> recipeA    29.095426 36.722292
#> sd_between  3.800349  9.382943
#> sd_within   5.044569  6.078210

reprex 包于 2021-10-07 创建 (v2.0.0 )

我想计算 sd_within/mean(temperature) 的 CI,其中温度是数据框中的变量,但不包含在模型中。

问题是温度不高mod@frame。因此我无法访问它来进行模型的引导改装。

(我的第一个想法是简单地将它添加到模型对象mod@frame <- cake中,但是在重新安装模型时它会丢失)。

标签: rlme4statistics-bootstrap

解决方案


推荐阅读