CFA warning : model did not converge ; computation of robust CFI / RMSEA failed

611 views
Skip to first unread message

lavaan

unread,
Sep 19, 2023, 8:14:00 AM9/19/23
to lavaan
Hello everyone,
We are facing some issues conducting CFA with the lavaan package and hoped some of you might be able to help.

Context:
We are conducting a French validation study of a questionnaire (which already exists in English) that measures some features of a given behavior (e.g., awareness, controlability). It is composed of 11 or 12-items depending on its version and responses are made on 7-point Likert scales. The behavior to focus on is specified by the experimenter and can vary from study to study (e.g., some researchers might want to explore the features of smoking a cigarette whereas others might want to explore the ones of running).

We have recruited more than 500 participants for this study, who were divided into 6 subgroups that have to focus on different behaviors to respond to the questionnaire (e.g., washing hands, drinking coffee)

EFA conducted on previous studies revealed that a 3-factor solution might be suited to the data of the 11 and 12-iems versions of this questionnaire. An EFA conducted in this study, with the entire sample, also revealed that a 3-factor solution might be suited to the data, but some items are not loaded on the same factor as previously.

We have performed CFA with the entire sample regarding a one-factor model, a first 3-factor higher-order model and a first hierarchical model (based on EFA of previous studies) as well as alternative 3-factor higher-order and hierarchical models (based on EFA of this study). There was no particular problem with those analyses. However, we try to reproduce them on each subgroup and are sometimes receiving a warning "fit measures not available if model did not converge" and sometimes receiving a warning "computation of robust CFI / RMSEA failed". We would need some help to fix it.

It might be important to add two general information:
1) The EFA of this study indicates that some items loaded significantly on more than one factor.
2) Based on previous posts on this topic, we have checked the variance of each items and factors and none of them were null.


You’ll find below further information on each warning signal:

“Fit measure not available if model did not converge”
This type of warning seems to appear mainly for the higher-order model. It can appear for the 3-factor solution that is based on EFA of previous studies and not with the one that is based on EFA of this study; but also the contrary ; or both.
In each case this warning is present, it appears that the latent variable estimate of one of the three factors is especially high compared to the two other ones (e.g., 300 vs 1 or 2)


Example of code:
Ho3f_SRHI3PrendreDouche_11items <- '
Awareness =~ Q2Auto + Q3Cons + Q5Ref + Q10Pens
Controlability =~ Q4Biz + Q6Eff + Q8RendC + Q9Diff
Repetition =~  Q1Freq + Q7Rout + Q12Lgtps
SRHITotal =~ Awareness + Controlability + Repetition
Q1Freq ~~ Q2Auto
Q10Pens ~~ Q9Diff
Q8RendC ~~ Q12Lgtps'
fit_Ho3f_SRHI3PrendreDouche_11items <- cfa(Ho3f_SRHI3PrendreDouche_11items, data= Data3PrendreDouche, std.lv=T, missing='direct', estimator='MLR')
summary(fit_Ho3f_SRHI3PrendreDouche_11items, fit.measures=T)"

Results associated with this code:
Warning message:
In lavaan::lavaan(model = Ho3f_SRHI3PrendreDouche_11items, data = Data3PrendreDouche,  :
  lavaan WARNING:
    the optimizer (NLMINB) claimed the model converged, but not all
    elements of the gradient are (near) zero; the optimizer may not
    have found a local solution use check.gradient = FALSE to skip
    this check.
> summary(fit_Ho3f_SRHI3PrendreDouche_11items, fit.measures=T)
lavaan 0.6.16 did NOT end normally after 981 iterations
** WARNING ** Estimates below are most likely unreliable

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        39

  Number of observations                            83
  Number of missing patterns                         1


Parameter Estimates:

  Standard errors                             Sandwich
  Information bread                           Observed
  Observed information based on                Hessian

Latent Variables:
                    Estimate  Std.Err  z-value  P(>|z|)
  Awareness =~                                        
    Q2Auto             0.931       NA                  
    Q3Cons             1.152       NA                  
    Q5Ref              1.140       NA                  
    Q10Pens            0.808       NA                  
  Controlability =~                                    
    Q4Biz              0.633       NA                  
    Q6Eff              0.632       NA                  
    Q8RendC            0.500       NA                  
    Q9Diff             0.487       NA                  
  Repetition =~                                        
    Q1Freq             0.004       NA                  
    Q7Rout             0.004       NA                  
    Q12Lgtps           0.003       NA                  
  SRHITotal =~                                        
    Awareness          1.274       NA                  
    Controlability     2.396       NA                  
    Repetition       315.852       NA                  

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)
 .Q2Auto ~~                                          
   .Q1Freq            0.559       NA                  
 .Q10Pens ~~                                          
   .Q9Diff            1.031       NA                  
 .Q8RendC ~~                                          
   .Q12Lgtps         -0.680       NA                  

