View source: R/probeInteraction.R
probe3WayMC | R Documentation |
Probing interaction for simple intercept and simple slope for the no-centered or mean-centered latent two-way interaction
probe3WayMC(fit, nameX, nameY, modVar, valProbe1, valProbe2, group = 1L,
omit.imps = c("no.conv", "no.se"))
fit |
A fitted lavaan::lavaan or lavaan.mi::lavaan.mi object with a latent 2-way interaction. |
nameX |
|
nameY |
The name of factor that is used as the dependent variable. |
modVar |
The name of two factors that are used as the moderators. The effect of the independent factor will be probed at each combination of the moderator variables' chosen values. |
valProbe1 |
The values of the first moderator that will be used to probe the effect of the independent factor. |
valProbe2 |
The values of the second moderator that will be used to probe the effect of the independent factor. |
group |
In multigroup models, the label of the group for which the
results will be returned. Must correspond to one of
|
omit.imps |
|
Before using this function, researchers need to make the products of the
indicators between the first-order factors using mean centering (Marsh, Wen,
& Hau, 2004). Note that the double-mean centering may not be appropriate for
probing interaction if researchers are interested in simple intercepts. The
mean or double-mean centering can be done by the indProd()
function. The indicator products can be made for all possible combination or
matched-pair approach (Marsh et al., 2004). Next, the hypothesized model
with the regression with latent interaction will be used to fit all original
indicators and the product terms. See the example for how to fit the product
term below. Once the lavaan result is obtained, this function will be used
to probe the interaction.
Let that the latent interaction model regressing the dependent variable
(Y
) on the independent variable (X
) and two moderators (Z
and W
) be
Y = b_0 + b_1X + b_2Z + b_3W + b_4XZ + b_5XW + b_6ZW
+ b_7XZW + r,
where b_0
is the estimated intercept or the expected
value of Y
when X
, Z
, and W
are 0, b_1
is the
effect of X
when Z
and W
are 0, b_2
is the effect of
Z
when X
and W
is 0, b_3
is the effect of W
when X
and Z
are 0, b_4
is the interaction effect between
X
and Z
when W
is 0, b_5
is the interaction effect
between X
and W
when Z
is 0, b_6
is the interaction
effect between Z
and W
when X
is 0, b_7
is the
three-way interaction effect between X
, Z
, and W
, and
r
is the residual term.
To probe a three-way interaction, the simple intercept of the independent variable at the specific values of the moderators (Aiken & West, 1991) can be obtained by
b_{0|X = 0, Z, W} = b_0 + b_2Z + b_3W + b_6ZW.
The simple slope of the independent variable at the specific values of the moderators can be obtained by
b_{X|Z, W} = b_1 + b_3Z + b_4W + b_7ZW.
The variance of the simple intercept formula is
Var\left(b_{0|X = 0, Z, W}\right) =
Var\left(b_0\right) + Z^2Var\left(b_2\right) + W^2Var\left(b_3\right) +
Z^2W^2Var\left(b_6\right)
+ 2ZCov\left(b_0, b_2\right) + 2WCov\left(b_0, b_3\right) +
2ZWCov\left(b_0, b_6\right) + 2ZWCov\left(b_2, b_3\right) +
2Z^2WCov\left(b_2, b_6\right) + 2ZW^2Cov\left(b_3, b_6\right),
where Var
denotes the variance of a parameter estimate and Cov
denotes the covariance of two parameter estimates.
The variance of the simple slope formula is
Var\left(b_{X|Z, W}\right) =
Var\left(b_1\right) + Z^2Var\left(b_4\right) + W^2Var\left(b_5\right)
+ Z^2W^2Var\left(b_7\right)
+ 2ZCov\left(b_1, b_4\right) + 2WCov\left(b_1, b_5\right) +
2ZWCov\left(b_1, b_7\right) + 2ZWCov\left(b_4, b_5\right) +
2Z^2WCov\left(b_4, b_7\right) + 2ZW^2Cov\left(b_5, b_7\right).
Wald z statistics are calculated (even for objects of class lavaan.mi::lavaan.mi) to test null hypotheses that simple intercepts or slopes are 0.
A list with two elements:
SimpleIntercept
: The model-implied intercepts given each
combination of moderator values.
SimpleSlope
: The model-implied slopes given each combination
of moderator values.
In each element, the first column represents values of the first moderator
specified in the valProbe1
argument. The second column represents
values of the second moderator specified in the valProbe2
argument.
The third column is the simple intercept or simple slope. The fourth column
is the standard error of the simple intercept or simple slope. The fifth
column is the Wald (z) statistic, and the sixth column is its
associated p value to test the null hypothesis that each simple
intercept or simple slope equals 0.
Sunthud Pornprasertmanit (psunthud@gmail.com)
Terrence D. Jorgensen (University of Amsterdam; TJorgensen314@gmail.com)
Tutorial:
Schoemann, A. M., & Jorgensen, T. D. (2021). Testing and interpreting
latent variable interactions using the semTools
package.
Psych, 3(3), 322–335. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.3390/psych3030024")}
Background literature:
Aiken, L. S., & West, S. G. (1991). Multiple regression: Testing and interpreting interactions. Newbury Park, CA: Sage.
Marsh, H. W., Wen, Z., & Hau, K. T. (2004). Structural equation models of latent interactions: Evaluation of alternative estimation strategies and indicator construction. Psychological Methods, 9(3), 275–300. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1037/1082-989X.9.3.275")}
indProd()
For creating the indicator products with no
centering, mean centering, double-mean centering, or residual centering.
probe2WayMC()
For probing the two-way latent interaction
when the results are obtained from mean-centering, or double-mean centering
probe2WayRC()
For probing the two-way latent interaction
when the results are obtained from residual-centering approach.
probe3WayRC()
For probing the two-way latent interaction
when the results are obtained from residual-centering approach.
plotProbe()
Plot the simple intercepts and slopes of the
latent interaction.
dat3wayMC <- indProd(dat3way, 1:3, 4:6, 7:9)
model3 <- " ## define latent variables
f1 =~ x1 + x2 + x3
f2 =~ x4 + x5 + x6
f3 =~ x7 + x8 + x9
## 2-way interactions
f12 =~ x1.x4 + x2.x5 + x3.x6
f13 =~ x1.x7 + x2.x8 + x3.x9
f23 =~ x4.x7 + x5.x8 + x6.x9
## 3-way interaction
f123 =~ x1.x4.x7 + x2.x5.x8 + x3.x6.x9
## outcome variable
f4 =~ x10 + x11 + x12
## latent regression model
f4 ~ b1*f1 + b2*f2 + b3*f3 + b12*f12 + b13*f13 + b23*f23 + b123*f123
## orthogonal terms among predictors
## (not necessary, but implied by double mean centering)
f1 ~~ 0*f12 + 0*f13 + 0*f123
f2 ~~ 0*f12 + 0*f23 + 0*f123
f3 ~~ 0*f13 + 0*f23 + 0*f123
f12 + f13 + f23 ~~ 0*f123
"
fitMC3way <- sem(model3, data = dat3wayMC, meanstructure = TRUE)
summary(fitMC3way)
probe3WayMC(fitMC3way, nameX = c("f1" ,"f2" ,"f3",
"f12","f13","f23", # this order matters!
"f123"), # 3-way interaction
nameY = "f4", modVar = c("f1", "f2"),
valProbe1 = c(-1, 0, 1), valProbe2 = c(-1, 0, 1))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.