10  Measurement Invariance and Equivalence

Group comparisons are among the most common claims made with psychological scales. We compare depression across genders, well-being across countries, personality across age groups, and change across time. Before interpreting those differences, however, we need to ask whether the measurement model itself operates comparably across the groups.

Suppose two people from different groups have the same level of the latent trait. If the instrument is invariant, their expected responses to an item should not differ merely because they belong to different groups (Lubke & Muthén, 2004; Svetina et al., 2020).

ImportantWhy invariance matters

An observed group difference can reflect:

  1. a genuine difference in the latent construct;
  2. a difference in how particular items function across groups; or
  3. both.

Measurement-invariance analysis helps separate these possibilities before substantive group comparisons are interpreted.

NoteChapter map

This chapter develops measurement invariance in four steps:

  1. define invariance in the common-factor model;
  2. distinguish configural, loading, intercept/threshold, and residual invariance;
  3. explain why ordinal indicators require special identification and threshold constraints; and
  4. conduct categorical multi-group CFA in R with lavaan and semTools.

10.1 What Is Measurement Invariance?

For a continuous-indicator factor model,

\[ \mathbf{y} = \boldsymbol{\nu} + \mathbf{\Lambda}\boldsymbol{\eta} + \boldsymbol{\epsilon}, \]

where:

  • \(\boldsymbol{\nu}\) contains item intercepts;
  • \(\mathbf{\Lambda}\) contains factor loadings;
  • \(\boldsymbol{\eta}\) contains latent factor scores; and
  • \(\boldsymbol{\epsilon}\) contains indicator-specific residuals.

The implied covariance matrix is

\[ \mathbf{\Sigma} = \mathbf{\Lambda} \mathbf{\Phi} \mathbf{\Lambda}^{\mathsf T} + \mathbf{\Theta}, \]

where \(\mathbf{\Phi}\) is the latent-factor covariance matrix and \(\mathbf{\Theta}\) is the residual covariance matrix.

For group \(g\),

\[ E(\mathbf{y}^{(g)}) = \boldsymbol{\nu}^{(g)} + \mathbf{\Lambda}^{(g)} \boldsymbol{\kappa}^{(g)}, \]

where \(\boldsymbol{\kappa}^{(g)}\) contains the latent means.

Measurement invariance is investigated by asking which parts of this measurement model can reasonably be constrained to equality across groups.

TipInvariance is parameter-specific

A scale is not simply “invariant” or “noninvariant.” Different claims require equality of different parameters. The level of invariance needed depends on the comparison the researcher intends to make.

11 Levels of Invariance for Continuous Indicators

The familiar hierarchy for continuous CFA is summarized below.

Level Equality constraints What it mainly supports
Configural Same factor pattern Similar qualitative factor structure
Metric / weak Factor loadings Comparison of factor relations and scale units
Scalar / strong Loadings + intercepts Comparison of latent means
Strict Loadings + intercepts + residual variances Stronger equality of observed-score measurement error

11.1 Configural invariance

Configural invariance asks whether the same broad factor structure is plausible across groups. The number of factors and the pattern of which items load on which factors are the same, but most parameter values are allowed to differ.

If one group requires a fundamentally different loading pattern, stronger levels of invariance are difficult to interpret because the groups may not be measuring the construct with the same structural organization.

11.2 Metric invariance

Metric invariance constrains factor loadings to equality:

\[ \mathbf{\Lambda}^{(1)} = \mathbf{\Lambda}^{(2)} = \cdots = \mathbf{\Lambda}^{(G)}. \]

Equal loadings imply that the scale of the latent variable is linked to the indicators in the same way across groups. This level is particularly important when comparing factor covariances, correlations, or structural relations across groups.

Failure of loading invariance points to indicators whose relationship with the latent construct differs across groups. It should be described as evidence of differential measurement functioning, rather than as proof that respondents intentionally answer with “bias.”

11.3 Scalar invariance

Scalar invariance adds equality of item intercepts:

\[ \boldsymbol{\nu}^{(1)} = \boldsymbol{\nu}^{(2)} = \cdots = \boldsymbol{\nu}^{(G)}. \]

Together with equal loadings, equal intercepts make latent-mean comparisons interpretable: expected observed differences are not systematically shifted by group-specific item intercepts.

11.4 Strict invariance

Strict invariance additionally constrains residual variances:

\[ \mathbf{\Theta}^{(1)} = \mathbf{\Theta}^{(2)} = \cdots = \mathbf{\Theta}^{(G)}. \]

Strict invariance is a stronger requirement than is usually needed for latent-mean comparisons. In many applied settings, scalar/strong invariance is the main target for comparing latent means (Hancock, 1997; Svetina et al., 2020).

NoteThe hierarchy is not a ritual

The purpose is not to mechanically pass four stages. Each constraint corresponds to a substantive comparison. Decide first what comparison you want to make, and then evaluate whether the measurement parameters required for that comparison are sufficiently comparable.

12 Categorical Indicators Change the Problem

Many psychological items are binary or ordinal rather than continuous. Treating such variables as normally distributed continuous indicators can alter parameter estimates, fit statistics, and cross-group comparisons (Beauducel & Herzberg, 2006; Lubke & Muthén, 2004; Muthén & Kaplan, 1985).

For an ordinal item \(Y_j\), assume an underlying continuous response variable

\[ Y_j^*. \]

The observed category is determined by thresholds. If item \(j\) has categories \(0,\ldots,C\), then

\[ Y_j=c \quad\text{when}\quad \tau_{jc}<Y_j^*\leq\tau_{j,c+1}, \]

with

\[ \tau_{j0}=-\infty \qquad\text{and}\qquad \tau_{j,C+1}=+\infty. \]

The latent response follows a factor model,

\[ \mathbf{Y}^* = \boldsymbol{\nu} + \mathbf{\Lambda}\boldsymbol{\eta} + \boldsymbol{\epsilon}. \]

Now the thresholds themselves become part of the measurement model. Consequently, categorical invariance cannot be obtained simply by copying the continuous-data sequence and replacing the estimator.

12.1 Why identification matters

For ordered categorical models, thresholds, intercepts, residual variances, latent means, and factor scales can be identified in several statistically equivalent ways at the configural stage. Once equality constraints are imposed, however, identification constraints can become substantive restrictions if they are not handled carefully (Wu & Estabrook, 2016).

The Wu–Estabrook approach explicitly addresses this problem. semTools::measEq.syntax() implements these identification rules through

ID.cat = "Wu.Estabrook.2016"

(Svetina et al., 2020).

12.1.1 A practical sequence for ordinal indicators

Under this approach, a useful sequence is:

Model Main equality constraints
Configural Same factor pattern; thresholds and loadings largely free across groups
Threshold invariance Thresholds equal across groups
Threshold + loading invariance Thresholds and factor loadings equal across groups
Additional constraints Intercepts, means, or residuals if required by the research question and identification scheme

Wu & Estabrook (2016) recommend testing threshold equality before loading equality for ordered indicators. Svetina et al. (2020) provide an applied tutorial of this sequence with lavaan and semTools.

WarningCategorical ‘scalar invariance’ is not just intercept equality

For ordinal indicators, observed category means are determined through thresholds on the underlying response variables. Therefore, the familiar continuous-data labels metric and scalar can obscure what is actually being constrained. Report the specific constrained parameters—for example, threshold invariance and threshold + loading invariance.

13 Measurement Invariance in R

We will use:

13.1 Install and load the packages

install.packages("lavaan")
install.packages("semTools")
install.packages("psych")
library(lavaan)
This is lavaan 0.7-2
lavaan is FREE software! Please report any bugs.
library(semTools)
 
