lmerTest和lmer:错误消息

时间:2014-02-28 08:33:34

标签: r lmer

我在2013版本中运行了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值,而且我不知道如何从似然比测试中得到它。你对此有什么想法吗?

1 个答案:

答案 0 :(得分: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

我的数据在那一行很好(我是双重检查),我看不出任何不规则性。即使是针对null模型的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);