【发布时间】:2017-01-10 14:00:10
【问题描述】:
我正在使用geepack 包进行一些回归,并希望使用多重插补来处理缺失值。 mi 中的 pool() 命令不适用于我的 GEE,所以我必须导出(对吗?),以便我可以使用 geepack 中的数据。
complete() 函数会生成每次迭代,但不会生成合并的估计值。
有没有办法使用汇总估计生成数据框?
【问题讨论】:
标签: r missing-data r-mice
我正在使用geepack 包进行一些回归,并希望使用多重插补来处理缺失值。 mi 中的 pool() 命令不适用于我的 GEE,所以我必须导出(对吗?),以便我可以使用 geepack 中的数据。
complete() 函数会生成每次迭代,但不会生成合并的估计值。
有没有办法使用汇总估计生成数据框?
【问题讨论】:
标签: r missing-data r-mice
mi 包中的complete 函数生成m data.frames 的列表。您可以在该列表的每个元素上调用 gee 以获取 data 参数,然后使用鲁宾规则获得汇总估计。
【讨论】:
有几个 if 包在 R 中实现了 Rubin 的规则(例如,mi、mice、mitools 和 mitml)。问题是这些实现要求拟合统计模型的函数定义了coef()和vcov()的工作方法。
但是,geeglm() 函数没有定义 vcov(),标准实现将不起作用。要纠正这种情况,最简单的方法是为 GEE 定义缺失的方法。下面是使用mitml 包的示例和geepack 提供的示例数据集之一。
library(geepack)
library(mitml)
# example data
data(dietox)
# example imputation
fml <- Feed + Weight ~ 1 + Time + (1|Pig)
imp <- panImpute(data=dietox, formula=fml, n.burn=5000, n.iter=500)
implist <- mitmlComplete(imp, "all")
# fit GEE
fit <- with(implist, geeglm(Weight ~ 1 + Time + Feed, id=Pig))
# define missing vcov() function for geeglm-objects
vcov.geeglm <- function(x) summary(x)$cov.scaled
# combine estimates using Rubin's rules
testEstimates(fit)
【讨论】: