Learn R Programming

semTools (version 0.4-13)

longInvariance: 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.

Usage

longInvariance(model, varList, auto = "all", constrainAuto = FALSE, fixed.x = TRUE, std.lv = FALSE, group=NULL, group.equal="", group.partial="", warn=TRUE, debug=FALSE, strict = FALSE, quiet = FALSE, fit.measures = "default", 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.
warn
See lavaan.
debug
See lavaan.
strict
If TRUE, the sequence requires `strict' invariance. See details for more information.
quiet
If TRUE, a summary is printed out containing an overview of the different models that are fitted, together with some model comparison tests.
fit.measures
Fit measures used to calculate the differences between nested models.
method
The method used to calculate likelihood ratio test. See lavTestLRT for available options
...
Additional arguments in the lavaan function.

Value

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

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 chi-square difference 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 cfi is also reported (delta.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 chi-square test statistic is scaled (eg. a Satorra-Bentler or Yuan-Bentler test statistic), a special version of the chi-square difference test is used as described in http://www.statmodel.com/chidiff.shtml

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, 4-70.

See Also

measurementinvariance For the measurement invariance test between groups

Examples

Run this code
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"))

Run the code above in your browser using DataLab