###############################################################################
This is semTools 0.5-9
All users of R (or SEM) are invited to submit functions or ideas for functions.
###############################################################################
library(psych)

Anexando pacote: 'psych'
Os seguintes objetos são mascarados por 'package:semTools':

    reliability, skew
O seguinte objeto é mascarado por 'package:lavaan':

    cor2cov

13.2 Prepare the BFI data

The BFI dataset contains 25 personality items and a gender variable coded 1 and 2. For this tutorial, we use all five personality domains.

items <- c(
  paste0("A", 1:5),
  paste0("C", 1:5),
  paste0("E", 1:5),
  paste0("N", 1:5),
  paste0("O", 1:5)
)

dat <- psych::bfi[, c(items, "gender")]

dat <- dat[
  complete.cases(dat[, c(items, "gender")]),
]

dat$gender <- factor(
  dat$gender,
  levels = c(1, 2),
  labels = c("Male", "Female")
)
NoteWhy complete cases here?

Complete-case analysis is used only to keep the tutorial compact. Missing-data handling should be planned explicitly in substantive applications, especially because categorical estimators and missing-data methods interact with the assumptions of the analysis.

13.3 Specify the five-factor configural model

mod.cat <- '
  Agreeableness      =~ A1 + A2 + A3 + A4 + A5
  Conscientiousness  =~ C1 + C2 + C3 + C4 + C5
  Extraversion       =~ E1 + E2 + E3 + E4 + E5
  Neuroticism        =~ N1 + N2 + N3 + N4 + N5
  Openness           =~ O1 + O2 + O3 + O4 + O5
'

We will treat all personality items as ordered indicators:

ordered_items <- items

13.4 1. Configural model

The configural model imposes no cross-group equality constraints beyond those needed for identification.

configural.syntax <- semTools::measEq.syntax(
  configural.model = mod.cat,
  data = dat,
  ordered = ordered_items,
  parameterization = "delta",
  ID.fac = "std.lv",
  ID.cat = "Wu.Estabrook.2016",
  group = "gender",
  group.equal = "configural"
)

fit.configural <- lavaan::cfa(
  as.character(configural.syntax),
  data = dat,
  group = "gender",
  ordered = ordered_items,
  estimator = "WLSMV"
)

Before moving to stronger constraints, inspect whether the configural model is substantively reasonable in both groups:

summary(
  fit.configural,
  fit.measures = TRUE,
  standardized = TRUE
)
lavaan 0.7-2 ended normally after 26 iterations

  Estimator                                       DWLS
  Optimization method                           NLMINB
  Number of model parameters                       320

  Number of observations per group:                   
    Male                                           805
    Female                                        1631

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                              6441.668    6087.699
  Degrees of freedom                               530         530
  P-value (Unknown)                                 NA       0.000
  Scaling correction factor                                  1.094
  Shift parameter                                          197.275
    simple second-order correction                                
  Test statistic for each group:
    Male                                      2201.315    2201.315
    Female                                    3886.384    3886.384

Model Test Baseline Model:

  Test statistic                             69703.669   32452.029
  Degrees of freedom                               600         600
  P-value                                           NA       0.000
  Scaling correction factor                                  2.170

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.914       0.826
  Tucker-Lewis Index (TLI)                       0.903       0.802
                                                                  
  Robust Comparative Fit Index (CFI)                         0.735
  Robust Tucker-Lewis Index (TLI)                            0.700

Root Mean Square Error of Approximation:

  RMSEA                                          0.096       0.093
  90 Percent confidence interval - lower         0.094       0.091
  90 Percent confidence interval - upper         0.098       0.095
  P-value H_0: RMSEA <= 0.050                    0.000       0.000
  P-value H_0: RMSEA >= 0.080                    1.000       1.000
                                                                  
  Robust RMSEA                                               0.096
  90 Percent confidence interval - lower                     0.094
  90 Percent confidence interval - upper                     0.098
  P-value H_0: Robust RMSEA <= 0.050                         0.000
  P-value H_0: Robust RMSEA >= 0.080                         1.000

Standardized Root Mean Square Residual:

  SRMR                                           0.085       0.085

Goodness of Fit Index:

  Goodness of Fit Index (GFI)                    0.837            
  90 Percent confidence interval - lower         0.831            
  90 Percent confidence interval - upper         0.843            
                                                                  
  Robust GFI                                                 0.837
  90 Percent confidence interval - lower                     0.830
  90 Percent confidence interval - upper                     0.843

Parameter Estimates:

  Parameterization                               Delta
  Standard errors                           Robust.sem
  Information                                 Expected
  Information saturated (h1) model        Unstructured


Group 1 [Male]:

Latent Variables:
                       Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Agreeableness =~                                                          
    A1      (l.1_)        0.319    0.035    9.083    0.000    0.319    0.319
    A2      (l.2_)       -0.657    0.026  -25.292    0.000   -0.657   -0.657
    A3      (l.3_)       -0.758    0.021  -36.817    0.000   -0.758   -0.758
    A4      (l.4_)       -0.587    0.029  -20.467    0.000   -0.587   -0.587
    A5      (l.5_)       -0.826    0.020  -41.932    0.000   -0.826   -0.826
  Conscientiousness =~                                                      
    C1      (l.6_)        0.597    0.029   20.317    0.000    0.597    0.597
    C2      (l.7_)        0.607    0.028   21.313    0.000    0.607    0.607
    C3      (l.8_)        0.516    0.029   17.645    0.000    0.516    0.516
    C4      (l.9_)       -0.735    0.025  -29.584    0.000   -0.735   -0.735
    C5      (l.10)       -0.728    0.024  -29.958    0.000   -0.728   -0.728
  Extraversion =~                                                           
    E1      (l.11)        0.570    0.027   21.265    0.000    0.570    0.570
    E2      (l.12)        0.772    0.020   38.951    0.000    0.772    0.772
    E3      (l.13)       -0.704    0.022  -31.659    0.000   -0.704   -0.704
    E4      (l.14)       -0.760    0.020  -38.423    0.000   -0.760   -0.760
    E5      (l.15)       -0.698    0.022  -31.134    0.000   -0.698   -0.698
  Neuroticism =~                                                            
    N1      (l.16)        0.834    0.015   53.982    0.000    0.834    0.834
    N2      (l.17)        0.812    0.016   49.958    0.000    0.812    0.812
    N3      (l.18)        0.722    0.019   38.614    0.000    0.722    0.722
    N4      (l.19)        0.715    0.023   31.440    0.000    0.715    0.715
    N5      (l.20)        0.575    0.028   20.865    0.000    0.575    0.575
  Openness =~                                                               
    O1      (l.21)        0.651    0.034   18.951    0.000    0.651    0.651
    O2      (l.22)       -0.441    0.037  -11.885    0.000   -0.441   -0.441
    O3      (l.23)        0.814    0.031   26.154    0.000    0.814    0.814
    O4      (l.24)        0.194    0.043    4.457    0.000    0.194    0.194
    O5      (l.25)       -0.535    0.034  -15.937    0.000   -0.535   -0.535

Covariances:
                       Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Agreeableness ~~                                                          
    Cnscnt  (p.2_)       -0.331    0.040   -8.354    0.000   -0.331   -0.331
    Extrvr (p.3_1)        0.693    0.024   28.708    0.000    0.693    0.693
    Nrtcsm (p.4_1)        0.217    0.037    5.825    0.000    0.217    0.217
    Opnnss (p.5_1)       -0.285    0.038   -7.526    0.000   -0.285   -0.285
  Conscientiousness ~~                                                      
    Extrvr (p.3_2)       -0.426    0.036  -11.994    0.000   -0.426   -0.426
    Nrtcsm (p.4_2)       -0.349    0.034  -10.331    0.000   -0.349   -0.349
    Opnnss (p.5_2)        0.353    0.039    9.038    0.000    0.353    0.353
  Extraversion ~~                                                           
    Nrtcsm (p.4_3)        0.289    0.034    8.597    0.000    0.289    0.289
    Opnnss (p.5_3)       -0.407    0.034  -11.915    0.000   -0.407   -0.407
  Neuroticism ~~                                                            
    Opnnss (p.5_4)       -0.113    0.040   -2.840    0.005   -0.113   -0.113

Intercepts:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .A1      (n.1.)    0.000                               0.000    0.000
   .A2      (n.2.)    0.000                               0.000    0.000
   .A3      (n.3.)    0.000                               0.000    0.000
   .A4      (n.4.)    0.000                               0.000    0.000
   .A5      (n.5.)    0.000                               0.000    0.000
   .C1      (n.6.)    0.000                               0.000    0.000
   .C2      (n.7.)    0.000                               0.000    0.000
   .C3      (n.8.)    0.000                               0.000    0.000
   .C4      (n.9.)    0.000                               0.000    0.000
   .C5      (n.10)    0.000                               0.000    0.000
   .E1      (n.11)    0.000                               0.000    0.000
   .E2      (n.12)    0.000                               0.000    0.000
   .E3      (n.13)    0.000                               0.000    0.000
   .E4      (n.14)    0.000                               0.000    0.000
   .E5      (n.15)    0.000                               0.000    0.000
   .N1      (n.16)    0.000                               0.000    0.000
   .N2      (n.17)    0.000                               0.000    0.000
   .N3      (n.18)    0.000                               0.000    0.000
   .N4      (n.19)    0.000                               0.000    0.000
   .N5      (n.20)    0.000                               0.000    0.000
   .O1      (n.21)    0.000                               0.000    0.000
   .O2      (n.22)    0.000                               0.000    0.000
   .O3      (n.23)    0.000                               0.000    0.000
   .O4      (n.24)    0.000                               0.000    0.000
   .O5      (n.25)    0.000                               0.000    0.000
    Agrblns (a.1.)    0.000                               0.000    0.000
    Cnscnts (a.2.)    0.000                               0.000    0.000
    Extrvrs (a.3.)    0.000                               0.000    0.000
    Nertcsm (a.4.)    0.000                               0.000    0.000
    Opennss (a.5.)    0.000                               0.000    0.000

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    A1|t1   (A1.1)   -0.760    0.049  -15.462    0.000   -0.760   -0.760
    A1|t2   (A1.2)    0.076    0.044    1.726    0.084    0.076    0.076
    A1|t3   (A1.3)    0.544    0.047   11.664    0.000    0.544    0.544
    A1|t4   (A1.4)    1.062    0.055   19.467    0.000    1.062    1.062
    A1|t5   (A1.5)    1.768    0.081   21.775    0.000    1.768    1.768
    A2|t1   (A2.1)   -1.902    0.090  -21.159    0.000   -1.902   -1.902
    A2|t2   (A2.2)   -1.278    0.060  -21.241    0.000   -1.278   -1.278
    A2|t3   (A2.3)   -0.915    0.052  -17.725    0.000   -0.915   -0.915
    A2|t4   (A2.4)   -0.186    0.044   -4.190    0.000   -0.186   -0.186
    A2|t5   (A2.5)    0.785    0.050   15.858    0.000    0.785    0.785
    A3|t1   (A3.1)   -1.768    0.081  -21.775    0.000   -1.768   -1.768
    A3|t2   (A3.2)   -1.148    0.057  -20.288    0.000   -1.148   -1.148
    A3|t3   (A3.3)   -0.764    0.049  -15.528    0.000   -0.764   -0.764
    A3|t4   (A3.4)   -0.079    0.044   -1.797    0.072   -0.079   -0.079
    A3|t5   (A3.5)    0.882    0.051   17.283    0.000    0.882    0.882
    A4|t1   (A4.1)   -1.624    0.073  -22.099    0.000   -1.624   -1.624
    A4|t2   (A4.2)   -1.051    0.054  -19.353    0.000   -1.051   -1.051
    A4|t3   (A4.3)   -0.719    0.049  -14.795    0.000   -0.719   -0.719
    A4|t4   (A4.4)   -0.164    0.044   -3.698    0.000   -0.164   -0.164
    A4|t5   (A4.5)    0.533    0.047   11.457    0.000    0.533    0.533
    A5|t1   (A5.1)   -1.865    0.087  -21.356    0.000   -1.865   -1.865
    A5|t2   (A5.2)   -1.173    0.057  -20.493    0.000   -1.173   -1.173
    A5|t3   (A5.3)   -0.735    0.049  -15.063    0.000   -0.735   -0.735
    A5|t4   (A5.4)   -0.111    0.044   -2.501    0.012   -0.111   -0.111
    A5|t5   (A5.5)    0.842    0.050   16.706    0.000    0.842    0.842
    C1|t1   (C1.1)   -2.031    0.100  -20.314    0.000   -2.031   -2.031
    C1|t2   (C1.2)   -1.425    0.065  -21.902    0.000   -1.425   -1.425
    C1|t3   (C1.3)   -0.855    0.051  -16.899    0.000   -0.855   -0.855
    C1|t4   (C1.4)   -0.221    0.045   -4.964    0.000   -0.221   -0.221
    C1|t5   (C1.5)    0.794    0.050   15.990    0.000    0.794    0.794
    C2|t1   (C2.1)   -1.902    0.090  -21.159    0.000   -1.902   -1.902
    C2|t2   (C2.2)   -1.101    0.055  -19.859    0.000   -1.101   -1.101
    C2|t3   (C2.3)   -0.652    0.048  -13.649    0.000   -0.652   -0.652
    C2|t4   (C2.4)   -0.014    0.044   -0.317    0.751   -0.014   -0.014
    C2|t5   (C2.5)    0.953    0.052   18.221    0.000    0.953    0.953
    C3|t1   (C3.1)   -1.848    0.086  -21.442    0.000   -1.848   -1.848
    C3|t2   (C3.2)   -1.084    0.055  -19.693    0.000   -1.084   -1.084
    C3|t3   (C3.3)   -0.664    0.048  -13.852    0.000   -0.664   -0.664
    C3|t4   (C3.4)    0.045    0.044    1.022    0.307    0.045    0.045
    C3|t5   (C3.5)    1.035    0.054   19.179    0.000    1.035    1.035
    C4|t1   (C4.1)   -0.664    0.048  -13.852    0.000   -0.664   -0.664
    C4|t2   (C4.2)    0.042    0.044    0.951    0.341    0.042    0.042
    C4|t3   (C4.3)    0.498    0.046   10.765    0.000    0.498    0.498
    C4|t4   (C4.4)    1.185    0.058   20.594    0.000    1.185    1.185
    C4|t5   (C4.5)    1.884    0.089   21.261    0.000    1.884    1.884
    C5|t1   (C5.1)   -0.999    0.053  -18.766    0.000   -0.999   -0.999
    C5|t2   (C5.2)   -0.384    0.045   -8.469    0.000   -0.384   -0.384
    C5|t3   (C5.3)   -0.111    0.044   -2.501    0.012   -0.111   -0.111
    C5|t4   (C5.4)    0.425    0.046    9.306    0.000    0.425    0.425
    C5|t5   (C5.5)    1.179    0.057   20.544    0.000    1.179    1.179
    E1|t1   (E1.1)   -0.896    0.051  -17.473    0.000   -0.896   -0.896
    E1|t2   (E1.2)   -0.244    0.045   -5.456    0.000   -0.244   -0.244
    E1|t3   (E1.3)    0.108    0.044    2.431    0.015    0.108    0.108
    E1|t4   (E1.4)    0.584    0.047   12.420    0.000    0.584    0.584
    E1|t5   (E1.5)    1.179    0.057   20.544    0.000    1.179    1.179
    E2|t1   (E2.1)   -0.963    0.053  -18.343    0.000   -0.963   -0.963
    E2|t2   (E2.2)   -0.253    0.045   -5.666    0.000   -0.253   -0.253
    E2|t3   (E2.3)    0.070    0.044    1.585    0.113    0.070    0.070
    E2|t4   (E2.4)    0.625    0.047   13.173    0.000    0.625    0.625
    E2|t5   (E2.5)    1.224    0.059   20.884    0.000    1.224    1.224
    E3|t1   (E3.1)   -1.508    0.068  -22.077    0.000   -1.508   -1.508
    E3|t2   (E3.2)   -0.896    0.051  -17.473    0.000   -0.896   -0.896
    E3|t3   (E3.3)   -0.415    0.046   -9.097    0.000   -0.415   -0.415
    E3|t4   (E3.4)    0.322    0.045    7.140    0.000    0.322    0.322
    E3|t5   (E3.5)    1.185    0.058   20.594    0.000    1.185    1.185
    E4|t1   (E4.1)   -1.488    0.068  -22.049    0.000   -1.488   -1.488
    E4|t2   (E4.2)   -0.887    0.051  -17.347    0.000   -0.887   -0.887
    E4|t3   (E4.3)   -0.588    0.047  -12.489    0.000   -0.588   -0.588
    E4|t4   (E4.4)   -0.120    0.044   -2.712    0.007   -0.120   -0.120
    E4|t5   (E4.5)    0.768    0.049   15.594    0.000    0.768    0.768
    E5|t1   (E5.1)   -1.739    0.080  -21.870    0.000   -1.739   -1.739
    E5|t2   (E5.2)   -1.073    0.055  -19.580    0.000   -1.073   -1.073
    E5|t3   (E5.3)   -0.668    0.048  -13.920    0.000   -0.668   -0.668
    E5|t4   (E5.4)   -0.008    0.044   -0.176    0.860   -0.008   -0.008
    E5|t5   (E5.5)    0.887    0.051   17.347    0.000    0.887    0.887
    N1|t1   (N1.1)   -0.641    0.048  -13.445    0.000   -0.641   -0.641
    N1|t2   (N1.2)   -0.008    0.044   -0.176    0.860   -0.008   -0.008
    N1|t3   (N1.3)    0.364    0.045    8.050    0.000    0.364    0.364
    N1|t4   (N1.4)    0.887    0.051   17.347    0.000    0.887    0.887
    N1|t5   (N1.5)    1.579    0.071   22.122    0.000    1.579    1.579
    N2|t1   (N2.1)   -1.014    0.054  -18.945    0.000   -1.014   -1.014
    N2|t2   (N2.2)   -0.354    0.045   -7.840    0.000   -0.354   -0.354
    N2|t3   (N2.3)    0.048    0.044    1.092    0.275    0.048    0.048
    N2|t4   (N2.4)    0.691    0.048   14.325    0.000    0.691    0.691
    N2|t5   (N2.5)    1.408    0.064   21.848    0.000    1.408    1.408
    N3|t1   (N3.1)   -0.764    0.049  -15.528    0.000   -0.764   -0.764
    N3|t2   (N3.2)   -0.073    0.044   -1.656    0.098   -0.073   -0.073
    N3|t3   (N3.3)    0.286    0.045    6.368    0.000    0.286    0.286
    N3|t4   (N3.4)    0.864    0.051   17.028    0.000    0.864    0.864
    N3|t5   (N3.5)    1.624    0.073   22.099    0.000    1.624    1.624
    N4|t1   (N4.1)   -0.915    0.052  -17.725    0.000   -0.915   -0.915
    N4|t2   (N4.2)   -0.257    0.045   -5.737    0.000   -0.257   -0.257
    N4|t3   (N4.3)    0.105    0.044    2.360    0.018    0.105    0.105
    N4|t4   (N4.4)    0.735    0.049   15.063    0.000    0.735    0.735
    N4|t5   (N4.5)    1.337    0.062   21.557    0.000    1.337    1.337
    N5|t1   (N5.1)   -0.418    0.046   -9.167    0.000   -0.418   -0.418
    N5|t2   (N5.2)    0.302    0.045    6.719    0.000    0.302    0.302
    N5|t3   (N5.3)    0.633    0.048   13.309    0.000    0.633    0.633
    N5|t4   (N5.4)    1.142    0.056   20.235    0.000    1.142    1.142
    N5|t5   (N5.5)    1.725    0.079   21.910    0.000    1.725    1.725
    O1|t1   (O1.1)   -2.329    0.132  -17.649    0.000   -2.329   -2.329
    O1|t2   (O1.2)   -1.848    0.086  -21.442    0.000   -1.848   -1.848
    O1|t3   (O1.3)   -1.337    0.062  -21.557    0.000   -1.337   -1.337
    O1|t4   (O1.4)   -0.633    0.048  -13.309    0.000   -0.633   -0.633
    O1|t5   (O1.5)    0.289    0.045    6.438    0.000    0.289    0.289
    O2|t1   (O2.1)   -0.487    0.046  -10.557    0.000   -0.487   -0.487
    O2|t2   (O2.2)    0.199    0.045    4.472    0.000    0.199    0.199
    O2|t3   (O2.3)    0.584    0.047   12.420    0.000    0.584    0.584
    O2|t4   (O2.4)    1.068    0.055   19.524    0.000    1.068    1.068
    O2|t5   (O2.5)    1.568    0.071   22.121    0.000    1.568    1.568
    O3|t1   (O3.1)   -1.848    0.086  -21.442    0.000   -1.848   -1.848
    O3|t2   (O3.2)   -1.470    0.067  -22.013    0.000   -1.470   -1.470
    O3|t3   (O3.3)   -1.004    0.053  -18.826    0.000   -1.004   -1.004
    O3|t4   (O3.4)   -0.171    0.044   -3.838    0.000   -0.171   -0.171
    O3|t5   (O3.5)    0.790    0.050   15.924    0.000    0.790    0.790
    O4|t1   (O4.1)   -2.111    0.107  -19.687    0.000   -2.111   -2.111
    O4|t2   (O4.2)   -1.568    0.071  -22.121    0.000   -1.568   -1.568
    O4|t3   (O4.3)   -1.211    0.058  -20.789    0.000   -1.211   -1.211
    O4|t4   (O4.4)   -0.595    0.047  -12.626    0.000   -0.595   -0.595
    O4|t5   (O4.5)    0.199    0.045    4.472    0.000    0.199    0.199
    O5|t1   (O5.1)   -0.505    0.046  -10.904    0.000   -0.505   -0.505
    O5|t2   (O5.2)    0.325    0.045    7.210    0.000    0.325    0.325
    O5|t3   (O5.3)    0.824    0.050   16.447    0.000    0.824    0.824
    O5|t4   (O5.4)    1.329    0.062   21.520    0.000    1.329    1.329
    O5|t5   (O5.5)    1.865    0.087   21.356    0.000    1.865    1.865

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    Agrblns (p.1_)    1.000                               1.000    1.000
    Cnscnts (p.2_)    1.000                               1.000    1.000
    Extrvrs (p.3_)    1.000                               1.000    1.000
    Nertcsm (p.4_)    1.000                               1.000    1.000
    Opennss (p.5_)    1.000                               1.000    1.000
   .A1                0.898                               0.898    0.898
   .A2                0.568                               0.568    0.568
   .A3                0.426                               0.426    0.426
   .A4                0.656                               0.656    0.656
   .A5                0.317                               0.317    0.317
   .C1                0.643                               0.643    0.643
   .C2                0.632                               0.632    0.632
   .C3                0.733                               0.733    0.733
   .C4                0.460                               0.460    0.460
   .C5                0.470                               0.470    0.470
   .E1                0.675                               0.675    0.675
   .E2                0.404                               0.404    0.404
   .E3                0.504                               0.504    0.504
   .E4                0.422                               0.422    0.422
   .E5                0.513                               0.513    0.513
   .N1                0.304                               0.304    0.304
   .N2                0.340                               0.340    0.340
   .N3                0.479                               0.479    0.479
   .N4                0.489                               0.489    0.489
   .N5                0.669                               0.669    0.669
   .O1                0.577                               0.577    0.577
   .O2                0.805                               0.805    0.805
   .O3                0.338                               0.338    0.338
   .O4                0.963                               0.963    0.963
   .O5                0.713                               0.713    0.713

