LME() 错误 - 达到迭代限制

机器算法验证 混合模式 lme4-nlme
2022-02-04 08:36:03

在指定交叉混合效应模型时,我试图包括交互。但是,我收到以下错误消息:

Error in lme.formula(rate ~ nozzle, random = ~nozzle | operator, data = Flow) : 
nlminb problem, convergence error code = 1
message = iteration limit reached without convergence (10)

该模型具有以下内容: 1. 3 种喷嘴类型(固定效应) 2. 5 名操作员,每个操作员对 3 种喷嘴类型的燃料流量进行 3 次重复测量。

我被要求在模型中包含喷嘴类型和操作员之间的交互。这是我的模型代码:

flow.lme <- lme(rate ~ nozzle, error= nozzle|operator, data=Flow)

为什么我会收到此错误消息?

2个回答

我没有听说过这个error论点,lme也没有在文档中看到它。你确定这不是笔误?但是,要回答您提出的问题:

尝试?lmeControl

maxItermsMaxIterniterEM和/或msMaxEval参数设置为比默认值更高的值可能会解决此问题。将输出捕获lmeControl到一个对象,然后将该对象传递controllme.

或者...

新的默认优化器lme使用的是不稳定的。当我将它改回旧的优化器时,有一半的时间为我解决了这些问题。您可以通过设置 to 的参数来做到opt一点lmeControl'optim'

所以,把它放在一起:

ctrl <- lmeControl(opt='optim');
flow.lme <- lme(rate ~ nozzle, error= nozzle|operator, control=ctrl, data=Flow);

首先,这是一个 ANOVA 模型,而不是混合模型。

其次,在我看来,您的模型没有被识别。在方程形式中,你有

responseij=β1nozzle type1ij+β2nozzle type2ij+β3nozzle type3ij+operatori+nozzle within operatorij
其中喷嘴类型是固定效应(虚拟变量),算子是随机效应,算子内的喷嘴也是随机效应。

最后一项对于您拥有的 15 个观察值有 15 个单独的值。没有自由度可以在模型中获得任何其他项。包括互动是一个糟糕的建议。你必须放弃它们;即使将它们作为交叉效应包括在内也无济于事,因为它们将与固定效应完全共线,并且不可估计。具有 15 个观测值的最大似然或 REML 模型没有意义;最大似然理论的渐近结果根本行不通:这是一辆你试图在犁过的土地上驾驶的法拉利。