在多次估算的数据集上汇集三明治方差估计

时间:2017-07-25 12:22:02

标签: r r-mice

我正在对多重插补数据进行泊松回归,以预测常见的二元结果。运行mice后,我获得了一个堆叠数据框,其中包含原始数据和五个插补数据集。这是一个玩具示例:

df <- mice::nhanes
imp <- mice(df) #impute data
com <- complete(imp, "long", TRUE) #creates data frame

我现在想:

  1. 对每个插补数据集运行回归
  2. 使用夹心方差估算器计算稳健的标准误差
  3. 合并/汇总两者分析
  4. 的结果

    我可以使用midswith命令在pool对象上运行回归:

    fit.pois.mids <- with(imp, glm(hyp ~ age + bmi + chl, family = poisson))
    summary(pool(fit.pois.mids))
    

    我还可以在组合它们之前对每个插补数据集运行回归:

    imp.df <- split(com, com$.imp); names(imp.df) <- c("raw", "imp1", "imp2", "imp3", "imp4", "imp5") #creates list of data frames representing each imputed dataset
    
    fit.pois <- lapply(imp.df, function(x) {
      fit <- glm(hyp ~ age + bmi + chl, data = x, family = poisson)
      fit
    })
    
    summary(MIcombine(fit.pois))
    

    同样,我可以计算每个插补数据集的标准误差:

    sand <- lapply(fit.pois, function(x) {
      se <- coeftest(x, vcov = sandwich)
      se
    })
    

    不幸的是,MIcombine似乎没有返回p值。这个post建议使用Zelig,但就此而言,我也可以使用mice。此外,似乎无法合并标准误差的估计值:

    summary(MIcombine(sand.df))
    Error in UseMethod("vcov") : 
      no applicable method for 'vcov' applied to an object of class "coeftest"
    

    为简单起见,似乎mice是汇总回归结果的更好选择;但是,我想知道如何更新(即汇集和组合)标准错误。有什么方法可以解决这个问题?

0 个答案:

没有答案