繁体   English   中英

我如何正确地解释lme4的嵌套随机效应?

[英]How do I get properly accounted for nested random effects with lme4?

我有一个数据框架,其中包含subjectwdgroup变量,以及一个value响应变量。 每个主题被分配到一组,并在每个工作日进行7次测量。 因为每个主题都完全嵌套在一个组中,所以我想对subjectgroup使用嵌套的随机效果模型,并为wd添加第三个随机效果。 目前,我正在这样做:

model = lmer(value ~ 1+ (1|wd) + (1|group) + (1|subject), 
             data = dframe, REML = 0)

我在本指南的第40页上找到了基于此的代码。 我已经使用了REML = TRUEREML = 0 但是,当我使用VarCorr(model)$variances ,我得到

Groups   Name        Std.Dev.  
subject  (Intercept) 94.9534363
wd       (Intercept) 42.5931401
group    (Intercept)  0.0015608
Residual              0.9589836

该组方差与我用来生成数据的代码冲突,该代码的组均值为36.9、28.78和-15.269。 当我查看“残差”以预测随机效果(使用ranef )与真正的随机效果时,我得到的残差与其所在的组具有非常高的相关性(如果我对residuals ~ group ranef建模,则R平方值为超过0.9)。

如何正确拟合R中的嵌套随机效应模型? 我更喜欢使用lme4,但是任何软件包都足够。

这是我用来生成数据的代码:

library(dplyr)
generate_data <- function(n = 10, g = 3, seed = 1, mean.overall = 300,
                          sigma.g = 50, sigma.wd = 50, 
                          sigma.subject = 100, sigma. = 30) {
    set.seed(seed)
    means.wd = rnorm(7) * sigma.wd
    means.g = rnorm(g) * sigma.g
    means.subject = rnorm(n*g) * sigma.subject
    dframe = data.frame(subject = rep(1:(g*n), each = 7),
                        wd = rep(1:7, g*n), 
                        group = rep(1:g, each = (7*n)))
    dframe = mutate(dframe,
       value = mean.overall + means.wd[wd] +    
           means.subject[subject] + means.g[group] + rnorm(7*g*n),
       subject = factor(subject, levels = 1:(n*g)),
       wd = factor(wd), 
       group = factor(group, levels = 1:g))
    dframe$value = round(pmax(5,dframe$value))
    truefx = list(wd = means.wd, group = means.g, 
                  subject = means.subject)
    list(data = dframe, effects = truefx)
}

dframe = generate_data()$data

我猜您希望分组作为固定效果,因为只有几个级别。 同样,不需要在工作日内嵌套工作日,因为每个主题/工作日组合只有一个观测值。 如果是这样,您所需要做的就是

lmer(value ~ group + (1|subject), data = dframe)

尚不清楚工作日是否真正地嵌套在主题中。 如果所有科目都在相同的工作日内进行,则其他方法可能更合适。 对于stats.stackexchange.com,这是一个更好的问题。

如果您确实确实想嵌套这些,那么可能会发生类似的事情。

lmer(value ~ (1|group/subject/wd), data = dframe)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM