首页 > 解决方案 > 使用 confint() 估计 GLMM 的 CI 时出错

问题描述

我有一组装有二进制响应变量和一组连续变量的 GLMM,我想获得每个模型的置信区间。我一直在使用confint()95% 的函数和该profile方法,如果将其应用于没有交互的模型,它可以正常工作。

但是,当我应用confint()到具有交互作用的模型(连续*连续)时,我收到了这个错误:

m1CI <- confint(m1, level=0.95, method="profile")

zeta(shiftpar, start = opt[seqpar1][-w]) 中的错误:分析检测到新的、较低的偏差

该模型运行没有任何问题(尽管我应用了优化器,因为某些模型存在收敛问题),这是其中一个模型的最终形式:

m1 <- glmer(Use~RSr2*W+RSr3*W+RShw*W+RScon*W+
 RSmix*W+(1|Pack/Year),
 control=glmerControl(optimizer="bobyqa", 
    optCtrl=list(maxfun=100000)), 
   data = data0516RS, family=binomial(link="logit"))

有谁知道为什么会这样,我该如何解决?

我正在使用 R 版本 3.4.3 和 lme4 1.1-17

标签: rglmlme4confidence-interval

解决方案


按照以下说明解决了该问题:

错误消息表明,在分析期间,优化器发现了一个拟合值,该拟合值明显优于最初返回的假定最小偏差解决方案(由“devtol”参数表征)。如果您想忽略这一点,您可以提高“devtol”参数(当前设置为保守的 1e-9 ...) - 但是,非单调配置文件也会警告您配置文件可能存在问题.

来自https://stat.ethz.ch/pipermail/r-sig-mixed-models/2014q3/022394.html

我使用了confint.merModlme4中的 'devtol' 参数,首先是 1e-8,这对我的模型不起作用,然后是 1e-7。有了这个值,它就起作用了


推荐阅读