Intercepts:
                   Estimate  Std.Err  z-value  P(>|z|)
   .Q2Auto            5.277       NA                  
   .Q3Cons            4.831       NA                  
   .Q5Ref             4.916       NA                  
   .Q10Pens           4.867       NA                  
   .Q4Biz             5.169       NA                  
   .Q6Eff             4.614       NA                  
   .Q8RendC           3.976       NA                  
   .Q9Diff            5.193       NA                  
   .Q1Freq            5.639       NA                  
   .Q7Rout            5.747       NA                  
   .Q12Lgtps          5.916       NA                  
   .Awareness         0.000                          
   .Controlability    0.000                          
   .Repetition        0.000                          
    SRHITotal         0.000                          

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)
   .Q2Auto            0.945       NA                  
   .Q3Cons            0.706       NA                  
   .Q5Ref             0.763       NA                  
   .Q10Pens           1.948       NA                  
   .Q4Biz             1.003       NA                  
   .Q6Eff             1.160       NA                  
   .Q8RendC           2.262       NA                  
   .Q9Diff            2.087       NA                  
   .Q1Freq            1.383       NA                  
   .Q7Rout            1.100       NA                  
   .Q12Lgtps          1.382       NA                  
   .Awareness         1.000                          
   .Controlability    1.000                          
   .Repetition        1.000                          
    SRHITotal         1.000                          

