```
testMICOM(
.object = NULL,
.approach_p_adjust = "none",
.handle_inadmissibles = c("drop", "ignore", "replace"),
.R = 499,
.seed = NULL,
.verbose = TRUE
)
```

.object | An R object of class cSEMResults resulting from a call to |
---|---|

.approach_p_adjust | Character string or a vector of character strings.
Approach used to adjust the p-value for multiple testing.
See the |

.handle_inadmissibles | Character string. How should inadmissible results
be treated? One of " |

.R | Integer. The number of bootstrap replications. Defaults to |

.seed | Integer or |

.verbose | Logical. Should information (e.g., progress bar) be printed
to the console? Defaults to |

A named list of class `cSEMTestMICOM`

containing the following list element:

`$Step2`

A list containing the results of the test for compositional invariance (Step 2).

`$Step3`

A list containing the results of the test for mean and variance equality (Step 3).

`$Information`

A list of additional information on the test.

The functions performs the permutation-based test for measurement invariance
of composites across groups proposed by Henseler et al. (2016)
.
According to the authors assessing measurement invariance in composite
models can be assessed by a three-step procedure. The first two steps
involve an assessment of configural and compositional invariance.
The third steps involves mean and variance comparisons across groups.
Assessment of configural invariance is qualitative in nature and hence
not assessed by the `testMICOM()`

function.

As `testMICOM()`

requires at least two groups, `.object`

must be of
class `cSEMResults_multi`

. As of version 0.2.0 of the package, `testMICOM()`

does not support models containing second-order constructs.

It is possible to compare more than two groups, however, multiple-testing
issues arise in this case. To adjust p-values in this case several p-value
adjustments are available via the `approach_p_adjust`

argument.

The remaining arguments set the number of permutation runs to conduct
(`.R`

), the random number seed (`.seed`

),
instructions how inadmissible results are to be handled (`handle_inadmissibles`

),
and whether the function should be verbose in a sense that progress is printed
to the console.

The number of permutation runs defaults to `args_default()$.R`

for
performance reasons. According to Henseler et al. (2016)
the number of permutations should be at least 5000 for assessment to be
sufficiently reliable.

Henseler J, Ringle CM, Sarstedt M (2016).
“Testing Measurement Invariance of Composites Using Partial Least Squares.”
*International Marketing Review*, **33**(3), 405--431.
doi: 10.1108/imr-09-2014-0304
, https://doi.org/10.1108/imr-09-2014-0304.

```
if (FALSE) {
# NOTE: to run the example. Download and load the newst version of cSEM.DGP
# from GitHub using devtools::install_github("M-E-Rademaker/cSEM.DGP").
# Create two data generating processes (DGPs) that only differ in how the composite
# X is build. Hence, the two groups are not compositionally invariant.
dgp1 <- "
# Structural model
Y ~ 0.6*X
# Measurement model
Y =~ 1*y1
X <~ 0.4*x1 + 0.8*x2
x1 ~~ 0.3125*x2
"
dgp2 <- "
# Structural model
Y ~ 0.6*X
# Measurement model
Y =~ 1*y1
X <~ 0.8*x1 + 0.4*x2
x1 ~~ 0.3125*x2
"
g1 <- generateData(dgp1, .N = 399, .empirical = TRUE) # requires cSEM.DGP
g2 <- generateData(dgp2, .N = 200, .empirical = TRUE) # requires cSEM.DGP
# Model is the same for both DGPs
model <- "
# Structural model
Y ~ X
# Measurement model
Y =~ y1
X <~ x1 + x2
"
# Estimate
csem_results <- csem(.data = list("group1" = g1, "group2" = g2), model)
# Test
testMICOM(csem_results, .R = 50, .alpha = c(0.01, 0.05), .seed = 1987)
}
```