如何解决nlminb 问题,收敛错误代码 = 1 消息 = 达到迭代限制而未收敛 (10)
我正在尝试使用 R 中的 library(nlme)
和 lme
函数找到最适合我的数据的模型。这是斜率固定时我的模型:
FixedRopeLength <- lme(EnergyCost~ RopeLength,data = data,random=~1|Subject,method = "ML")
summary(FixedRopeLength)
为了查看随机斜率是否提供比固定斜率更好的模型,我让斜率随主题变化如下:
RandomRopeLength <- lme(EnergyCost~RopeLength,random=~RopeLength|Subject,method = "ML")
summary(RandomRopeLength)
但是,我收到此错误:
lme.formula 中的错误(EnergyCost ~ RopeLength,random =
~绳长| : nlminb 问题,收敛错误代码 = 1
消息 = 达到迭代限制但没有收敛(10)
有什么解决办法吗??
解决方法
?lme
显示有一个 control
参数,它将您重定向到 ?lmerControl
,从而为您提供
msMaxIter:优化步骤的最大迭代次数 在“lme”优化中。默认值为“50”。
和
msMaxEval:目标函数的最大评估次数 允许 nlminb。默认为“200”。
这些对应于 eval.max
中的 iter.max
和 ?nlminb
。由于我不确定其中哪一个是问题,我会用
control = lmeControl(msMaxIter = 1000,msMaxEval = 1000)
但是,我会警告您,一旦您遇到默认参数设置的数值问题,调整参数设置可能只会导致其他问题......
,非常感谢您的帮助。您的代码有效。我只需要根据 lme 函数来证明你的代码是合理的。这是可用于上述错误的代码:
RandomRopeLength
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。