Scales y*:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    A1                1.000                               1.000    1.000
    A2                1.000                               1.000    1.000
    A3                1.000                               1.000    1.000
    A4                1.000                               1.000    1.000
    A5                1.000                               1.000    1.000
    C1                1.000                               1.000    1.000
    C2                1.000                               1.000    1.000
    C3                1.000                               1.000    1.000
    C4                1.000                               1.000    1.000
    C5                1.000                               1.000    1.000
    E1                1.000                               1.000    1.000
    E2                1.000                               1.000    1.000
    E3                1.000                               1.000    1.000
    E4                1.000                               1.000    1.000
    E5                1.000                               1.000    1.000
    N1                1.000                               1.000    1.000
    N2                1.000                               1.000    1.000
    N3                1.000                               1.000    1.000
    N4                1.000                               1.000    1.000
    N5                1.000                               1.000    1.000
    O1                1.000                               1.000    1.000
    O2                1.000                               1.000    1.000
    O3                1.000                               1.000    1.000
    O4                1.000                               1.000    1.000
    O5                1.000                               1.000    1.000


Group 2 [Female]:

Latent Variables:
                       Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Agreeableness =~                                                          
    A1      (l.1_)        0.352    0.025   14.362    0.000    0.352    0.352
    A2      (l.2_)       -0.665    0.019  -35.278    0.000   -0.665   -0.665
    A3      (l.3_)       -0.763    0.016  -48.562    0.000   -0.763   -0.763
    A4      (l.4_)       -0.519    0.024  -21.644    0.000   -0.519   -0.519
    A5      (l.5_)       -0.770    0.017  -46.649    0.000   -0.770   -0.770
  Conscientiousness =~                                                      
    C1      (l.6_)        0.600    0.021   28.675    0.000    0.600    0.600
    C2      (l.7_)        0.594    0.021   28.817    0.000    0.594    0.594
    C3      (l.8_)        0.547    0.021   25.499    0.000    0.547    0.547
    C4      (l.9_)       -0.761    0.018  -41.784    0.000   -0.761   -0.761
    C5      (l.10)       -0.710    0.018  -39.006    0.000   -0.710   -0.710
  Extraversion =~                                                           
    E1      (l.11)        0.510    0.021   24.541    0.000    0.510    0.510
    E2      (l.12)        0.714    0.015   46.975    0.000    0.714    0.714
    E3      (l.13)       -0.680    0.018  -38.637    0.000   -0.680   -0.680
    E4      (l.14)       -0.727    0.016  -45.498    0.000   -0.727   -0.727
    E5      (l.15)       -0.579    0.020  -29.670    0.000   -0.579   -0.579
  Neuroticism =~                                                            
    N1      (l.16)        0.870    0.010   88.783    0.000    0.870    0.870
    N2      (l.17)        0.829    0.011   74.747    0.000    0.829    0.829
    N3      (l.18)        0.744    0.013   58.544    0.000    0.744    0.744
    N4      (l.19)        0.707    0.016   44.236    0.000    0.707    0.707
    N5      (l.20)        0.563    0.019   29.919    0.000    0.563    0.563
  Openness =~                                                               
    O1      (l.21)        0.672    0.023   29.623    0.000    0.672    0.672
    O2      (l.22)       -0.425    0.027  -16.005    0.000   -0.425   -0.425
    O3      (l.23)        0.814    0.023   35.598    0.000    0.814    0.814
    O4      (l.24)        0.155    0.030    5.248    0.000    0.155    0.155
    O5      (l.25)       -0.445    0.026  -17.362    0.000   -0.445   -0.445

