首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lmerTest和lmer:错误消息

lmerTest和lmer:错误消息
EN

Stack Overflow用户
提问于 2014-02-28 16:33:34
回答 1查看 2K关注 0票数 0

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

代码语言:javascript
复制
> 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)中的数据时,没有任何错误。

但是当我把这个命令

代码语言:javascript
复制
> summary(lmer3)

它给了我这样的信息:

代码语言:javascript
复制
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值,并且我不知道如何从似然比检验中获得它。你对此有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-25 00:14:58

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

1)它不是软件包的版本,因为它适用于我数据集的3/4。2)它不是sintax,因为在最初的数万个模型和我之前对空模型运行的ANOVA中,一切都运行得很好。

我的代码大致是:

代码语言:javascript
复制
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时,我得到同样的错误

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

我的数据在这一行是正常的(我仔细检查了一下),并且我看不到任何异常。即使是针对null模型的方差分析(我强烈建议您这样做,因为它会给出模型的p值、loglike、AIB等)也能完美地工作。

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22089982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档