MG-CFA: Second order factor model with two first order factors

47 views
Skip to first unread message

carole

unread,
Aug 11, 2026, 12:31:52 PMAug 11
to lavaan
Hi everyone, 

I am currently working on a multigroup analysis using ordinal data (four answer categories) with the aim of comparing the latent mean of a higher order factor (HOF) between two groups.

My current model consists of one higher order factor and two latent variables (for theoretical reasons; I have tested it against a model with one first order factor). To identify this model I have set the loading of HOF =~1*LV1 and the variance of HOF to 1. 

I have manually adapted the syntax provided by measEq to follow Wu & Estabrook's for this model, but I run into some particularities: 

For metric invariance, I cannot meaningfully compare metric invariance of the first order part against metric invariance of the first order + second order part of the model because while I'm constraining LV2, I have to free HOF~~ c(1, 1)*HOF. This somewhat makes sense to me. 

For scalar invariance, however, I get a bit lost on what to do and why. I've constrained the thresholds across groups, I've constrained the loadings across groups, I've constrained the indicator intercepts across groups. I can run a model which is specified as follows to establish scalar invariance at the level of the LVs:
  1. ## LATENT MEANS/INTERCEPTS:
    HOF ~ c(0, 0)*1 + c(alpha.1.g1, alpha.1.g2)*1
    LV1 ~ c(0, NA)*1 + c(alpha.2.g1, alpha.2.g2)*1
    LV2 ~ c(0, NA)*1 + c(alpha.3.g1, alpha.3.g2)*1 

    ## COMMON-FACTOR VARIANCES:
    HOF ~~ c(1, NA)*HOF + c(psi.1_1.g1, psi.1_1.g2)*HOF
    LV1 ~~ c(1, NA)*LV1 + c(psi.2_2.g1, psi.2_2.g2)*LV1
    LV2 ~~ c(1, NA)*LV2 + c(psi.3_3.g1, psi.3_3.g2)*LV2

 However, the only syntax that seems to work for freeing the latent means of HOF is to set both LV1~ and LV2~ to be 0 in both groups. This fits fine, but this does not seem right to me? I tried setting LV1~ to 0 and having LV2~ constrained across groups and freely estimated, however, lavaan tells me that it runs into an identification issue then?

Any help/ insights on this are much appreciated! I know it's a bit of an artificial model, so I am considering to change it to a regular two factor model. 

I've only included the relevant parts of the syntax here. Other than this I am using WLSMV as an estimator, comparing two groups against each other, and have specified my indicators as being ordered. If it'd help I can of course share the rest of the syntax. 

Terrence Jorgensen

unread,
Nov 13, 2026, 8:24:00 AM (2 days ago) Nov 13
to lavaan
the only syntax that seems to work for freeing the latent means of HOF is to set both LV1~ and LV2~ to be 0 in both groups. This fits fine, but this does not seem right to me?

It is right.  You can't estimate both LV1 ~ 1 parameters under an equality constraint because that parameter is fixed to 0 in the first condition.  Thus, equating the second conditions LV1 ~ 1 implies you must also fix it to 0.

Terrence D. Jorgensen
Assistant Professor, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam

Reply all
Reply to author
Forward
0 new messages