[英]How to avoid/work around “Downdated VtV is not positive definite” error when using lme4::lmer() with purrr::map() or for loop?
[英]Error message: Error in fn(x, …) : Downdated VtV is not positive definite
提前感謝任何看過這個的人。 我曾經在檔案館看過這個問題,但我對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)
我究竟做錯了什么? 這種三向互動真的很重要還是我犯了一些錯誤?
謝謝
如果Mated
是二進制的,那么你可能應該使用帶有logit或probit鏈接函數的glmer
,例如:
model <- glmer(Mated ~ Size * Status * Attempts + (1|FemaleID),
data = mydata, family = binomial)
如果您可以告訴我們您的數據是什么樣的( head(mydata)
可能沒問題,或者請參閱此處了解如何制作可重現的示例),這將有所幫助。
此外,我會避免使Mated
合乎邏輯(請參閱此問題和答案 ,了解它如何讓您的生活變得更加困難)。 相反, as.factor(Mated)
將明確地使您的響應變量離散。
之后,您可以使用anova()
比較完整模型和簡化模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.