我正在尝试使用中介包在 R 中进行中介分析。我查看了有关如何执行此操作的文档,并通读了 R 提供的示例(即,我已经运行了“example(mediate)”)。尽管如此,我还是无法运行最简单的中介。理想情况下,我想做一个 bootstrap ,a la Preacher & Hayes (2004)。
这是我尝试运行的代码:
model.m <- lm(desirdata1$zpers1 ~ desirdata1$zdesir1 + desirdata1$age)
model.y <- lm(desirdata1$zpers1 ~ desirdata1$age)
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1",
boot=TRUE, sims=50)
请注意,该数据集名为
desirdata
,该处理称为age
,结果被称为 zpers1
调解器被称为“zdesir1”。当我运行它时,我收到以下错误:Error in `[.data.frame`(m.data, , treat) : undefined columns selected
它似乎声称一个变量(特别是治疗变量)不存在。但是,运行 names(desirdata) 表明变量在那里,并且命名正确,所有其他变量也是如此。前两个模型(model.m 和 model.y)运行良好,输出看起来应该如此。这只是我无法运行的中介模型。据我所知,我没有打错字,而且我已经检查了一百次。
想法?
最佳答案
当我阅读文档中的示例时,model.m
中介模型的结果与主要回归对象的结果不同 model.y
.由于您还没有描述背景和什么样的数据,因此很难确定这一点,但想知道您是否打算输入:
model.m <- lm(zdesir1 ~ age, data=desirdata1)
model.y <- lm(zpers1 ~ age, , data=desirdata1 )
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1",
boot=TRUE, sims=50)
我使用
formula
转换它和 data
对象,因为一些回归函数在给定向量时会崩溃。还可以更容易地查看错别字。
关于R中介分析——引导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485309/