R: Measurement Invariance Tests Within Person

longInvariance-deprecated {semTools} | R Documentation

## Measurement Invariance Tests Within Person

### Description

Testing measurement invariance across timepoints (longitudinal) or any context involving the use of the same scale in one case (e.g., a dyad case with husband and wife answering the same scale). The measurement invariance uses a typical sequence of model comparison tests. This function currently works with only one scale, and only with continuous indicators.

### Usage

    longInvariance(model, varList, auto = "all", constrainAuto = FALSE,
                   fixed.x = TRUE, std.lv = FALSE, group = NULL,
                   group.equal = "", group.partial = "", strict = FALSE,
                   warn = TRUE, debug = FALSE, quiet = FALSE,
                   fit.measures = "default", baseline.model = NULL,
                   method = "satorra.bentler.2001", ...)

### Arguments

`model` | lavaan syntax or parameter table
`varList` | A list containing indicator names of factors used in the invariance testing, such as the list that the first element is the vector of indicator names in the first timepoint and the second element is the vector of indicator names in the second timepoint. The order of indicator names should be the same (but measured in different times or different units).
`auto` | The order of autocorrelation on the measurement errors on the similar items across factor (e.g., Item 1 in Time 1 and Time 2). If 0 is specified, the autocorrelation will be not imposed. If 1 is specified, the autocorrelation will imposed for the adjacent factor listed in `varList`. The maximum number can be specified is the number of factors specified minus 1. If `"all"` is specified, the maximum number of order will be used.
`constrainAuto` | If `TRUE`, the function will equate the auto-covariance to be equal within the same item across factors. For example, the covariance of item 1 in time 1 and time 2 is equal to the covariance of item 1 in time 2 and time 3.
`fixed.x` | See `lavaan.`
`std.lv` | See `lavaan.`
`group` | See `lavaan.`
`group.equal` | See `lavaan.`
`group.partial` | See `lavaan.`
`strict` | If `TRUE`, the sequence requires strict invariance. See
`warn` | See `lavaan.`
`debug` | See `lavaan.` details for more information.
`quiet` | If `FALSE` (default), a summary is printed out containing an overview of the different models that are fitted, together with some model comparison tests. If `TRUE`, no summary is printed.
`fit.measures` | Fit measures used to calculate the differences between nested models.
`baseline.model` | custom baseline model passed to `fitMeasures`
`method` | The method used to calculate likelihood ratio test. See `lavTestLRT` for available options
`...` | Additional arguments in the `lavaan` function. See also `lavOptions`

### Details

If `strict = FALSE`, the following four models are tested in order:

1. Model 1: configural invariance. The same factor structure is imposed on all units.

2. Model 2: weak invariance. The factor loadings are constrained to be equal across units.

3. Model 3: strong invariance. The factor loadings and intercepts are constrained to be equal across units.

4. Model 4: The factor loadings, intercepts and means are constrained to be equal across units.

Each time a more restricted model is fitted, a Δχ^2 test is reported, comparing the current model with the previous one, and comparing the current model to the baseline model (Model 1). In addition, the difference in CFA is also reported (ΔCFI).

If `strict = TRUE`, the following five models are tested in order:

1. Model 1: configural invariance. The same factor structure is imposed on all units.

2. Model 2: weak invariance. The factor loadings are constrained to be equal across units.

3. Model 3: strong invariance. The factor loadings and intercepts are constrained to be equal across units.

4. Model 4: strict invariance. The factor loadings, intercepts and residual variances are constrained to be equal across units.

5. Model 5: The factor loadings, intercepts, residual variances and means are constrained to be equal across units.

Note that if the χ^2 test statistic is scaled (eg. a Satorra-Bentler or Yuan-Bentler test statistic), a special version of the Δχ^2 test is used as described in http://www.statmodel.com/chidiff.shtml

### Value

Invisibly, all model fits in the sequence are returned as a list.

### Author(s)

Sunthud Pornprasertmanit (psunthud@gmail.com)

Yves Rosseel (Ghent University; Yves.Rosseel@UGent.be)

Terrence D. Jorgensen (University of Amsterdam; TJorgensen314@gmail.com)

### References

Vandenberg, R. J., and Lance, C. E. (2000). A review and synthesis of the measurement invariance literature: Suggestions, practices, and recommendations for organizational research. Organizational Research Methods, 3(1), 4–70. doi:10.1177/109442810031002

### See Also

`semTools-deprecated`

### Examples

    model <- ' f1t1 =~ y1t1 + y2t1 + y3t1
               f1t2 =~ y1t2 + y2t2 + y3t2
    			      f1t3 =~ y1t3 + y2t3 + y3t3 '

    ## Create list of variables
    var1 <- c("y1t1", "y2t1", "y3t1")
    var2 <- c("y1t2", "y2t2", "y3t2")
    var3 <- c("y1t3", "y2t3", "y3t3")
    constrainedVar <- list(var1, var2, var3)

    ## Invariance of the same factor across timepoints
    longInvariance(model, auto = 1, constrainAuto = TRUE,
                   varList = constrainedVar, data = exLong)

    ## Invariance of the same factor across timepoints and groups
    longInvariance(model, auto = 1, constrainAuto = TRUE,
                   varList = constrainedVar, data = exLong, group = "sex",
    	              group.equal = c("loadings", "intercepts"))

[Package semTools version 0.5-1 Index]