从“mi”包中导出合并的 GEE 估计值
Exporting pooled GEE estimates from the `mi` package
我正在使用 geepack
包进行一些回归,并希望使用多重插补来处理缺失值。 mi
中的 pool()
命令对我的 GEE 不起作用,所以我必须导出(是吗?)以便我可以使用 geepack
中的数据。
complete()
函数生成每次迭代,但不生成合并估计。
有没有一种方法可以生成包含合并估计值的数据框?
mi 包中的 complete
函数生成 m
data.frames 的列表。您可以为 data
参数对该列表的每个元素调用 gee
,然后使用 Rubin 的规则来获得汇总估计。
有几个 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)
我正在使用 geepack
包进行一些回归,并希望使用多重插补来处理缺失值。 mi
中的 pool()
命令对我的 GEE 不起作用,所以我必须导出(是吗?)以便我可以使用 geepack
中的数据。
complete()
函数生成每次迭代,但不生成合并估计。
有没有一种方法可以生成包含合并估计值的数据框?
mi 包中的 complete
函数生成 m
data.frames 的列表。您可以为 data
参数对该列表的每个元素调用 gee
,然后使用 Rubin 的规则来获得汇总估计。
有几个 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)