我正在尝试使用 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)
有什么解决办法吗??
?lme
显示有一个 control
参数,它会将您重定向到 ?lmerControl
,从而为您提供
msMaxIter:优化步骤的最大迭代次数 在‘lme’优化中。默认值为“50”。
和
msMaxEval:目标函数的最大评估次数 允许 nlminb。默认值为“200”。
这些对应于
eval.max
中的 iter.max
和 ?nlminb
。由于我不确定其中哪一个是问题所在,因此我会使用 重新运行模型
control = lmeControl(msMaxIter = 1000, msMaxEval = 1000)
但是,我会警告您,一旦您遇到默认参数设置出现数值问题的问题,调整参数设置可能只会导致进一步的其他问题......
非常感谢您的帮助。你的代码有效。我只需要根据 lme 函数来证明你的代码是合理的。这是可用于上述错误的代码:
RandomRopeLength <- lme(EnergyCost~RopeLength,
data = data,
random=~RopeLength|Subject, method = "ML",
control =list(msMaxIter = 1000, msMaxEval = 1000))
summary(RandomRopeLength)