Warning message:
In lav_object_summary(object = object, header = header, fit.measures = fit.measures,  :
  lavaan WARNING: fit measures not available if model did not converge"


“Computation of robust CFI / RMSEA failed”:
This type of warning seems to appear mainly for the hierarchical model. It can appear for the 3-factor solution that is based on EFA of previous studies and not with the one that is based on EFA of this study; but also the contrary ; or both.

Example of code :
Hierar3fAlt_SRHI3LaverMain_11items <- 'SRHI =~ Q1Freq + Q2Auto + Q3Cons + Q4Biz + Q5Ref+ Q6Eff + Q7Rout + Q8RendC + Q9Diff + Q10Pens + Q12Lgtps
Awareness =~  Q3Cons + Q5Ref + Q8RendC + Q10Pens
Controlability =~ Q4Biz + Q6Eff + Q9Diff
Repetition =~  Q1Freq + Q2Auto + Q7Rout + Q12Lgtps
Q8RendC ~~ Q1Freq
Q8RendC ~~ Q12Lgtps
Q8RendC ~~ Q6Eff'
fit_Hierar3fAlt_SRHI3LaverMain_11items <- cfa(Hierar3fAlt_SRHI3LaverMain_11items, data= Data3LaverMain, std.lv=T, missing='direct', estimator='MLR', orthogonal=T)
summary(fit_Hierar3fAlt_SRHI3LaverMain_11items, fit.measures=T)

Results associated with this code:

Warning message:
In lav_object_post_check(object) :
  lavaan WARNING: some estimated ov variances are negative
> summary(fit_Hierar3fAlt_SRHI3LaverMain_11items, fit.measures=T)
lavaan 0.6.16 ended normally after 7826 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        47

  Number of observations                            85
  Number of missing patterns                         1

Model Test User Model:
                                              Standard      Scaled
  Test Statistic                                46.988      36.878
  Degrees of freedom                                30          30
  P-value (Chi-square)                           0.025       0.181
  Scaling correction factor                                  1.274
    Yuan-Bentler correction (Mplus variant)                      

Model Test Baseline Model:

  Test statistic                               651.200     479.263
  Degrees of freedom                                55          55
  P-value                                        0.000       0.000
  Scaling correction factor                                  1.359

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.972       0.984
  Tucker-Lewis Index (TLI)                       0.948       0.970
                                                                 
  Robust Comparative Fit Index (CFI)                            NA
  Robust Tucker-Lewis Index (TLI)                               NA

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -1453.129   -1453.129
  Scaling correction factor                                  1.241
      for the MLR correction                                      
  Loglikelihood unrestricted model (H1)      -1429.635   -1429.635
  Scaling correction factor                                  1.254
      for the MLR correction                                      
                                                                 
  Akaike (AIC)                                3000.257    3000.257
  Bayesian (BIC)                              3115.062    3115.062
  Sample-size adjusted Bayesian (SABIC)       2966.786    2966.786

Root Mean Square Error of Approximation:

  RMSEA                                          0.082       0.052
  90 Percent confidence interval - lower         0.030       0.000
  90 Percent confidence interval - upper         0.125       0.097
  P-value H_0: RMSEA <= 0.050                    0.128       0.446
  P-value H_0: RMSEA >= 0.080                    0.554       0.171
                                                                 
  Robust RMSEA                                                  NA
  90 Percent confidence interval - lower                        NA
  90 Percent confidence interval - upper                        NA
  P-value H_0: Robust RMSEA <= 0.050                            NA
  P-value H_0: Robust RMSEA >= 0.080                            NA

Standardized Root Mean Square Residual:

  SRMR                                           0.036       0.036

Parameter Estimates:

  Standard errors                             Sandwich
  Information bread                           Observed
  Observed information based on                Hessian

Latent Variables:
                    Estimate   Std.Err  z-value  P(>|z|)
  SRHI =~                                              
    Q1Freq              0.864    0.179    4.834    0.000
    Q2Auto              1.072    0.154    6.980    0.000
    Q3Cons              1.303    0.117   11.138    0.000
    Q4Biz               1.192    0.162    7.355    0.000
    Q5Ref               1.234    0.131    9.399    0.000
    Q6Eff               0.939    0.202    4.640    0.000
    Q7Rout              1.037    0.176    5.879    0.000
    Q8RendC             1.298    0.153    8.487    0.000
    Q9Diff              1.223    0.127    9.644    0.000
    Q10Pens             1.428    0.105   13.591    0.000
    Q12Lgtps            0.980    0.175    5.603    0.000
  Awareness =~                                          
    Q3Cons              0.593    0.270    2.198    0.028
    Q5Ref               0.400    0.229    1.752    0.080
    Q8RendC             0.643    0.302    2.126    0.033
    Q10Pens            -0.298    0.271   -1.102    0.271
  Controlability =~                                    
    Q4Biz               0.518    0.343    1.512    0.131
    Q6Eff               1.337    0.736    1.817    0.069
    Q9Diff              0.284    0.165    1.718    0.086
  Repetition =~                                        
    Q1Freq             35.747    0.532   67.148    0.000
    Q2Auto              0.008    0.004    2.161    0.031
    Q7Rout              0.005    0.003    1.517    0.129
    Q12Lgtps            0.010    0.003    3.629    0.000

Covariances:
                    Estimate   Std.Err  z-value  P(>|z|)
 .Q1Freq ~~                                            
   .Q8RendC            -0.379    0.135   -2.810    0.005
 .Q8RendC ~~                                            
   .Q12Lgtps           -0.354    0.153   -2.311    0.021
 .Q6Eff ~~                                              
   .Q8RendC             0.362    0.276    1.315    0.188
  SRHI ~~                                              
    Awareness           0.000                          
    Controlability      0.000                          
    Repetition          0.000                          
  Awareness ~~                                          
    Controlability      0.000                          
    Repetition          0.000                          
  Controlability ~~                                    
    Repetition          0.000                          

Intercepts:
                   Estimate   Std.Err  z-value  P(>|z|)
   .Q1Freq             5.929    0.141   42.062    0.000
   .Q2Auto             5.494    0.151   36.329    0.000
   .Q3Cons             5.035    0.186   27.129    0.000
   .Q4Biz              4.812    0.189   25.415    0.000
   .Q5Ref              5.141    0.168   30.573    0.000
   .Q6Eff              4.282    0.220   19.478    0.000
   .Q7Rout             5.576    0.162   34.501    0.000
   .Q8RendC            4.294    0.208   20.676    0.000
   .Q9Diff             5.400    0.163   33.091    0.000
   .Q10Pens            5.412    0.175   30.972    0.000
   .Q12Lgtps           5.847    0.143   40.990    0.000
    SRHI               0.000                          
    Awareness          0.000                          
    Controlability     0.000                          
    Repetition         0.000                          

Variances:
                   Estimate   Std.Err  z-value  P(>|z|)
   .Q1Freq         -1276.941   38.136  -33.484    0.000
   .Q2Auto             0.796    0.191    4.161    0.000
   .Q3Cons             0.878    0.318    2.756    0.006
   .Q4Biz              1.358    0.378    3.592    0.000
   .Q5Ref              0.720    0.188    3.823    0.000
   .Q6Eff              1.439    1.994    0.722    0.471
   .Q7Rout             1.146    0.365    3.139    0.002
   .Q8RendC            1.481    0.375    3.954    0.000
   .Q9Diff             0.687    0.179    3.837    0.000
   .Q10Pens            0.466    0.239    1.949    0.051
   .Q12Lgtps           0.768    0.110    6.999    0.000
    SRHI               1.000                          
    Awareness          1.000                          
    Controlability     1.000                          
    Repetition         1.000                          

Warning messages:
1: In lav_fit_cfi_lavobject(lavobject = object, fit.measures = fit.measures,  :
  lavaan WARNING: computation of robust CFI failed.
2: In lav_fit_rmsea_lavobject(lavobject = object, fit.measures = fit.measures,  :
  lavaan WARNING: computation of robust RMSEA failed.

Questions: 
Do some of you have an idea of where those problems might come from, how we can confirm that they come from there, and how we can fix them?

Thank you for the time you will dedicate to this message,
Sincerely yours,
Nicolas Kaczmarek

Edward Rigdon

unread,
Sep 19, 2023, 9:06:06 AM9/19/23
to lav...@googlegroups.com
I think this is an example of a "nearly not identified" model. Statistical identification has to do with whether one unique best solution exists for a model's parameters, given data and estimator. But this is not a 0 / 1 decision. Identification can hinge on whether a given parameter is "large" or is "near 0," with "large" and "near" being matters of degree. The small sample sizes for the individual behaviors make this situation more likely in your case.

Other elements that make an identification problem more likely in your case are using a higher order factor model with only 3 first order factors and the inclusion of free residual covariances in a factor model with not too many observed variables per factor. For the second order factor model to be statistically identified, the three first order factors must all load strongly on it--with a higher bar here given the low sample size. If any one loading is low, identification can fail. My first suggestion is to set aside the higher order factor structure until you resolve any other problems. A simple correlated factors model will be empirically identical to the higehr order factor model, in your situation, but will b e less prone to identification problems.

In addition, the "Repetition" factor has only 3 indicators, and two of those have free residual covariances. The free residual covariances make the identification of the Repetition factor doubtful, and this might be the core problem. Notice the near-zero loadings on that factor. (Unstandardized parameter estimates can be hard to interpret, but your factors have variances of 1, and your indicators have finite variances given that they come from 7 point Likert type scales.) So you might also try estimating a model without the residual covariances relating to Q1Freq and Q12Lgtps, to see if that will lead to a converged solution.

Combining responses regarding different behaviors may be inappropriate. This fixed coefficient model assumes all parameters have equal values across all respondents. If parameters vary across behaviors, then the output from the combined sampels may not be a good guide to what you will get from separate subsamples.


--
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 on the web visit https://groups.google.com/d/msgid/lavaan/e2c536ab-7a30-4faf-8200-073985351b92n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages