indProd {semTools} | R Documentation |
Make products of indicators using no centering, mean centering, double-mean centering, or residual centering
Description
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.
Usage
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)
Arguments
data |
The desired data to be transformed. |
var1 |
Names or indices of the variables loaded on the first factor |
var2 |
Names or indices of the variables loaded on the second factor |
var3 |
Names or indices of the variables loaded on the third factor (for three-way interaction) |
match |
Specify |
meanC |
Specify |
residualC |
Specify |
doubleMC |
Specify |
namesProd |
The names of resulting products |
Value
The original data attached with the products.
Author(s)
Sunthud Pornprasertmanit (psunthud@gmail.com) Alexander Schoemann (East Carolina University; schoemanna@ecu.edu)
References
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. doi: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. doi: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. doi:10.1207/s15328007sem1304_1
See Also
-
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.
Examples
## 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)
## End(Not run)