You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MICE插补的mids类数据运行glmer报错无法转换为data.frame求助

报错触发原因
  • 你代码中传入glmer的Data是mice插补完成后生成的mids类对象,不是普通数据框格式,glmer无法直接识别该类对象作为输入数据源
  • 你对mice包的with()方法调用格式错误,with()需要接收mids类对象作为第一个参数,再传入建模代码,你当前的写法相当于直接把mids类对象传给了glmer的data参数,触发了类型强制转换报错
解决步骤

1. 修正建模调用语法

调整代码结构,遍历所有插补数据集分别拟合混合效应log-binomial模型:

# 提前加载依赖包
library(mice)
library(lme4)

# 对每个插补后的数据集分别拟合模型
fit_list <- with(Data, 
                 glmer(Outcome ~ Intervention + (1 | Cluster), 
                       family = binomial(link = "log"))
)

返回的fit_list是mira类对象,存储了所有插补数据集对应的模型拟合结果。

2. 合并多插补的模型结果

使用mice包内置的pool()方法,基于Rubin法则合并多个模型的估计结果,得到最终的整体效应值:

# 合并所有插补数据集的模型结果
pooled_fit <- pool(fit_list)

# 查看合并后的回归系数、标准误、显著性等统计量
summary(pooled_fit)

# 提取干预项的相对风险RR及95%置信区间
rr <- exp(coef(pooled_fit)["Intervention", "estimate"])
rr_ci <- exp(confint(pooled_fit))["Intervention", ]

可选:处理log-binomial模型收敛问题

如果运行中遇到log-binomial模型收敛失败、预测概率超出[0,1]区间的报错,可以改用混合效应泊松回归加稳健方差估计的方案,得到的RR估计值和log-binomial模型一致,调整后的建模代码如下:

fit_list <- with(Data, 
                 glmer(Outcome ~ Intervention + (1 | Cluster), 
                       family = poisson(link = "log"))
)

内容的提问来源于stack exchange,提问作者WielsN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:12:03