1

我对 lme4 有一些经验,但是今天我第一次尝试了 lmerTest,当使用 rand() 函数检查随机分量时,我对一些结果感到惊讶。(我知道 lme4 的作者不建议这样做!)在故障排除中,我想我发现了一些不受欢迎的行为:当 rand() 看到变量名称包含点的随机效应项时,它似乎将该项解析为多个变量. 当然这些在数据集中可能存在也可能不存在,但不幸的是它不会抛出错误,它只会给出奇怪的结果。

这是一个MWE:

library(dplyr)
nsub <- 500
nvis <- 6
data <- data.frame(subjid = factor(sort(rep(c(1:nsub),nvis))),
                   visit = rep(c(1:nvis),nsub))
base <- filter(data, visit==1) %>%
        select(subjid) %>%
        mutate(baseage=rnorm(nsub, 40, 10)) %>%
        merge(data, by="subjid") %>%
        mutate(interval = ifelse(visit==1, 0, 2*(visit-1) + runif(nsub*nvis, 0, 1)),
               age = baseage + interval,
               ageverylong = age,
               age.very.long = age,
               y = 100 - 0.1*age + rnorm(nsub*nvis))
mod1 <- lmer(y ~ (age | subjid), data=base)
mod2 <- lmer(y ~ (ageverylong | subjid), data=base)
mod3 <- lmer(y ~ (age.very.long | subjid), data=base)

summary(mod1) # These three give the same results (so it's not an lme4 problem)
summary(mod2)
summary(mod3)

rand(mod1) # The top two are the same
rand(mod2)
rand(mod3) # But this one is different
4

0 回答 0