汇集推算数据集的模糊

时间:2015-10-04 22:06:32

标签: r lme4

问题:

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

使用鼠标包中的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模型的每个固定效果的结果。这是有效的 - 但是让鲁宾模型运作会好得多。

2 个答案:

答案 0 :(得分:3)

在我自己创建mice的分支之后,将这个Just Works用于我,将上面引用的扩展版本拉入其中,然后稍微清理一下:尝试

devtools::install_github("bbolker/mice")

然后看看你的流程如何发展。 (如果有效,有人应提交提醒/新拉请求......)

答案 1 :(得分:0)

课程对象" glmerMod&#34>之间是否存在差异?和" lmerMod"?我不熟悉那个包lme4。但是如果没有区别,你可以改变老鼠的类。适应分析到" lmerMod"它应该运行良好。