首页 > 解决方案 > 来自 glmer 对象的预测概率的置信区间,bootMer 错误

问题描述

我需要从逻辑混合效应模型中计算 95% 的置信区间或预测概率,该模型是使用 lme4 R 包中的 glmer 函数创建的。该模型包括一个稳定的概率加权,以纠正分析数据上的选择偏差。

我读过 bootMer 函数(lme4 包)执行基于模型的半参数引导,这使得 CI 成为分布的分位数(分位数方法)。

然而,当我应用函数 bootMer 时,会产生以下错误:

“sfun 中的错误(对象,nsim = 1,ftd = rep_len(musim,n * nsim),wts = weights):无法从非整数prior.weights 模拟”

我必须使用非整数权重,所以我的问题是¿如何使用 bootMer 函数解决这个问题?或者,如果不可能,¿ 有任何替代方案吗?

#The model
M1s = glmer(plab ~ 1 + edad2_c + I(edad2_c^2) + periodo_c + cohorte + nocu_c + tipoocu2 + sector + educ + benef + genero + ecivil + area + generojh + edadjh2_c + nhogar_c + nhogar05_c + nhogar0614_c + nhogar66_c + (1 | periodo_c), weights = ipw, 
 data = seriecasen,family = binomial(link=logit),nAGQ = 10,glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5)))

#Model-based semi-parametric bootstrap for mixed models - CI's predicted probabilites
merBoot <- bootMer(M1s, predict, nsim = 1000, use.u = TRUE, type = c("parametric"), seed = 1959)
CI.lower = apply(merBoot$t, 2, function(x) as.numeric(quantile(x, probs=.025, na.rm=TRUE)))
CI.upper = apply(merBoot$t, 2, function(x) as.numeric(quantile(x, probs=.975, na.rm=TRUE)))

sfun(object,nsim = 1,ftd = rep_len(musim,n * nsim),wts = weights)中的错误:无法从非整数prior.weights模拟

标签: rlme4mixed-modelsconfidence-interval

解决方案


另一种方法是包中的std_beta()功能sjstats。没有您的数据很难在您的模型上进行测试,但我已经在自己的逻辑回归中执行了此功能,它似乎提供了您的标准化 beta 以及置信区间。以下代码应该可以工作:

sjstats::std_beta(M1s)

这是函数的链接:std_beta


推荐阅读