【问题标题】:Pooling glmers of imputed datasets汇集估算数据集的 glmers
【发布时间】:2015-10-04 22:06:31
【问题描述】:

问题:

我有一个数据集,其中缺少一些预测值。我想将已应用于这些插补集的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 模型工作会更好。

【问题讨论】:

    标签: r lme4 r-mice


    【解决方案1】:

    在创建我自己的mice 的分支后,这对我有用,将您上面引用的扩展版本拉入其中,并稍微清理一下:尝试

    devtools::install_github("bbolker/mice")
    

    然后看看你的过程是如何进行的。 (如果可行,应该有人提交提醒/新的拉取请求......)

    【讨论】:

    • 亲爱的 Ben,很遗憾,当我尝试上面的命令时(R 版本 3.3.0、mice_2.30、lme4_1.1-12),我收到以下错误消息“错误:找不到构建工具建造老鼠所必需的”。最好的问候
    • 你需要安装 Rtools。
    • 感谢您的快速回答,但我使用的是 mac(mac os 10.11.6)。据我所知,没有适用于 macintosh 的 Rtools。
    • "Rtools for MacOS" = "XCode"(参见 rstudio.com/products/rpackages/devtools 并搜索 XCode)
    【解决方案2】:

    “glmerMod”和“lmerMod”类的对象有区别吗?我对那个包 lme4 不熟悉。但是如果没有区别,您可以将mice.fit分析的类更改为“lmerMod”,然后它应该可以正常运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 2022-08-09
      • 2018-03-05
      • 2018-09-06
      • 2021-09-26
      相关资源
      最近更新 更多