我使用nlme运行以下模型:
library(nlme)
fm4Oats <- lme( yield ~ nitro, data = Oats, random = ~ 1 | Block/Variety )
fm4Oats2 <- lme( yield ~ nitro, data = Oats, random = ~ nitro | Block/Variety )
fm4Oats3 <- lme( yield ~ nitro, data = Oats, random = ~ nitro | Block )
fm4Oats4 <- lme( yield ~ nitro, data = Oats, random = ~ nitro | Variety )除了fm4Oats之外,所有其他3种模型都返回相同的错误消息:
nlminb problem, convergence error code = 1
message = iteration limit reached without convergence (10)我按照post添加了control参数:
fm4Oats5 <- lme(yield ~ nitro, data = Oats, random = ~ nitro | Variety,
control = list(msMaxIter = 1000, msMaxEval = 1000))这导致了另一条错误消息:
Error in lme.formula(yield ~ nitro, data = Oats, random = ~nitro | Variety, :
nlminb problem, convergence error code = 1
message = singular convergence (7)我感兴趣的是,为什么我会遇到一个趋同的问题,以及可能的解决办法。
发布于 2022-09-13 07:47:23
对于lmer模型的输出,我并不完全感到惊讶。看起来,这些模型可以估计的方差数量是相当小的。第三种模式是第一种出现趋同问题的模型,我创建了这个模型来查看发生了什么:
ggplot(Oats,
aes(x=nitro,
y=yield))+
geom_point()+
geom_smooth()+
facet_grid(Block~Variety)

你可以在这里看到,斜坡,数据点和斜坡之间的变化都很小。另一个问题是水平的数量。如果您只有3个级别的Variety,那么它不太可能接近一个好的模型。
https://stackoverflow.com/questions/73498176
复制相似问题