CFA/SEM – Fixing Second-order Factor Loadings to Equal Across All Second-order Factors

confirmatory-factorconstraintidentifiabilitylavaanstructural-equation-modeling

I am conducting a CFA followed up by a SEM analysis. In my original model I had 13 latent variables. As some of these were highly correlated, I created second-order factors, of which 3 are indicated by just two first-order factors.

As recommend by e.g. Rex Kline and Timothy Brown, I fixed the factor loadings of the first-order factors to equality in the case of only two first-order indicators. However, this results in a negative residual variance in one of these first-order factors (disapprovalTarget, variance = -0.024). The model fit is overall good (robust TLI > .9, robust RMSEA = .053)

To try things out, I removed the equality constraints on disapprovalTarget but only fixed the factor loading of disapprovalTarget on 1, letting the other factor loading to be freely estimated. To my surprise, this resulted in an identified model without negative variances. When I also removed the equality constraints on the other factors, it still resulted in an identified model, while in the books I read you need to impose equality constraints to get an identified model.

Can someone explain why I do get an identified model? I'll post my R code below.

CFA <- '
climate_f =~ climate_items_1 + climate_items_2 + climate_items_3 + 
           climate_items_4 + climate_items_5 + climate_items_6
belonging_f =~ incl_1 + incl_2 + incl_3 + incl_4
authenticity_f =~ incl_5 + incl_6 + incl_7 + incl_8

inclusion_f =~ f1*belonging_f + authenticity_f

uncertaintyTarget_f =~ uncertainty_1 + uncertainty_2 + uncertainty_3 + uncertainty_4 
uncertaintyColleague_f =~ uncertainty_5 + uncertainty_6 + uncertainty_7 + uncertainty_8
trustTarget_f =~ trust_1 + trust_2 + trust_3 + trust_4         
trustColleague_f =~ trust_5 + trust_6 + trust_7 + trust_8 
disapprovalTarget_f =~ disapproval_1 + disapproval_2 + disapproval_3 + disapproval_4 
disapprovalColleague_f =~ disapproval_5 + disapproval_6 + disapproval_7 + disapproval_8          
interactionTarget_f =~ interaction_1 + interaction_2 + interaction_3 + interaction_4 + interaction_5 + interaction_6
interactionColleague_f =~ interaction_7 + interaction_8 + interaction_9 + interaction_10 + interaction_11 + interaction_12

uncertainty_f =~ f2*uncertaintyTarget_f + uncertaintyColleague_f
disapproval_f =~ f3*disapprovalTarget_f + disapprovalColleague_f

trustint =~ trustTarget_f + trustColleague_f + interactionTarget_f + interactionColleague_f'

Best Answer

The beginning of Steiger's (2002) paper explains this phenomenon. Actually, the issue of 2-indicator factors being empirically identified depends on how highly a 2-indicator factor is correlated with other factors in the same model. Larger correlations yield better empirical identification. Steiger lays out the math, showing that 2 loadings/factor are a function of correlations between indicators within and across factors. So as long as the across-factor correlations are sufficiently large, there is enough information in the data to estimate both loadings without an equality constraint.

Steiger, J. H. (2002). When constraints interact: A caution about reference variables, identification constraints, and scale dependencies in structural equation modeling. Psychological methods, 7(2), 210–227. https://doi.org/10.1037/1082-989X.7.2.210