在 glmer 中添加权重后收敛失败

Convergence fails after adding weights in glmer

提问人:Alex22090 提问时间:11/3/2023 更新时间:11/3/2023 访问量:20

问:

不幸的是,没有一个可重现的例子:我有一个包含 480,000 个观测值的数据帧。由于数据的嵌套结构,我使用依赖于 lme4 包的分层模型。如果我运行线性模型,则没有错误。但是,由于我有一个二分因变量,所以我使用广义线性模型 (glmer)。这也很好用,除非我添加权重,这会导致以下警告消息:

警告消息:

1:在 eval(family$initialize, rho) 中: 二项式 GLM 中的非整数 #successes!

2:在(函数(fn,par,下限 = rep.int(-Inf,n),上限 = rep.int(Inf,: 未能收敛 10000 次评估

3:在 optwrap(optimizer, devfun, start, rho$lower, control = control, : Nelder_Mead 的收敛代码 4:在 10000 次评估中未能收敛

4:在 checkConv(attr(opt, “derivs”), opt$par, ctrl = control$checkConv, : 模型无法与 max|grad|= 0.0608441 (tol = 0.002, 分量 1)

这是设置:

f1 <- formula(dummy_dv ~ scale(log(count_iv+1)) + scale(sex) + scale(age) + year
          +(1 | country ))

model <- glmer(f1, data = dataset, family = binomial(link="logit"), weights = weight)

年份是一个因子变量。我还尝试调整优化器和迭代:

model <- glmer(f1, 
              data = dataset, 
              family = binomial(link="logit"), 
              weights = weight, 
              control = glmerControl(optimizer="bobyqa", optCtrl = list(maxfun = 20000)))

这会导致以下警告消息:

警告消息:

1:在 eval(family$initialize, rho) 中: 二项式 GLM 中的非整数 #successes!

2:在checkConv(attr(opt, “derivs”), opt$par, ctrl = control$checkConv中, : 模型无法与 max|grad|= 0.00660654 (tol = 0.002, 分量 1)

接下来我能做什么?有人告诉我,可以使用线性模型的结果作为 glmer 模型的起始值。但我未能正确实现这一点。

感谢您的帮助!

R GLM LME4 收敛

评论


答: 暂无答案