Covariances:
                       Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Agreeableness ~~                                                          
    Cnscnt  (p.2_)       -0.381    0.027  -13.917    0.000   -0.381   -0.381
    Extrvr (p.3_1)        0.706    0.018   38.308    0.000    0.706    0.706
    Nrtcsm (p.4_1)        0.324    0.026   12.417    0.000    0.324    0.324
    Opnnss (p.5_1)       -0.369    0.028  -13.228    0.000   -0.369   -0.369
  Conscientiousness ~~                                                      
    Extrvr (p.3_2)       -0.368    0.027  -13.624    0.000   -0.368   -0.368
    Nrtcsm (p.4_2)       -0.313    0.025  -12.317    0.000   -0.313   -0.313
    Opnnss (p.5_2)        0.345    0.029   11.973    0.000    0.345    0.345
  Extraversion ~~                                                           
    Nrtcsm (p.4_3)        0.318    0.025   12.636    0.000    0.318    0.318
    Opnnss (p.5_3)       -0.561    0.023  -24.494    0.000   -0.561   -0.561
  Neuroticism ~~                                                            
    Opnnss (p.5_4)       -0.130    0.029   -4.476    0.000   -0.130   -0.130

Intercepts:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .A1      (n.1.)    0.000                               0.000    0.000
   .A2      (n.2.)    0.000                               0.000    0.000
   .A3      (n.3.)    0.000                               0.000    0.000
   .A4      (n.4.)    0.000                               0.000    0.000
   .A5      (n.5.)    0.000                               0.000    0.000
   .C1      (n.6.)    0.000                               0.000    0.000
   .C2      (n.7.)    0.000                               0.000    0.000
   .C3      (n.8.)    0.000                               0.000    0.000
   .C4      (n.9.)    0.000                               0.000    0.000
   .C5      (n.10)    0.000                               0.000    0.000
   .E1      (n.11)    0.000                               0.000    0.000
   .E2      (n.12)    0.000                               0.000    0.000
   .E3      (n.13)    0.000                               0.000    0.000
   .E4      (n.14)    0.000                               0.000    0.000
   .E5      (n.15)    0.000                               0.000    0.000
   .N1      (n.16)    0.000                               0.000    0.000
   .N2      (n.17)    0.000                               0.000    0.000
   .N3      (n.18)    0.000                               0.000    0.000
   .N4      (n.19)    0.000                               0.000    0.000
   .N5      (n.20)    0.000                               0.000    0.000
   .O1      (n.21)    0.000                               0.000    0.000
   .O2      (n.22)    0.000                               0.000    0.000
   .O3      (n.23)    0.000                               0.000    0.000
   .O4      (n.24)    0.000                               0.000    0.000
   .O5      (n.25)    0.000                               0.000    0.000
    Agrblns (a.1.)    0.000                               0.000    0.000
    Cnscnts (a.2.)    0.000                               0.000    0.000
    Extrvrs (a.3.)    0.000                               0.000    0.000
    Nertcsm (a.4.)    0.000                               0.000    0.000
    Opennss (a.5.)    0.000                               0.000    0.000

