假设我有一个数据集df,其中包含2个媒体变量Fb和TV以及Sales作为因变量的数据。现在,为了研究Facebook对电视销售的间接影响,使用以下R代码作为中介变量。
specmod <-“
路径c(直接效果)
销售~ c*Facebook
路径a
TV ~ a*Facebook
路径B
销售~ B* 电视
间接影响(a*B)
ab:= a*b
“
设置.种子(1214)
fitmod <- sem(specmod,data = df,se =“bootstrap”,bootstrap = 100)
parameterEstimates(fitmod,ci = TRUE,level = 0.95, Boot .ci.type =“perc”)
但如果我有9个媒体变量,并希望检查所有变量的中介效应,那么我应该如何进行?每次模型迭代的预测变量和中介变量将是介质变量的不同组合。我如何用不同的模型迭代来自动化上面的代码。
1条答案
按热度按时间ecbunoof1#
这不是一个优雅的解决方案,但在编程方面很简单:
首先,形成x变量和m变量的向量。其次,使用
paste()
创建模型语法字符串的向量。对cat()
的调用是可选的,用于验证生成的模型语法字符串。第三,简单地使用lapply()
来拟合每个生成的模型。如果需要bootstrap CI,则需要设置iseed
,以确保在所有模型中使用相同的bootstrap样本集。lavaan
有semList()
用于将模型拟合到数据集列表。但是,我不知道有类似的函数可以将一系列模型拟合到同一个数据集。如果是,则可以使用该函数代替lapply()
。