我正在尝试使用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”和其他答案,但我仍然不知道我要去哪里错。
答案 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(由重新缩放产生)。排除这些变量后,问题得以解决。