提问人:Alex22090 提问时间:11/3/2023 更新时间:11/3/2023 访问量:20
在 glmer 中添加权重后收敛失败
Convergence fails after adding weights in glmer
问:
不幸的是,没有一个可重现的例子:我有一个包含 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 模型的起始值。但我未能正确实现这一点。
感谢您的帮助!
答: 暂无答案
评论