我正在尝试使用 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)
有什么解决办法吗??
答案 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)
谢谢!