
The indProd
function will make products of indicators using no
centering, mean centering, double-mean centering, or residual centering. The
orthogonalize
function is the shortcut of the indProd
function
to make the residual-centered indicators products.
indProd(data, var1, var2, var3 = NULL, match = TRUE, meanC = TRUE,
residualC = FALSE, doubleMC = TRUE, namesProd = NULL)orthogonalize(data, var1, var2, var3 = NULL, match = TRUE, namesProd = NULL)
The desired data to be transformed.
Names or indices of the variables loaded on the first factor
Names or indices of the variables loaded on the second factor
Names or indices of the variables loaded on the third factor (for three-way interaction)
Specify TRUE
to use match-paired approach (Marsh, Wen, &
Hau, 2004). If FALSE
, the resulting products are all possible
products.
Specify TRUE
for mean centering the main effect
indicator before making the products
Specify TRUE
for residual centering the products by
the main effect indicators (Little, Bovaird, & Widaman, 2006).
Specify TRUE
for centering the resulting products
(Lin et. al., 2010)
The names of resulting products
The original data attached with the products.
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. 10.1037/1082-989X.9.3.275
Lin, G. C., Wen, Z., Marsh, H. W., & Lin, H. S. (2010). Structural equation models of latent interactions: Clarification of orthogonalizing and double-mean-centering strategies. Structural Equation Modeling, 17(3), 374--391. 10.1080/10705511.2010.488999
Little, T. D., Bovaird, J. A., & Widaman, K. F. (2006). On the merits of orthogonalizing powered and product terms: Implications for modeling interactions among latent variables. Structural Equation Modeling, 13(4), 497--519. 10.1207/s15328007sem1304_1
probe2WayMC
For probing the two-way
latent interaction when the results are obtained from mean-centering, or
double-mean centering.
probe3WayMC
For probing the
three-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.
# NOT RUN {
## Mean centering / two-way interaction / match-paired
dat <- indProd(attitude[ , -1], var1 = 1:3, var2 = 4:6)
## Residual centering / two-way interaction / match-paired
dat2 <- indProd(attitude[ , -1], var1 = 1:3, var2 = 4:6, match = FALSE,
meanC = FALSE, residualC = TRUE, doubleMC = FALSE)
## Double-mean centering / two-way interaction / match-paired
dat3 <- indProd(attitude[ , -1], var1 = 1:3, var2 = 4:6, match = FALSE,
meanC = TRUE, residualC = FALSE, doubleMC = TRUE)
## Mean centering / three-way interaction / match-paired
dat4 <- indProd(attitude[ , -1], var1 = 1:2, var2 = 3:4, var3 = 5:6)
## Residual centering / three-way interaction / match-paired
dat5 <- orthogonalize(attitude[ , -1], var1 = 1:2, var2 = 3:4, var3 = 5:6,
match = FALSE)
## Double-mean centering / three-way interaction / match-paired
dat6 <- indProd(attitude[ , -1], var1 = 1:2, var2 = 3:4, var3 = 5:6,
match = FALSE, meanC = TRUE, residualC = TRUE,
doubleMC = TRUE)
## To add product-indicators to multiple-imputed data sets
# }
# NOT RUN {
HSMiss <- HolzingerSwineford1939[ , c(paste0("x", 1:9), "ageyr","agemo")]
set.seed(12345)
HSMiss$x5 <- ifelse(HSMiss$x5 <= quantile(HSMiss$x5, .3), NA, HSMiss$x5)
age <- HSMiss$ageyr + HSMiss$agemo/12
HSMiss$x9 <- ifelse(age <= quantile(age, .3), NA, HSMiss$x9)
library(Amelia)
set.seed(12345)
HS.amelia <- amelia(HSMiss, m = 3, p2s = FALSE)
imps <- HS.amelia$imputations # extract a list of imputations
## apply indProd() to the list of data.frames
imps2 <- lapply(imps, indProd,
var1 = c("x1","x2","x3"), var2 = c("x4","x5","x6"))
## verify:
lapply(imps2, head)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab