nlminb 问题,收敛错误代码 = 1 消息 = 达到迭代限制而未收敛 (10)

时间:2021-06-24 20:01:11

标签: r mixed-models nlme

我正在尝试使用 R 中的 library(nlme)lme 函数找到最适合我的数据的模型。这是斜率固定时我的模型:

FixedRopeLength <- lme(EnergyCost~ RopeLength, 
  data = data, 
  random=~1|Subject, method = "ML")
summary(FixedRopeLength)

为了查看随机斜率是否提供比固定斜率更好的模型,我让斜率随主题变化如下:

RandomRopeLength <- lme(EnergyCost~RopeLength,
 data = data, 
 random=~RopeLength|Subject, method = "ML")
summary(RandomRopeLength)

但是,我收到此错误:

<块引用>

lme.formula 中的错误(EnergyCost ~ RopeLength, data = data, random = ~绳长| : nlminb 问题,收敛错误代码 = 1
消息 = 达到迭代限制但没有收敛(10)

有什么解决办法吗??

2 个答案:

答案 0 :(得分:0)

?lme 显示有一个 control 参数,它将您重定向到 ?lmerControl,从而为您提供

<块引用>

msMaxIter:优化步骤的最大迭代次数 在“lme”优化中。默认值为“50”。

<块引用>

msMaxEval:目标函数的最大评估次数 允许 nlminb。默认为“200”。

这些对应于 eval.max 中的 iter.max?nlminb。由于我不确定其中哪一个是问题,我会用

重新运行模型
control = lmeControl(msMaxIter = 1000, msMaxEval = 1000)

但是,我会警告您,一旦您遇到默认参数设置的数值问题,调整参数设置可能只会导致其他问题......

答案 1 :(得分:0)

非常感谢您的帮助。您的代码有效。我只需要根据 lme 函数来证明你的代码是合理的。这是可用于上述错误的代码:

RandomRopeLength<-lme(EnergyCost~RopeLength, data = data, random=~RopeLength|Subject, method = "ML", control =list(msMaxIter = 1000, msMaxEval = 1000)) 摘要(RandomRopeLength)

谢谢!