我已经使用lme4 Packack在R中运行了混合效果模型,其中伯努利分布因变量(Correct_or_incorrect)取决于因素 condition , sound , syll 和一些互动。随机效应结构包括条件和声音的对象随机倾斜度。代码如下:
model=glmer(Correct_or_incorrect ~ (sound|SUBJECT) + (condition|SUBJECT) + condition + sound + syll + condition:syll + syll:sound + condition:sound, dataMelt, control=glmerControl(optimizer="nlminbwrap"), family = binomial)
通过使用优化器nlminbwrap
,我能够在模型开发期间避免收敛警告,并且对最终模型感到非常满意。然后,我使用relevel()
来更改某些因素的参考水平并重新运行模型(以更仔细地查看lmerTest提供的一些p值以获得某些效果)。我总共运行了16次模型(重新平衡15次),而这16次中有2次,我收到以下警告消息:
In optwrap(optimizer, devfun, start, rho$lower, control = control, :
convergence code 1 from nlminbwrap
但是,当我随后打印模型摘要时,它说:
convergence code: 0
boundary (singular) fit: see ?isSingular
我知道“边界(奇异)拟合”部分的含义(每次运行模型时都会出现,并且我知道它与数据的某些方面有关),但是对于收敛代码,我是现在很困惑。为什么在摘要中显示“收敛代码:0”时,为什么会收到上述警告?看到它只出现16次中的2次,这是否值得担心?
[PS:我也在模型上运行了lme4::allFit()
,也没有针对nlminbwrap
的收敛警告:]
modelfit_new=lme4::allFit(model)
ss=summary(modelfit_new)
ss$msgs
$bobyqa
[1] "boundary (singular) fit: see ?isSingular"
$Nelder_Mead
[1] "Model failed to converge with max|grad| = 1.07984 (tol = 0.002, component 1)"
$nlminbwrap
[1] "boundary (singular) fit: see ?isSingular"
$`optimx.L-BFGS-B`
[1] "boundary (singular) fit: see ?isSingular"
$nloptwrap.NLOPT_LN_NELDERMEAD
[1] "boundary (singular) fit: see ?isSingular"
$nloptwrap.NLOPT_LN_BOBYQA
[1] "boundary (singular) fit: see ?isSingular"