Thresholds:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    A1|t1   (A1.1)   -0.287    0.032   -9.121    0.000   -0.287   -0.287
    A1|t2   (A1.2)    0.457    0.032   14.177    0.000    0.457    0.457
    A1|t3   (A1.3)    0.853    0.036   24.015    0.000    0.853    0.853
    A1|t4   (A1.4)    1.332    0.043   30.656    0.000    1.332    1.332
    A1|t5   (A1.5)    1.947    0.065   29.734    0.000    1.947    1.947
    A2|t1   (A2.1)   -2.269    0.087  -25.979    0.000   -2.269   -2.269
    A2|t2   (A2.2)   -1.691    0.054  -31.306    0.000   -1.691   -1.691
    A2|t3   (A2.3)   -1.336    0.044  -30.682    0.000   -1.336   -1.336
    A2|t4   (A2.4)   -0.634    0.033  -18.969    0.000   -0.634   -0.634
    A2|t5   (A2.5)    0.347    0.032   10.942    0.000    0.347    0.347
    A3|t1   (A3.1)   -1.837    0.060  -30.596    0.000   -1.837   -1.837
    A3|t2   (A3.2)   -1.383    0.045  -30.968    0.000   -1.383   -1.383
    A3|t3   (A3.3)   -1.070    0.038  -27.830    0.000   -1.070   -1.070
    A3|t4   (A3.4)   -0.456    0.032  -14.129    0.000   -0.456   -0.456
    A3|t5   (A3.5)    0.490    0.032   15.104    0.000    0.490    0.490
    A4|t1   (A4.1)   -1.698    0.054  -31.286    0.000   -1.698   -1.698
    A4|t2   (A4.2)   -1.186    0.040  -29.330    0.000   -1.186   -1.186
    A4|t3   (A4.3)   -0.957    0.037  -26.004    0.000   -0.957   -0.957
    A4|t4   (A4.4)   -0.483    0.032  -14.909    0.000   -0.483   -0.483
    A4|t5   (A4.5)    0.095    0.031    3.044    0.002    0.095    0.095
    A5|t1   (A5.1)   -2.088    0.074  -28.288    0.000   -2.088   -2.088
    A5|t2   (A5.2)   -1.411    0.045  -31.112    0.000   -1.411   -1.411
    A5|t3   (A5.3)   -0.997    0.037  -26.684    0.000   -0.997   -0.997
    A5|t4   (A5.4)   -0.307    0.032   -9.712    0.000   -0.307   -0.307
    A5|t5   (A5.5)    0.613    0.033   18.442    0.000    0.613    0.613
    C1|t1   (C1.1)   -1.937    0.065  -29.824    0.000   -1.937   -1.937
    C1|t2   (C1.2)   -1.379    0.045  -30.946    0.000   -1.379   -1.379
    C1|t3   (C1.3)   -0.945    0.037  -25.788    0.000   -0.945   -0.945
    C1|t4   (C1.4)   -0.235    0.031   -7.493    0.000   -0.235   -0.235
    C1|t5   (C1.5)    0.759    0.035   21.994    0.000    0.759    0.759
    C2|t1   (C2.1)   -1.845    0.060  -30.539    0.000   -1.845   -1.845
    C2|t2   (C2.2)   -1.228    0.041  -29.769    0.000   -1.228   -1.228
    C2|t3   (C2.3)   -0.820    0.035  -23.333    0.000   -0.820   -0.820
    C2|t4   (C2.4)   -0.161    0.031   -5.171    0.000   -0.161   -0.161
    C2|t5   (C2.5)    0.791    0.035   22.690    0.000    0.791    0.791
    C3|t1   (C3.1)   -1.889    0.063  -30.220    0.000   -1.889   -1.889
    C3|t2   (C3.2)   -1.225    0.041  -29.737    0.000   -1.225   -1.225
    C3|t3   (C3.3)   -0.803    0.035  -22.966    0.000   -0.803   -0.803
    C3|t4   (C3.4)   -0.033    0.031   -1.064    0.287   -0.033   -0.033
    C3|t5   (C3.5)    0.903    0.036   24.999    0.000    0.903    0.903
    C4|t1   (C4.1)   -0.559    0.033  -16.997    0.000   -0.559   -0.559
    C4|t2   (C4.2)    0.232    0.031    7.394    0.000    0.232    0.232
    C4|t3   (C4.3)    0.703    0.034   20.681    0.000    0.703    0.703
    C4|t4   (C4.4)    1.282    0.042   30.268    0.000    1.282    1.282
    C4|t5   (C4.5)    2.037    0.071   28.858    0.000    2.037    2.037
    C5|t1   (C5.1)   -0.882    0.036  -24.599    0.000   -0.882   -0.882
    C5|t2   (C5.2)   -0.240    0.031   -7.641    0.000   -0.240   -0.240
    C5|t3   (C5.3)    0.078    0.031    2.500    0.012    0.078    0.078
    C5|t4   (C5.4)    0.690    0.034   20.350    0.000    0.690    0.690
    C5|t5   (C5.5)    1.310    0.043   30.496    0.000    1.310    1.310
    E1|t1   (E1.1)   -0.640    0.033  -19.113    0.000   -0.640   -0.640
    E1|t2   (E1.2)    0.024    0.031    0.767    0.443    0.024    0.024
    E1|t3   (E1.3)    0.398    0.032   12.465    0.000    0.398    0.398
    E1|t4   (E1.4)    0.878    0.036   24.510    0.000    0.878    0.878
    E1|t5   (E1.5)    1.463    0.047   31.313    0.000    1.463    1.463
    E2|t1   (E2.1)   -0.842    0.035  -23.789    0.000   -0.842   -0.842
    E2|t2   (E2.2)   -0.136    0.031   -4.380    0.000   -0.136   -0.136
    E2|t3   (E2.3)    0.178    0.031    5.715    0.000    0.178    0.178
    E2|t4   (E2.4)    0.776    0.035   22.366    0.000    0.776    0.776
    E2|t5   (E2.5)    1.344    0.044   30.733    0.000    1.344    1.344
    E3|t1   (E3.1)   -1.642    0.052  -31.427    0.000   -1.642   -1.642
    E3|t2   (E3.2)   -1.043    0.038  -27.428    0.000   -1.043   -1.043
    E3|t3   (E3.3)   -0.534    0.033  -16.319    0.000   -0.534   -0.534
    E3|t4   (E3.4)    0.267    0.031    8.480    0.000    0.267    0.267
    E3|t5   (E3.5)    1.147    0.040   28.864    0.000    1.147    1.147
    E4|t1   (E4.1)   -1.691    0.054  -31.306    0.000   -1.691   -1.691
    E4|t2   (E4.2)   -1.135    0.040  -28.716    0.000   -1.135   -1.135
    E4|t3   (E4.3)   -0.755    0.034  -21.901    0.000   -0.755   -0.755
    E4|t4   (E4.4)   -0.299    0.032   -9.466    0.000   -0.299   -0.299
    E4|t5   (E4.5)    0.595    0.033   17.962    0.000    0.595    0.595
    E5|t1   (E5.1)   -1.821    0.059  -30.701    0.000   -1.821   -1.821
    E5|t2   (E5.2)   -1.231    0.041  -29.802    0.000   -1.231   -1.231
    E5|t3   (E5.3)   -0.820    0.035  -23.333    0.000   -0.820   -0.820
    E5|t4   (E5.4)   -0.208    0.031   -6.654    0.000   -0.208   -0.208
    E5|t5   (E5.5)    0.757    0.035   21.948    0.000    0.757    0.757
    N1|t1   (N1.1)   -0.784    0.035  -22.551    0.000   -0.784   -0.784
    N1|t2   (N1.2)   -0.110    0.031   -3.539    0.000   -0.110   -0.110
    N1|t3   (N1.3)    0.286    0.032    9.072    0.000    0.286    0.286
    N1|t4   (N1.4)    0.849    0.035   23.925    0.000    0.849    0.849
    N1|t5   (N1.5)    1.407    0.045   31.092    0.000    1.407    1.407
    N2|t1   (N2.1)   -1.285    0.042  -30.297    0.000   -1.285   -1.285
    N2|t2   (N2.2)   -0.577    0.033  -17.480    0.000   -0.577   -0.577
    N2|t3   (N2.3)   -0.193    0.031   -6.159    0.000   -0.193   -0.193
    N2|t4   (N2.4)    0.481    0.032   14.860    0.000    0.481    0.481
    N2|t5   (N2.5)    1.171    0.040   29.153    0.000    1.171    1.171
    N3|t1   (N3.1)   -1.038    0.038  -27.347    0.000   -1.038   -1.038
    N3|t2   (N3.2)   -0.316    0.032  -10.008    0.000   -0.316   -0.316
    N3|t3   (N3.3)   -0.010    0.031   -0.322    0.748   -0.010   -0.010
    N3|t4   (N3.4)    0.588    0.033   17.769    0.000    0.588    0.588
    N3|t5   (N3.5)    1.238    0.041   29.867    0.000    1.238    1.238
    N4|t1   (N4.1)   -0.999    0.037  -26.726    0.000   -0.999   -0.999
    N4|t2   (N4.2)   -0.243    0.031   -7.740    0.000   -0.243   -0.243
    N4|t3   (N4.3)    0.147    0.031    4.726    0.000    0.147    0.147
    N4|t4   (N4.4)    0.739    0.034   21.527    0.000    0.739    0.739
    N4|t5   (N4.5)    1.314    0.043   30.523    0.000    1.314    1.314
    N5|t1   (N5.1)   -0.894    0.036  -24.822    0.000   -0.894   -0.894
    N5|t2   (N5.2)   -0.238    0.031   -7.592    0.000   -0.238   -0.238
    N5|t3   (N5.3)    0.127    0.031    4.083    0.000    0.127    0.127
    N5|t4   (N5.4)    0.684    0.034   20.208    0.000    0.684    0.684
    N5|t5   (N5.5)    1.221    0.041   29.704    0.000    1.221    1.221
    O1|t1   (O1.1)   -2.471    0.108  -22.979    0.000   -2.471   -2.471
    O1|t2   (O1.2)   -1.619    0.051  -31.462    0.000   -1.619   -1.619
    O1|t3   (O1.3)   -1.109    0.039  -28.376    0.000   -1.109   -1.109
    O1|t4   (O1.4)   -0.321    0.032  -10.155    0.000   -0.321   -0.321
    O1|t5   (O1.5)    0.546    0.033   16.658    0.000    0.546    0.546
    O2|t1   (O2.1)   -0.590    0.033  -17.817    0.000   -0.590   -0.590
    O2|t2   (O2.2)    0.104    0.031    3.341    0.001    0.104    0.104
    O2|t3   (O2.3)    0.457    0.032   14.177    0.000    0.457    0.457
    O2|t4   (O2.4)    0.974    0.037   26.304    0.000    0.974    0.974
    O2|t5   (O2.5)    1.534    0.049   31.465    0.000    1.534    1.534
    O3|t1   (O3.1)   -2.037    0.071  -28.858    0.000   -2.037   -2.037
    O3|t2   (O3.2)   -1.399    0.045  -31.052    0.000   -1.399   -1.399
    O3|t3   (O3.3)   -0.878    0.036  -24.510    0.000   -0.878   -0.878
    O3|t4   (O3.4)   -0.058    0.031   -1.856    0.063   -0.058   -0.058
    O3|t5   (O3.5)    0.903    0.036   24.999    0.000    0.903    0.903
    O4|t1   (O4.1)   -2.146    0.078  -27.598    0.000   -2.146   -2.146
    O4|t2   (O4.2)   -1.549    0.049  -31.479    0.000   -1.549   -1.549
    O4|t3   (O4.3)   -1.212    0.041  -29.604    0.000   -1.212   -1.212
    O4|t4   (O4.4)   -0.575    0.033  -17.432    0.000   -0.575   -0.575
    O4|t5   (O4.5)    0.300    0.032    9.515    0.000    0.300    0.300
    O5|t1   (O5.1)   -0.653    0.034  -19.447    0.000   -0.653   -0.653
    O5|t2   (O5.2)    0.197    0.031    6.308    0.000    0.197    0.197
    O5|t3   (O5.3)    0.745    0.034   21.668    0.000    0.745    0.745
    O5|t4   (O5.4)    1.340    0.044   30.707    0.000    1.340    1.340
    O5|t5   (O5.5)    2.001    0.068   29.223    0.000    2.001    2.001

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    Agrblns (p.1_)    1.000                               1.000    1.000
    Cnscnts (p.2_)    1.000                               1.000    1.000
    Extrvrs (p.3_)    1.000                               1.000    1.000
    Nertcsm (p.4_)    1.000                               1.000    1.000
    Opennss (p.5_)    1.000                               1.000    1.000
   .A1                0.876                               0.876    0.876
   .A2                0.558                               0.558    0.558
   .A3                0.419                               0.419    0.419
   .A4                0.730                               0.730    0.730
   .A5                0.407                               0.407    0.407
   .C1                0.640                               0.640    0.640
   .C2                0.647                               0.647    0.647
   .C3                0.701                               0.701    0.701
   .C4                0.421                               0.421    0.421
   .C5                0.496                               0.496    0.496
   .E1                0.740                               0.740    0.740
   .E2                0.490                               0.490    0.490
   .E3                0.537                               0.537    0.537
   .E4                0.471                               0.471    0.471
   .E5                0.664                               0.664    0.664
   .N1                0.244                               0.244    0.244
   .N2                0.313                               0.313    0.313
   .N3                0.447                               0.447    0.447
   .N4                0.500                               0.500    0.500
   .N5                0.683                               0.683    0.683
   .O1                0.548                               0.548    0.548
   .O2                0.820                               0.820    0.820
   .O3                0.337                               0.337    0.337
   .O4                0.976                               0.976    0.976
   .O5                0.802                               0.802    0.802

