indProd: Make products of indicators using no centering, mean...

View source: R/indProd.R

indProdR 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 TRUE to use match-paired approach (Marsh, Wen, & Hau, 2004). If FALSE, the resulting products are all possible products.

meanC

Specify TRUE for mean centering the main effect indicator before making the products

residualC

Specify TRUE for residual centering the products by the main effect indicators (Little, Bovaird, & Widaman, 2006).

doubleMC

Specify TRUE for centering the resulting products (Lin et. al., 2010)

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. \Sexpr[results=rd]{tools:::Rd_expr_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. \Sexpr[results=rd]{tools:::Rd_expr_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. \Sexpr[results=rd]{tools:::Rd_expr_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

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)



semTools documentation built on April 3, 2025, 9:23 p.m.