我正在尝试使用 lmer 函数创建一个最小适当模型。我的模型已配对 ~ 尺寸 * 尝试 * 状态 +(随机因素)。
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)
这是提供的错误消息:
Error in fn(x, ...) : Downdated VtV is not positive definite
如果我在没有交互的情况下制作第三个模型,并在该模型与模型一之间进行方差分析,那么它表明这两个模型有显着不同。
Model3<-update(Model1,~.-Size:Status:Attempts
anova(Model1,Model3)
我做错了什么?三向交互真的很重要还是我犯了一些错误?
谢谢
最佳答案
如果 Mated
是二进制的,那么您可能应该使用 glmer
和 logit 或 probit 链接函数,例如:
model <- glmer(Mated ~ Size * Status * Attempts + (1|FemaleID),
data = mydata, family = binomial)
如果您能让我们知道您的数据是什么样的,将会有所帮助(head(mydata)
可能没问题,或者参阅 here 了解如何制作可重现的示例)。
此外,我会避免使 Mated
合乎逻辑(请参阅 this question and answer 了解它如何使您的生活变得更加困难)。相反,as.factor(Mated)
将明确使您的响应变量离散。
之后,您可以使用 anova()
比较完整模型和简化模型。
关于r - 错误消息 : Error in fn(x, ...):已更新的 VtV 不是正定的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27990948/