1

What is the reason for CFI=0 in a sem model in Lavaan. Statistic values are attached Here is the statistic values

Stat009
  • 45
  • 1
  • 5

1 Answers1

1

Well, first let's check how does the CFI estimator works:

enter image description here

Usually, SEM programs do not present CFI values below 0, as such if a negative value is obtained, the software shows 0.

An example:

library(lavaan)
#> This is lavaan 0.6-8
#> lavaan is FREE software! Please report any bugs.
HS.model <- ' visual  =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed   =~ x7 + x8 + x9 '

fit <- cfa(HS.model, data = HolzingerSwineford1939)

summary(fit, fit.measures = TRUE)
#> lavaan 0.6-8 ended normally after 35 iterations
#> 
#>   Estimator                                         ML
#>   Optimization method                           NLMINB
#>   Number of model parameters                        21
#>                                                       
#>   Number of observations                           301
#>                                                       
#> Model Test User Model:
#>                                                       
#>   Test statistic                                85.306
#>   Degrees of freedom                                24
#>   P-value (Chi-square)                           0.000
#> 
#> Model Test Baseline Model:
#> 
#>   Test statistic                               918.852
#>   Degrees of freedom                                36
#>   P-value                                        0.000
#> 
#> User Model versus Baseline Model:
#> 
#>   Comparative Fit Index (CFI)                    0.931
#>   Tucker-Lewis Index (TLI)                       0.896
#> 
#> Loglikelihood and Information Criteria:
#> 
#>   Loglikelihood user model (H0)              -3737.745
#>   Loglikelihood unrestricted model (H1)      -3695.092
#>                                                       
#>   Akaike (AIC)                                7517.490
#>   Bayesian (BIC)                              7595.339
#>   Sample-size adjusted Bayesian (BIC)         7528.739
#> 
#> Root Mean Square Error of Approximation:
#> 
#>   RMSEA                                          0.092
#>   90 Percent confidence interval - lower         0.071
#>   90 Percent confidence interval - upper         0.114
#>   P-value RMSEA <= 0.05                          0.001
#> 
#> Standardized Root Mean Square Residual:
#> 
#>   SRMR                                           0.065
#> 
#> Parameter Estimates:
#> 
#>   Standard errors                             Standard
#>   Information                                 Expected
#>   Information saturated (h1) model          Structured
#> 
#> Latent Variables:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   visual =~                                           
#>     x1                1.000                           
#>     x2                0.554    0.100    5.554    0.000
#>     x3                0.729    0.109    6.685    0.000
#>   textual =~                                          
#>     x4                1.000                           
#>     x5                1.113    0.065   17.014    0.000
#>     x6                0.926    0.055   16.703    0.000
#>   speed =~                                            
#>     x7                1.000                           
#>     x8                1.180    0.165    7.152    0.000
#>     x9                1.082    0.151    7.155    0.000
#> 
#> Covariances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>   visual ~~                                           
#>     textual           0.408    0.074    5.552    0.000
#>     speed             0.262    0.056    4.660    0.000
#>   textual ~~                                          
#>     speed             0.173    0.049    3.518    0.000
#> 
#> Variances:
#>                    Estimate  Std.Err  z-value  P(>|z|)
#>    .x1                0.549    0.114    4.833    0.000
#>    .x2                1.134    0.102   11.146    0.000
#>    .x3                0.844    0.091    9.317    0.000
#>    .x4                0.371    0.048    7.779    0.000
#>    .x5                0.446    0.058    7.642    0.000
#>    .x6                0.356    0.043    8.277    0.000
#>    .x7                0.799    0.081    9.823    0.000
#>    .x8                0.488    0.074    6.573    0.000
#>    .x9                0.566    0.071    8.003    0.000
#>     visual            0.809    0.145    5.564    0.000
#>     textual           0.979    0.112    8.737    0.000
#>     speed             0.384    0.086    4.451    0.000

As you can see your model's X² is 85.306, with 24 degrees of freedom, and the baseline model has 918.852, with 36 degrees of freedom. With that we can easily calculate CFI by hand:


1-((85.306-24)/(918.852-36))
#> [1] 0.9305591

Which you can compare with the CFI reported by the summary() function (i.e., 0.931).

The model reported by you allows us to check that your CFI would be negative if the software did not limit it to 0.

1-((5552.006-94)/(3181.455-21))
#> [1] -0.7269684

Created on 2021-03-27 by the reprex package (v1.0.0)

Sinval
  • 1,315
  • 1
  • 16
  • 25
  • Does a CFI value less than 0 means my model is not a good fit? – Stat009 Mar 29 '21 at 07:39
  • Yes, very poor fit. If my answer solves your question, please mark it as solved. – Sinval Mar 29 '21 at 08:40
  • I have come across a article which says, CFI, TLI, and other incremental fit indices may not be very informative because the baseline model's RMSEA < 0.158 (Kenny, Kaniskan, & McCoach, 2015). In my analysis the baseline model's RMSEA = 0.08645056. Does it means my model is good. If not what can be done in such situations. – Stat009 Mar 29 '21 at 09:20
  • You should not rely on a single GoF, instead, you should evaluate your model fit to the data based on different types of GoFs. From what I can see your RMSEA is good, however, your χ² test is statistically significant, CFI and TLI are unacceptable.. I would not consider the global fit as acceptable. So, your data does not fit well with your model. You might consider changing the model, but it must be based on theoretical considerations. – Sinval Mar 29 '21 at 09:57