我正在使用 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系列功能”?
我希望有人能直截了当地说:我如何检索汇总、重新加权的复杂调查数据的边际效应?
谢谢!