0

我在 2013 版的 R 中运行了 lmerTest 和 lmer:

> library(lmerTest)
> data1.frame <- read.delim("colorness.txt", fileEncoding="UTF-16")
> str(data1.frame)
> lmer3 <- lmerTest::lmer(duration ~ (1|item) + (1+color|speaker) + group*color*sex, data=data1.frame, REML=FALSE, na.action=na.omit)

lmer3 对我来说很好用。而当我检查str(data1.frame)中的数据时,并没有错。

但是当我把这个命令

> summary(lmer3)

它给了我这个信息:

Error in `colnames<-`(`*tmp*`, value = c("Estimate", "Std. Error", "df",  : 
  length of 'dimnames' [2] not equal to array extent

但是,我很确定我的数据没有任何问题,因为我可以在 R 版本 2009 中运行 lmer。你知道如何解决这个问题吗?问题是,如果我坚持使用 R 版本 2009,那么我无法从 lmerTest 获得 p 值,而且我不知道如何从似然比测试中获得它。你对此有什么想法吗?

4

1 回答 1

2

很抱歉将此作为答案发布,但我仍然没有足够的“声誉”来发表评论。我认为这是一个错误和/或取决于数据,因为我有同样的问题。我有一个大型数据集,模型使用循环逐行运行。前 26,478 次测试(共 34,713 次)一切正常,但在下一个循环中停止,出现同样的错误。所以:

1)它不是包的版本,因为它适用于我的数据集的 3/4 2)它不是 sintax,因为在前数万个模型和我之前运行的 ANOVA 中一切正常空模型。

我的代码大致是:

for (i in 1:nrow(dataset)){
    dataframe<-as.data.frame(dataset[i,]);
    lm.R<-lmer(response ~ treatment + (1|ran)+(1|rep), dataframe, REML= FALSE);
    x<-summary(lm.R);
    p.val[i,]<-x$coefficients[,"Pr(>|t|)"];
}

当 i = 26479 时我得到同样的错误

Model is not identifiable...
Error in `colnames<-`(`*tmp*`, value = c("Estimate", "Std. Error", "df",  : 
  length of 'dimnames' [2] not equal to array extent

我的数据在那一行很好(我仔细检查了),我看不到任何不规则之处。甚至针对空模型的 ANOVA(我强烈建议您这样做,因为它为您提供模型的 p 值、loglike、AIB 等)也能完美运行。

lm.null<-lmer(response ~ 1 + (1|ran)+(1|rep), dataframe, REML= FALSE);
lm.R<-lmer(response ~ treatment + (1|ran)+(1|rep), dataframe, REML= FALSE);
anova(lm.null,lm.R);
于 2014-04-24T16:14:58.033 回答