R Lavaan 编码潜在变量相互作用

标签 r r-lavaan

任何人都可以告诉我如何在结构方程模型的 lavaan 包的模型语句中编写潜在变量交互吗?

假设我有潜在变量L1和一些观察到的变量F1,并且想编码它们对某些结果Y的相互作用影响:

L1 =~ x1 + x2

Y ~ L1 * F1 

这不起作用。

提前致谢!

最佳答案

感谢重要的commentJohn Madden我将区分适度(您可能正在寻找的东西)和调解。

调节(变量值的交互)

对您问题的快速回答是:据我所知,没有 lavaan 集成的可能性来进行两个潜在变量的交互,但这是我的解决方法:

  1. 定义潜在变量 (CFA)
  2. 提取预测值,将其添加到数据框中并定义交互变量
  3. 进行您想要的回归(使用我们的而不使用潜在变量本身)

这里有一些解决方法的玩具代码 - 审核对这些数据没有任何意义(mtcars 位于 R 库中),并且会给您一个警告,但是该数据的结构工作流程应该清晰。

library(lavaan)

# 1. set up your measurement models
cfamodel <- "
    #defining the latent variables
    L1 =~ drat + wt
    L2 =~ disp + hp
"
fitcfa <- cfa(data = mtcars, model = cfamodel)

# 2. extract the predicted values of the cfa and add them to the dataframe
semdata <- data.frame(mtcars, predict(fitcfa))

# create a new variable with the interaction of L1 and L2
semdata <- semdata %>%
              mutate(L1L2 = L1 * L2)

# 3. now set up the regression and add the predefined interaction to the model
# a) regression with both latent variables and the interaction
semmodel1 <- "
    # define regression
    mpg ~ L1 + L2 + L1L2
"
fitsem1 <- sem(data = semdata, model = semmodel1)
summary(fitsem1)

# b) regression with only the interaction (does that even make sense? I don't know...)
semmodel2 <- "
    # define regression
    mpg ~ L1L2
"
fitsem2 <- sem(data = semdata, model = semmodel2)
summary(fitsem2)

中介(权重相互作用)

对于中介,您需要定义一个新参数作为感兴趣的两个回归权重的乘积。在您的示例中,L1 作为潜在变量,F1 作为观察变量,Y 作为因变量,即:

# define Regressions (direct effect)
Y ~ lambda1*X
Y ~ lambda2*M

# define Regressions (effect on mediator)
M ~ X

# define Interaction
interac := lambda1*lambda2

fit <- sem(model, data = Data)
summary(fit)

lavaan 然后会给你一个交互的估计。

:= 运算符“定义新参数,其值是原始模型参数的任意函数。” 示例取自:http://lavaan.ugent.be/tutorial/mediation.html

关于R Lavaan 编码潜在变量相互作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24399353/

相关文章:

根据列名称的条件重命名列

python - Jupyter 笔记本 rpy2 Rmagics : How to set the default plot size?

r - 使用已知组时如何从 lavaan 中提取 "chi square for each group:"值

r - 估计 SEM 模型 (lavaan) 的方差膨胀因子 (VIF)

r - 在 Lavaan 中将协方差设置为零

r - 拉万 : how to specify interaction terms in SEM

r - 创建不同大小和长度的 lavaan 和 irt 模型排列

通过 mutate_at 中的名称片段引用其他列

r - ggplot2、geom_bar、闪避、条形顺序

r - 您可以使用 pivot_wider 创建多组交替的新列吗?