Identification and convergence problems - bifactor CFA, ordinal WLSMV

29 views
Skip to first unread message

Gechchheng Chhay

unread,
Aug 21, 2026, 11:38:30 AM (5 days ago) Aug 21
to lavaan

Hi all,

I'm trying to estimate bi-factor CFA for 10 short 5-point likert scales (6-10 items) in lavaan. my main goal is MGCFA. But I'm consistently running into identification/convergence problems. I'm not sure if the issue with my specification or the data itself (N =480). 2 of the scales did terminate normally with excellent global fit, but some parameter estimates appear unstable. 

For example, one 7-item scale is specified as:

CAT_UB_model_bif2 <- ' CAT_UB =~ ub1 + ub2 + ub3 + ub4 + ub5 + ub6 + ub7
 clrvyn =~ ub1 + ub4 + ub5 + ub6
 sprpw_b =~ ub2 + ub3 + ub7 '

CAT_UB_bif2 <- cfa( CAT_UB_model_bif2, data = catpd, ordered = TRUE, estimator = "WLSMV", parameterization = "theta", orthogonal = TRUE, std.lv = TRUE, missing = "pairwise" )


Output: 

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  CAT_UB =~                                                            
    ub1               2.901   37.050    0.078    0.938    2.901    0.767
    ub2               0.884    0.134    6.583    0.000    0.884    0.608
    ub3               1.581    0.336    4.703    0.000    1.581    0.688
    ub4               2.351    0.789    2.978    0.003    2.351    0.915
    ub5               2.006    0.750    2.676    0.007    2.006    0.893
    ub6               2.299    0.696    3.306    0.001    2.299    0.912
    ub7               0.573    0.110    5.217    0.000    0.573    0.411
  clrvyn =~                                                            
    ub1              -2.208   33.953   -0.065    0.948   -2.208   -0.584
    ub4               0.276    0.752    0.367    0.714    0.276    0.107
    ub5              -0.138    0.452   -0.305    0.760   -0.138   -0.061
    ub6               0.266    0.642    0.414    0.679    0.266    0.105
  sprpw_b =~                                                            
    ub2               0.576    0.135    4.276    0.000    0.576    0.396
    ub3               1.333    0.440    3.029    0.002    1.333    0.580
    ub7               0.782    0.194    4.028    0.000    0.782    0.562


These were the warnings I recieved: 

  • optimizer failing to find a solution
  • inability to invert the information matrix / calculate SEs
  • non-positive-definite latent covariance matrices
  • negative latent variances
  • or apparent convergence accompanied by implausible estimates/NA standard errors


I have also followed youtube videos and used advice from previous threads (e.g., using diff item identification, constrain loadings, orthogonal = TRUE), but no luck so far. 

Any advice is appriciated. 


Thank you, 

Cheng




Edward Rigdon

unread,
Aug 21, 2026, 12:54:12 PM (5 days ago) Aug 21
to lav...@googlegroups.com
Cheng--
Yes, it looks like the model is not identified given your data.
With orthogonal factors, identification will require that each factor
have at least 3 indicators with "strong" loadings.The clrvyn factor
appears to not have 3 indicators with strong loadings, judging from
the fully standardized loadings.
The fully standardized loadings for ub4, ub5 and ub6 on the FIRST
factor are very strong--around 0.9, meaning that the first factor
already accounts for 0.9 squared = 81% of each indicator's variance.
That leaves only 19% of their variance to be accounted for by the
second factor plus their residual variance. It is possible that the
model will achieve identification, but residual variance must be very
small.
It might be easier to gain convergence and empirical
identification (that is, identification given the particulars of the
dataset) if you allow the second and third factors to covary. This
would reduce the number of strong loadings needed per factor. Using
marker variables or even starting values may also help to give the
optimizer some direction and save some iterations--that is, get you
closer to a converged solution. As things stand, the opti mizer is
indifferent between positive and negative signs for loadings, and that
can be a time-waster.
If you have potential subpopulations, estimate the model using
only one (believed to be) homogeneous subpopulation at a time. data at
a time. That may reduce uncertainty around parameter estimates.
It can happen that some dimensions exist for some subgroups but
not others. I would call that a potentially important finding.
--Ed Rigdon
> --
> You received this message because you are subscribed to the Google Groups "lavaan" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/lavaan/97e2d159-13ee-4393-800b-9ba7592312f1n%40googlegroups.com.

Gechchheng Chhay

unread,
Aug 24, 2026, 7:15:10 PM (2 days ago) Aug 24
to lavaan

Hi Rodger, 


It seems like the issue is with the bifactor models themselves. Since none of the suggested solutions have worked and it doesn’t appear to be a lavaan-specific issue, I’ll leave it at that for now.


Thanks so much for your help.

- Cheng

Reply all
Reply to author
Forward
0 new messages