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

问题描述 投票:0回答:2

我正在尝试使用 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)

有什么解决办法吗??

r mixed-models nlme
2个回答
4
投票

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

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

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

这些对应于

eval.max
中的
iter.max
?nlminb
。由于我不确定其中哪一个是问题所在,因此我会使用

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

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


2
投票

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

RandomRopeLength <- lme(EnergyCost~RopeLength, 
   data = data, 
   random=~RopeLength|Subject, method = "ML", 
    control =list(msMaxIter = 1000, msMaxEval = 1000))
summary(RandomRopeLength)
© www.soinside.com 2019 - 2024. All rights reserved.