Scales y*:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    A1                1.000                               1.000    1.000
    A2                1.000                               1.000    1.000
    A3                1.000                               1.000    1.000
    A4                1.000                               1.000    1.000
    A5                1.000                               1.000    1.000
    C1                1.000                               1.000    1.000
    C2                1.000                               1.000    1.000
    C3                1.000                               1.000    1.000
    C4                1.000                               1.000    1.000
    C5                1.000                               1.000    1.000
    E1                1.000                               1.000    1.000
    E2                1.000                               1.000    1.000
    E3                1.000                               1.000    1.000
    E4                1.000                               1.000    1.000
    E5                1.000                               1.000    1.000
    N1                1.000                               1.000    1.000
    N2                1.000                               1.000    1.000
    N3                1.000                               1.000    1.000
    N4                1.000                               1.000    1.000
    N5                1.000                               1.000    1.000
    O1                1.000                               1.000    1.000
    O2                1.000                               1.000    1.000
    O3                1.000                               1.000    1.000
    O4                1.000                               1.000    1.000
    O5                1.000                               1.000    1.000

If the factor pattern is poorly represented in one group, equality tests on later parameters are difficult to interpret.

13.5 2. Threshold invariance

Following the categorical sequence, we next constrain item thresholds to equality across groups.

threshold.syntax <- semTools::measEq.syntax(
  configural.model = mod.cat,
  data = dat,
  ordered = ordered_items,
  parameterization = "delta",
  ID.fac = "std.lv",
  ID.cat = "Wu.Estabrook.2016",
  group = "gender",
  group.equal = c("configural","thresholds")
)

