How do I create an interaction term from a second-order latent variable for a moderation analysis in lavaan?

239 views
Skip to first unread message

Aziz-Kaan Dönmez

unread,
Jun 17, 2022, 6:21:53 AM6/17/22
to lavaan
Hello everyone,

I have previously followed the procedures outlined in Schoemann and Jorgensen (2021) and successfully ran a model where the moderator is a first-order latent variable. I successfully created an interaction term using the following code:

mod.dat.g <- indProd (dat.g,
                      var1 = c("PUB1", "PUB2", "PUB3", "PUB4", "PUB5"),
                      var2 = c("h1", "h2","h3", "h3", "h4", "h5",),
                      match = FALSE, meanC = FALSE,
                      residualC = FALSE, doubleMC = TRUE)

However, I am now trying to test whether my variable SS, which is a second-order latent variable consisting of 4 first-order latent variables(SSt, SSc, SSf & SSp), moderates the association between my predictor variable (PUB) and my outcome variable (SHV). But I cannot figure out how to create the interaction variable, so my question is:

How do I create an interaction variable using the indProd function from semTools when my moderator is a second-order latent variable?

Here is the lavaan syntax I would like to use to run my model:

#---------------------------------------------- Latent Variables -------------
PUB =~ PUB1 + PUB2 + PUB3 + PUB4 + PUB5 # predictor variable

SSt =~ SSt1 + SSt2 + SSt3 + SSt4 + SSt5
SSc =~ SSc1 + SSc2 + SSc3
SSf =~ SSf1 + SSf2 + SSf3
SSp =~SSp1 + SSp2 + SSp3
SS =~ SSt + SSc + SSf + SSp # moderator variable

SHV =~ SHV1 + SHV2 + SHV3 + SHV4 + SHV5 # outcome variable

#----------------------------------------------Paths -------------
SHV ~ PUB + SS + PUBxSS

Thanks in advance!

Aziz-Kaan Dönmez


Ref:

Schoemann, A. M., & Jorgensen, T. D. (2021). Testing and interpreting latent variable interactions using the semTools package. Psych3(3), 322-335.

Terrence Jorgensen

unread,
Jun 20, 2022, 6:03:33 AM6/20/22
to lavaan
How do I create an interaction variable using the indProd function from semTools when my moderator is a second-order latent variable?

This is not what the product-indicator method was designed to do.  The easiest thing to do would be to create subscale scores for each (latent) indicator of your higher-order factor, so that its indicators can be manifest instead of latent, so product-indicator methods become applicable.  This would consistent with facet parceling:


Terrence D. Jorgensen
Assistant Professor, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam

Reply all
Reply to author
Forward
0 new messages