问题:

我有一个数据集,缺少一些预测值。我想将应用于这些插补集的glmer模型集中在一起。我正在使用mice包创建插补(我也曾使用ameliami,但均未成功)。我想主要提取固定效果。

在mice软件包中使用pool()函数将返回错误:

Error in qhat[i, ] : incorrect number of dimensions


我尝试在此处使用和改编pool()函数的先前重写:

https://github.com/stefvanbuuren/mice/pull/5

我可能忽略了一个显而易见的解决方案!

这是一个例子:

# 1. create data (that can be replicated and converge later)

data = data.frame(x1=c(rep("1",0.1*1000), rep("0",0.5*1000),
                       rep("1",0.3*1000), rep("0",0.1*1000)),
                  x2=c(rep("fact1",0.55*1000), rep("fact2",0.1*1000),
                       rep(NA,0.05*1000), rep("fact3",0.3*1000)),
                  centre=c(rep("city1",0.1*1000), rep("city2",0.2*1000),
                           rep("city3",0.15*1000), rep("city1",0.25*1000),
                           rep("city2",0.3*1000)                          ))

# 2. set factors
data = sapply(data, as.factor)

# 3. mice imputation
library(mice)
imp.data = mice(data, m=5, maxit=20, seed=1234, pri=F)

# 4. apply the glmer function
library(lme4)
mice.fit = with(imp.data, glmer(x1~x2+(1|centre), family='binomial'))

# 5. pool imputations together
pooled.mi = pool(mice.fit)


我在第4步中应用的另一个功能如下,希望它可以创建一个适合pool()的对象。

mice.fit = lapply(imp.data$imp, function(d){ glmer(x1~x2+(1|centre), data=d,
                                                   family='binomial')        })


我有一个解决方法,涉及使用荟萃分析模型来汇总glmer模型的每个固定效果的结果。那行得通,但是最好是让Rubin模型工作。

最佳答案

在制作自己的mice分支,将上面引用的扩展版本放入其中并清理了一点之后,这对我来说才有效:

devtools::install_github("bbolker/mice")


并查看之后的流程。 (如果有效,则应提交提醒/新的拉取请求...)

08-24 23:34