0

我正在使用 R 分析来自青年风险行为调查的复杂调查数据。

我使用包“mice”创建了多个插补来解决丢失的数据,并在“mitools”中创建了一个 imputationList。有了这些数据,我正在重新加权的调查设计中运行序数回归模型(使用'svyVGAM'),使用“调查”中的 with.imputationList 函数。我已经将我的第一个模型的插补组合成一个单一的数据集,并在“mitools”中使用 MIcombine。

现在我需要创建边际效应图,跟踪响应变量中不同多项选择选项的回归系数的变化。(预测变量是管理年份;想法是观察这些系数的变化——选择每个答案选项的边际概率——从一个调查管理到下一个调查管理,在几个不同的调查中。)

我一直在使用“ggeffects”,它通过重复运行回归计算估算数据集中的边际效应,然后汇集结果(尽管如上所述,我已经运行并将这些与“调查”和“mitools”结合起来。 'ggeffects' 似乎无法利用这些结果)。这是生成对象“预测”的代码,其中包含五组回归参数,这些参数将被另一个函数 (pool_predictions(predictions)) 合并:

 predictions <- lapply(1:5, function(i) {
   m <- svy_vglm (
       tvt_asd~1+year,
       cumulative(link="probitlink",parallel=TRUE),
       yrbs_svyimputationList$designs[[i]] 
    )
    ggpredict(m,"tvt_asd","year")})

仅供参考,yrbs_svyimputationList 是由survey:svydesign() 生成的对象,它包含我运行的5 个插补中的每一个的survey.design 对象。这些应该连续提供 svy_vglm 中的“设计”参数。另外,关于 svy_vglm 家族论点,这似乎是造成麻烦的原因。svy_VGAM 文档指向家庭的 VGAM:vglm 文档。在那里,我发现了一个累积模型的结构如下

cumulative(link="logitlink",parallel=FALSE...)

(我使用的是概率,而不是 logit,并且我省略了我不需要的参数。)但是当我尝试运行它时,我得到了一系列错误。先来

 Error in cumulative(link = "probitlink", parallel = FALSE) : 
  unused argument (parallel = FALSE)

所以我取出了并行参数(即使我以后想用它来区分 5 个可能的序数响应),我得到了这个错误:

 Error: 'probitlink' is not a supported link for family 'cumulative'.
Supported links are: 'logit', 'probit', 'probit_approx', 'cloglog', 'cauchit' 

这很奇怪,因为 VGAM 文档指定了“probitlink”。所以我把它改成“probit”,我得到了一个非常糟糕的错误:

Error in vglm(formula, family, data = surveydata, weights = .survey.prob.weights,  : 
  'family = cumulativeprobitfunction (mu) 
link(mu, link = slink)function (eta) 
ilink(eta, link = slink)c("mu", "disc")intc(-Inf, Inf)c(NA, NA)c("weights", "subset", "thres", "cat")c("ordinal", "ordered_thres", "thres_minus_eta")logflexible' is not a VGAM family function 

当我从VGAM系列功能列表中复制它时,它怎么可能不是“VGAM系列功能”?

我希望有人能直截了当地说:我如何检索汇总、重新加权的复杂调查数据的边际效应?

谢谢!

4

0 回答 0