使用估算数据集的 svydesign 出错

Error with svydesign using imputed data sets

我正在使用 svydesign 分析估算数据集,但出现错误。下面是代码:

library(mitools)

library(survey)

data(nhanes)

nhanes$hyp <- as.factor(nhanes$hyp)

imp <- mice(nhanes,method=c("polyreg","pmm","logreg","pmm"), seed = 23109)

des<-svydesign(id=~1, strat=~age, data=imputationList(imp))


Error in as.data.frame.default(data, optional = TRUE) : cannot coerce class ""call"" to a data.frame

我正在关注此页面中的教程: http://r-survey.r-forge.r-project.org/survey/svymi.html

我如何修改代码使其工作?

编辑:

我将 data=imputationList(imp) 更改为 data=complete(imp,1),我能够使代码正常工作。但是,这效率不高,因为我必须对所有估算集执行此操作。使用 imputationList 有什么问题吗?

mice() 生成结果,imputationList 需要所有五个 data.frame 的列表以及估算值,但您需要使用 mice::complete 来构造这五个已完成 data.frame 个对象

library(mitools)
library(survey)
library(mice)
data(nhanes)
nhanes$hyp <- as.factor(nhanes$hyp)
imp <- mice(nhanes,method=c("polyreg","pmm","logreg","pmm"), seed = 23109)
imp_list <- lapply( 1:5 , function( n ) complete( imp , action = n ) )
des<-svydesign(id=~1, strat=~age, data=imputationList(imp_list))