fit.thresholds <- lavaan::cfa(
  as.character(threshold.syntax),
  data = dat,
  group = "gender",
  ordered = ordered_items,
  estimator = "WLSMV"
)

Threshold invariance asks whether the latent response levels at which respondents move between observed categories can be treated as equivalent across groups.

13.6 3. Threshold + loading invariance

We now add equality constraints on the factor loadings.

loading.syntax <- semTools::measEq.syntax(
  configural.model = mod.cat,
  data = dat,
  ordered = ordered_items,
  parameterization = "delta",
  ID.fac = "std.lv",
  ID.cat = "Wu.Estabrook.2016",
  group = "gender",
  group.equal = c("configural","thresholds", "loadings")
)

fit.loadings <- lavaan::cfa(
  as.character(loading.syntax),
  data = dat,
  group = "gender",
  ordered = ordered_items,
  estimator = "WLSMV"
)

This model asks whether both the category thresholds and the item–factor relationships can be treated as equal across groups.

14 Compare the Models

14.1 Collect fit indices

get_fit <- function(fit) {
  lavaan::fitMeasures(
    fit,
    c(
      "chisq.scaled",
      "df.scaled",
      "pvalue.scaled",
      "cfi.scaled",
      "tli.scaled",
      "rmsea.scaled",
      "srmr"
    )
  )
}

results <- rbind(
  Configural = get_fit(fit.configural),
  Thresholds = get_fit(fit.thresholds),
  Thresholds_Loadings = get_fit(fit.loadings)
)

round(results, 3)
                    chisq.scaled df.scaled pvalue.scaled cfi.scaled tli.scaled
Configural              6087.699       530             0      0.826      0.802
Thresholds              6397.557       605             0      0.818      0.820
Thresholds_Loadings     6006.291       625             0      0.831      0.838
                    rmsea.scaled  srmr
Configural                 0.093 0.085
Thresholds                 0.089 0.085
Thresholds_Loadings        0.084 0.085

The table should be read comparatively. Ask whether progressively stronger equality constraints produce meaningful deterioration in model fit.

14.2 Scaled chi-square difference tests

lavaan::lavTestLRT(
  fit.configural,
  fit.thresholds
)
Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
fit.configural 530 NA NA 6441.668 NA NA NA NA
fit.thresholds 605 NA NA 6479.084 85.80474 0 75 0.1848805
lavaan::lavTestLRT(
  fit.thresholds,
  fit.loadings
)
Df AIC BIC Chisq Chisq diff RMSEA Df diff Pr(>Chisq)
fit.thresholds 605 NA NA 6479.084 NA NA NA NA
fit.loadings 625 NA NA 6514.606 19.73842 0.0252422 20 0.4743963

For WLSMV models, use the appropriate scaled difference-testing procedure provided by lavaan; do not manually subtract the printed chi-square statistics.

14.3 Changes in approximate fit

You can also calculate changes in CFI and RMSEA:

delta_fit <- data.frame(
  Comparison = c(
    "Thresholds - Configural",
    "Thresholds + Loadings - Thresholds"
  ),
  Delta_CFI = c(
    fitMeasures(fit.thresholds, "cfi.scaled") -
      fitMeasures(fit.configural, "cfi.scaled"),
    fitMeasures(fit.loadings, "cfi.scaled") -
      fitMeasures(fit.thresholds, "cfi.scaled")
  ),
  Delta_RMSEA = c(
    fitMeasures(fit.thresholds, "rmsea.scaled") -
      fitMeasures(fit.configural, "rmsea.scaled"),
    fitMeasures(fit.loadings, "rmsea.scaled") -
      fitMeasures(fit.thresholds, "rmsea.scaled")
  )
)

delta_fit[c("Delta_CFI", "Delta_RMSEA")] <- lapply(
  delta_fit[c("Delta_CFI", "Delta_RMSEA")],
  round,
  digits = 3
)

delta_fit
Comparison Delta_CFI Delta_RMSEA
Thresholds - Configural -0.007 -0.004
Thresholds + Loadings - Thresholds 0.013 -0.005
WarningDo not use one universal ΔCFI or ΔRMSEA cutoff

Simulation-based recommendations depend on the type of indicators, sample size, number of groups, model complexity, estimator, and the form of noninvariance. Svetina et al. (2020) summarize evidence for categorical models and show why the decision rule should match the analysis design rather than be copied from continuous-data conventions.

15 What If Full Invariance Fails?

Failure of an equality-constrained model does not necessarily mean that all group comparisons must be abandoned. The source of misfit may be a small number of items.

A partial invariance model frees selected parameters while retaining equality constraints for the remaining items. This can be useful when there is a substantive reason to believe that a small number of parameters differ across groups (Cheung & Lau, 2012).

In semTools, parameters can be released through group.partial. However, partial invariance should not become a data-driven search for a model that passes arbitrary fit cutoffs. Each freed loading or threshold should be reported and interpreted.

ImportantNoninvariance is substantive information

If an item has different thresholds or loadings across groups, that is not merely a technical obstacle. It can reveal differences in language, interpretation, response-category use, cultural meaning, or the relationship between the item and the construct. Investigating why the parameter differs is often more informative than simply freeing it.

16 What Can Be Compared at Each Stage?

Evidence obtained Comparisons that become more defensible
Similar configural structure Qualitative interpretation of the same broad construct structure
Equal loadings Factor relations and associations on a common latent scale
Equal thresholds/intercepts plus loadings Latent mean comparisons
Equal residuals as well Stronger observed-score comparability

For categorical indicators, always translate these labels back into the actual constraints imposed by the identification scheme.

17 Reporting Measurement Invariance

A transparent report should state:

  • the groups being compared;
  • the item type and estimator;
  • the factor model;
  • the categorical identification method;
  • which parameters were constrained at each step;
  • fit indices for every model;
  • the difference-testing procedure;
  • changes in approximate-fit indices;
  • any partially freed parameters; and
  • which substantive comparisons are justified by the retained level of invariance.

For this tutorial, a report could begin:

Measurement invariance of the five-factor BFI model was evaluated across gender groups using categorical multi-group CFA with WLSMV estimation. Ordered indicators were identified using the Wu–Estabrook approach. A configural model was followed by equality constraints on item thresholds and then by equality constraints on thresholds and factor loadings. Relative fit was evaluated using scaled chi-square difference tests together with changes in CFI and RMSEA.

Insert the numerical results from the fitted models before drawing a substantive conclusion.

18 Concluding Remarks

Measurement invariance is the bridge between a measurement model and a group-comparison claim. Without it, an observed difference can be ambiguous: the groups may differ on the construct, on the functioning of the indicators, or on both.

The central lesson is not to treat invariance as a sequence of software commands. Each equality constraint asks a substantive question about the measurement process. Continuous and categorical indicators require different parameterizations, and ordered categorical models require particular attention to thresholds and identification (Svetina et al., 2020; Wu & Estabrook, 2016).

A useful analysis therefore ends with more than “invariance was supported.” It states which parameters were sufficiently comparable, which were not, and what comparisons those results allow the researcher to defend.