使用 tobit 回归的中介分析无法找到结果变量

Mediation analysis with a tobit regression is failing to find the outcome variable

提问人:Henry Brice 提问时间:11/14/2023 最后编辑:ppperyHenry Brice 更新时间:11/20/2023 访问量:19

问:

此问题是从 Cross Validated 迁移而来的,因为它可以在 Stack Overflow 上得到解答。7 天前迁移

我正在尝试使用 R 中的包运行中介分析。我的结果变量需要用 tobit 模型(删失数据)进行建模。mediation

当我尝试运行它时,它声称找不到结果变量,尽管它位于数据帧中。 请参阅可重现示例:

library(mediation)
test <- data.frame(mediator = c(0.333,0.201,0.343,0.133,0.240),
                   DV = c(0.152,2.318,0.899,0.327,1.117),
                   outcome=c(1.715,1.716,0.544,3.284,3.599))
mediator_model <- lm(mediator ~ DV, data = test)
outcome_model <- vglm(outcome ~ mediator + DV,
                      tobit(Upper = 4, Lower = -4), link = "identity",data = test)

med <- mediate(mediator_model, outcome_model, treat = "DV", mediator = "mediator")

当我运行这个时,我收到错误, 即使结果模型运行没有问题。Error in eval(predvars, data, env) : object 'outcome' not found

R 回归

评论


答:

2赞 刘紫川 12/2/2023 #1

我想问题出在:mediation::mediate

中介/结果的拟合模型对象。可以是类 'lm'、'polr'、'bayespolr'、'glm'、'bayesglm'、'gam'、'rq'、'survreg' 或 'merMod'。

尝试为您的outcome_model,而不是 .希望能奏效。AER::tobitvglmmediate

评论

0赞 Henry Brice 12/12/2023
这确实奏效了,谢谢。如果其他人遇到这种情况,我确实需要稍微改变一下语法,这就是适用于我上面的模型的方法(请注意,需要以列表形式接收数据):AER::tobitAER::tobit(outcome ~ mediator + DV, left = -4, right = 4, data = as.list(test))