错误信息:fn(x,...)出错:下降的VtV不是正定的

时间:2015-01-16 19:01:12

标签: r lmer

提前感谢任何看过这个的人。 我曾经在档案馆看过这个问题,但我对R有点新,并且在理解问题和解决方案方面遇到了很多麻烦......

我正在尝试使用lmer函数来创建最小的适当模型。我的模型是Mated~Size * Attempts * Status +(随机因素)。

as.logical(Mated)
as.numeric(Size)
as.factor(Attempts)
as.factor(Status)

(这些都适用于之前的型号)

毕竟,我尝试运行我的模型:

Model1<-lmer(Mated ~ Size*Status*Attempts + (1|FemaleID),data=mydata)

它可以无故障地提交。只有当我尝试应用此更新时才会出错:

Model2<-update(Model1, REML=FALSE)

以下是提供的错误消息: fn(x,...)出错:下降的VtV不是正定的

如果我在没有相互作用的情况下制作第三个模型并在模型和模型之间进行ANOVA,那么它表示两者有显着差异。

Model3<-update(Model1,~.-Size:Status:Attempts
anova(Model1,Model3)

我做错了什么?三方互动真的很重要还是我犯了一些错误?

谢谢

1 个答案:

答案 0 :(得分:4)

如果Mated是二进制的,那么您应该使用带有logit或probit链接功能的glmer,例如:

model <- glmer(Mated ~ Size * Status * Attempts + (1|FemaleID), 
data = mydata, family = binomial)

如果您可以告诉我们您的数据是什么样的(head(mydata)可能没问题,或者请参阅here了解如何制作可重复的示例),这会有所帮助。

另外,我会避免让Mated符合逻辑(请参阅this question and answer了解它如何让您的生活变得更加困难)。相反,as.factor(Mated)会明确地使您的响应变量离散。

之后,您可以将完整模型和简化模型与anova()进行比较。