lmer模型中的无效分组因子规范

时间:2013-09-25 22:03:37

标签: r lmer

我正在尝试使用lmer函数运行混合效果模型。我的实验包括使用一些相同的个体(一些缺失数据)在不同温度下的代谢率。文本文件的结构如下所示:

> str(data.by.animal)
'data.frame':   18 obs. of  17 variables:
 $ animal: Factor w/ 18 levels "08_03","08_07",..: 17 6 5 10 15 14 11 12 16 9 ...
 $ temp  : int  2 0 -2 -4 -6 -8 -10 -12 -14 -16 ...
 $ X2    : num  0.0129 0.0176 0.0132 NA 0.0144 0.0133 0.0101

当我运行脚本[model_1 <- lmer(X2 + X0 + X.2 + X.4 + X.6 + X.8 + X.10 + X.12 + X.14 + X.16 + X.18 + X.20 + X.22 + X.24 + X.26 ~ temp + (1 | animal), data.by.animal)]时,我得到以下内容:[Error in FUN(X[[1L]], ...) : Invalid grouping factor specification, animal]尽管在这里咨询了“The R Book”和其他答案,但我仍然不知道我要去哪里错。

3 个答案:

答案 0 :(得分:2)

正如我的评论中所述,此模型规范没有意义 - lmer需要~左侧的单个响应变量。它没有经过测试,因为我们认为任何人都没有犯错......(你想做什么?你想为每个X*变量分别进行单独的分析吗?)

我可以或多或少地重现这一点,只要左侧的一个元素是一个因素......

library(lme4)

这是某事,但我不确定是什么......

lmer(Reaction + Days ~ (1| Subject), sleepstudy)

接近lmer(Reaction ~ (1|Subject), sleepstudy)(我可能已经预料到了 - 默默地忽略了LHS的第二个任期?),但不完全相同......

允许使用LHS的因素,尽管它们没有多大意义(它们可能只是转换为数字):

lmer(factor(Days) ~ (1| Subject), sleepstudy)

如果我把两者都放进去,我就会收到错误:

lmer(Reaction + factor(Days) ~ (1| Subject), sleepstudy)
## Error in FUN(X[[1L]], ...) : 
##   Invalid grouping factor specification, Subject
## In addition: Warning message:
## In Ops.factor(Reaction, factor(Days)) : + not meaningful for factors

答案 1 :(得分:0)

从语法上讲,这是正确的。你想要一个随机截取模型与动物的随机效果。你有18个观察值,动物是17个等级的因子,所以基本上只有最多1次重复测量。混合模型在这种情况下不会融合。我恳请你重新考虑你在这里的分析。

就错误而言,lme4包源会抛出错误:

    ## convert grouping variables to factors as necessary
    for (i in all.vars(x[[3]])) {
        frloc[[i]] <- factor(frloc[[i]])
    }
    ff <- eval(substitute(factor(fac), list(fac = x[[3]])), frloc)
    if (all(is.na(ff)))
        stop("Invalid grouping factor specification, ",
             deparse(x[[3]]))

您可能想要考虑animal的编码方式。尝试重新编码以获得其他值。

你的shell抛出错误后可以打印traceback()的输出吗?

答案 2 :(得分:0)

在使用lmer时,我也遇到了这个问题。当我检查数据时,我发现几个变量的值为NA(由重新缩放产生)。排除这些变量后,问题得以解决。