R语言 调查包svyglm函数出错

fcg9iug3  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(226)

我正在使用PIRLS 2016和PIRLS 2021数据进行一些研究工作。我需要用加权数据执行线性回归(我为代码中的非英语语言道歉)。为了正确计算我使用的加权数据:

imputetas.kopas.X <- lapply(1:5, 
  function(x, dati = X) {
    dati$PV <- unlist(X[, paste0("ASRREA0", x)])
  return(dati)
})

然后我创建了一个设计,

dizains.X.1 <- svrepdesign(repweights = "TOTWGT", 
                           type = "JK1",
                           scale = 1, 
                           combined.weights = TRUE, 
                           weights = P2016.1$X.TOTWGT, 
                           data = imputationList(imputetas.kopas.X))

survey_design_Regr_ASBGSCR1 <- svydesign(
  ids = 1:nrow(Regr.ASBGSCR1),
  weights = P2016.1$X.TOTWGT,
  data = Regr.ASBGSCR1
)

当尝试将所有内容合并合并并执行线性回归时:

modelis1 <- MIcombine(with(dizains.X.1, svyglm(formulla, design = survey_design_Regr_ASBGSCR1)))

这就是“formulla”变量:

formulla <- as.formula(paste("X.ASBGSCR ~ X.ASBGERL + X.ASBGSLR + X.ASBH03A + X.ASBG03 + X.ASBGHRL + X.ASBGSSB + X.ASBG06"))

所有这些变量都在设计变量中使用的相同数据框架下。我得到一个错误:

Error in UseMethod("svyglm", design) : 
  no applicable method for 'svyglm' applied to an object of class "svyimputationList"

我做错了什么?

ttcibm8c

ttcibm8c1#

您不应该在with()调用中指定design=with()调用的要点是,它依次将每个估算的数据集替换为您提供的表达式。例如,在with.svyimputationList的帮助页上,

designs<-svydesign(id=~id, strata=~sex, data=all)
results<-with(designs, svymean(~drkfre))
MIcombine(results)

没有为svymean指定design=参数

相关问题