r - 使用 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
解决方案
按照以下说明解决了该问题:
错误消息表明,在分析期间,优化器发现了一个拟合值,该拟合值明显优于最初返回的假定最小偏差解决方案(由“devtol”参数表征)。如果您想忽略这一点,您可以提高“devtol”参数(当前设置为保守的 1e-9 ...) - 但是,非单调配置文件也会警告您配置文件可能存在问题.
来自https://stat.ethz.ch/pipermail/r-sig-mixed-models/2014q3/022394.html
我使用了confint.merMod
包lme4
中的 'devtol' 参数,首先是 1e-8,这对我的模型不起作用,然后是 1e-7。有了这个值,它就起作用了
推荐阅读
- pandas - pandas.DataFrame.merge with None (NaN)
- c++ - 条件循环:变量与函数?
- android - 将数据传输到 BLE 设备时在 Android 中显示进度
- python - 针对现有数据集删除一个新行
- php - 将数据传递给模态代码点火器框架
- android - 如何使用 espresso 来测试矢量绘图
- python - 我的打印语句只会打印 10 的倍数,而不是介于两者之间
- vba - 如何将彩色文本更改为冒号,然后将冒号后的文本更改为不同的颜色
- php - 通过 Codeigniter Ajax 在视图中显示数据时未定义的变量
- python - 如何为烧瓶应用程序构建更新程序?