1

我在尝试适合 R 的嵌套模型时遇到了很大的问题。

我有 2 个条件的响应时间实验,每个条件 46 人,每个条件 32 个测量值。我希望将措施嵌套在人和人嵌套在条件中,但我无法让它发挥作用。

我认为应该有意义的代码是:

nestedmodel <- lmer(responsetime ~ 1 + condition + 
 (1|condition:person) + (1|person:measure), data=dat) 

但是,我得到的只是一个错误:

Error in checkNlevels(reTrms$flist, n = n, control) : 
  number of levels of each grouping factor must be < number of observations

不幸的是,我什至不知道从哪里开始寻找问题所在。有任何想法吗?请,请,请?=) 干杯!

4

1 回答 1

0

这在CrossValidated上可能更合适,但是:lme4试图告诉您您的一个或多个随机效应与残差方差混淆。正如您描述的数据,我不太明白为什么:您应该有 2*46*32=2944 个总观察值,2*46=92 和 的组合conditionperson以及 46*32=1472measure和的组合person

如果你这样做

lf <- lFormula(responsetime ~ 1 + condition + 
                (1|condition:person) + (1|person:measure), data=dat) 

接着

lapply(lf$reTrms$Ztlist,dim)

查看每个术语的转置随机效应设计矩阵,你会得到什么?您应该(根据您对数据的描述)看到这些矩阵分别为 1472 x 2944 和 92 x 2944。

正如@MrFlick 所说,一个可重现的例子会很好。您可以向我们展示的其他内容是:

  • 无论如何都适合模型,lmerControl(check.nobs.vs.nRE="ignore")用于忽略测试,并向我们展示结果(尤其是随机效应方差和组数的陈述)
  • 向我们展示结果,with(dat,table(table(interaction(condition,person)))以提供有关每个组合的重复次数的信息(同样对于measure
于 2015-05-25T20:15:18.677 回答