Measurement Invariance warning- not positive definite matrix

229 views
Skip to first unread message

joana pipa

unread,
Aug 5, 2018, 1:43:29 PM8/5/18
to lavaan
Hello everyone,

I am new in testing this models and I am struggling in testing measurement invariance of one instrument. I am validating one instrument and I ran a CFA which fit indexes were quite acceptable. Now I am trying to test the measurement invariance across 3 age groups based on grade levels (3rd 5th and 7th grades). I ran the measurement invariance model and an error appeared in 4 models regarding the first group:

> mi<-  measurementInvariance (Mod.CPCQ_2, data= SENSES_var_T1_G2_CPCQ_withoutOutliers, std.lv=TRUE, strict=TRUE, group="S_GRADE_T1")

Measurement invariance models:

Model 1 : fit.configural
Model 2 : fit.loadings
Model 3 : fit.intercepts
Model 4 : fit.residuals
Model 5 : fit.means

Chi Square Difference Test

                Df   AIC   BIC   Chisq Chisq diff Df diff Pr(>Chisq)    
fit.configural 426 30029 30904  762.30                                  
fit.loadings   454 30042 30796  831.32     69.018      28   2.55e-05 ***
fit.intercepts 482 30044 30676  889.85     58.533      28  0.0006249 ***
fit.residuals  520 30192 30658 1113.26    223.411      38  < 2.2e-16 ***
fit.means      530 30289 30712 1230.81    117.550      10  < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


Fit measures:

                 cfi rmsea cfi.delta rmsea.delta
fit.configural 0.921 0.064        NA          NA
fit.loadings   0.912 0.066     0.010       0.002
fit.intercepts 0.904 0.066     0.007       0.001
fit.residuals  0.861 0.077     0.043       0.011
fit.means      0.836 0.083     0.025       0.006

Warning messages:
1: In lav_object_post_check(object) :
  lavaan WARNING: covariance matrix of latent variables
                is not positive definite in group 1;
                use inspect(fit,"cov.lv") to investigate.
2: In lav_object_post_check(object) :
  lavaan WARNING: covariance matrix of latent variables
                is not positive definite in group 1;
                use inspect(fit,"cov.lv") to investigate.
3: In lav_object_post_check(object) :
  lavaan WARNING: covariance matrix of latent variables
                is not positive definite in group 1;
                use inspect(fit,"cov.lv") to investigate.
4: In lav_object_post_check(object) :
  lavaan WARNING: covariance matrix of latent variables
                is not positive definite in group 1;
                use inspect(fit,"cov.lv") to investigate.

When looking to the fit indexes it seems that the invariance holds for the first, second and third model but given the error associated I am wondering if I can trust on these values. 
Then I run the inspect function which is bellow but I am not sure how to interpret these values and how they can help me to correct the error of non positive matrix.
Also I ran a CFA to each group separately and for the first group, although the fit indexes were quite good, an warning message regarding the covariance matrix and also the modification indexes appeared (Warning message:In lav_start_check_cov(lavpartable = lavpartable, start = START) : lavaan WARNING: starting values imply a correlation larger than 1; variables involved are: CPCQ_COOPERATION CPCQ_COHESION

Any thoughts about that? Suggestions of readings regarding this matter? I would be very grateful!
Thank you all!
Joana

> inspect(mi$fit.configural,"cov.lv") > inspect(mi$fit.loadings,"cov.lv") > inspect(mi$fit.intercepts,"cov.lv")
$`3` $`3` $`3`
                 CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM                  CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM                  CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM
CPCQ_COOPERATION  0.471                                     CPCQ_COOPERATION  0.393                                     CPCQ_COOPERATION  0.380                                    
CPCQ_CONFLICT    -0.212    0.536                            CPCQ_CONFLICT    -0.180    0.477                            CPCQ_CONFLICT    -0.178    0.478                           
CPCQ_COHESION     0.538   -0.238    0.559                   CPCQ_COHESION     0.425   -0.192    0.434                   CPCQ_COHESION     0.411   -0.189    0.415                  
CPCQ_ISOLATION   -0.103    0.322   -0.138    0.377          CPCQ_ISOLATION   -0.099    0.328   -0.132    0.438          CPCQ_ISOLATION   -0.096    0.321   -0.127    0.419         
CPCQ_COMFORT      0.214   -0.059    0.218   -0.031  0.278   CPCQ_COMFORT      0.196   -0.060    0.193   -0.041  0.277   CPCQ_COMFORT      0.189   -0.059    0.187   -0.040  0.265  
$`5` $`5` $`5`
                 CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM                  CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM                  CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM
CPCQ_COOPERATION  0.334                                     CPCQ_COOPERATION  0.439                                     CPCQ_COOPERATION  0.428                                    
CPCQ_CONFLICT    -0.178    0.329                            CPCQ_CONFLICT    -0.220    0.370                            CPCQ_CONFLICT    -0.218    0.371                           
CPCQ_COHESION     0.373   -0.226    0.548                   CPCQ_COHESION     0.433   -0.241    0.550                   CPCQ_COHESION     0.424   -0.238    0.536                  
CPCQ_ISOLATION   -0.110    0.187   -0.138    0.450          CPCQ_ISOLATION   -0.138    0.206   -0.143    0.487          CPCQ_ISOLATION   -0.133    0.201   -0.139    0.467         
CPCQ_COMFORT      0.354   -0.189    0.474   -0.177  0.691   CPCQ_COMFORT      0.458   -0.222    0.523   -0.207  0.830   CPCQ_COMFORT      0.444   -0.218    0.509   -0.198  0.801  
$`7` $`7` $`7`
                 CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM                  CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM                  CPCQ_COO CPCQ_CON CPCQ_COH CPCQ_I CPCQ_COM
CPCQ_COOPERATION  0.517                                     CPCQ_COOPERATION  0.454                                     CPCQ_COOPERATION  0.442                                    
CPCQ_CONFLICT    -0.300    0.347                            CPCQ_CONFLICT    -0.283    0.349                            CPCQ_CONFLICT    -0.280    0.350                           
CPCQ_COHESION     0.433   -0.266    0.466                   CPCQ_COHESION     0.428   -0.283    0.515                   CPCQ_COHESION     0.420   -0.281    0.506                  
CPCQ_ISOLATION   -0.173    0.150   -0.156    0.426          CPCQ_ISOLATION   -0.151    0.140   -0.150    0.378          CPCQ_ISOLATION   -0.145    0.136   -0.146    0.361         
CPCQ_COMFORT      0.463   -0.297    0.379   -0.246  0.927 CPCQ_COMFORT      0.414   -0.288    0.381   -0.216  0.811   CPCQ_COMFORT      0.402   -0.284    0.374   -0.207  0.782 

João Marôco

unread,
Aug 5, 2018, 2:00:49 PM8/5/18
to lav...@googlegroups.com
Joana, 
So you are getting negative variances and or correlations greater than one. This happens when you group sizes are small. Can you increase sample size? Otherwise you have to fix correlations /item variances. 
Best, 

João Marôco
[Sent from my not that smart smartphone with more errors than usual]

--
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 post to this group, send email to lav...@googlegroups.com.
Visit this group at https://groups.google.com/group/lavaan.
For more options, visit https://groups.google.com/d/optout.

joana pipa

unread,
Aug 5, 2018, 2:15:25 PM8/5/18
to lavaan
Dear João,

thank you! Unfortunately I cannot increase the sample size. I have 142 observations for group 1, 199 for group 2 and 236 for group 3 and the instrument has 19 itens. And indeed for group 1 the correlations between two factors are greater than 1.
Thank your your suggestions, I will try once more fixing the item variances.

Joana 

joana pipa

unread,
Aug 6, 2018, 8:35:59 AM8/6/18
to lavaan
Dear all,

in trying to overcome the issue that I explained bellow, I am using the std.lv=TRUE function in the model in order to fix the variance, but I get the same warning. Is there another specification of the model that I should use to overcome these issues and report the results? 

Thank you all
Joana 

Terrence Jorgensen

unread,
Aug 7, 2018, 8:12:04 AM8/7/18
to lavaan
indeed for group 1 the correlations between two factors are greater than 1.
I will try once more fixing the item variances.

Why?  The problem is not the variances, but the covariances/correlations.  And you should not use constrained estimation to hide the problem.


Instead, test whether it is a problem at all by looking at the CI for the correlation (when std.lv = TRUE, the factor covariance will be a correlation).  


If the CI includes plausible values (< 1), then sampling error is a plausible explanation for the out-of-bounds estimate (pretty common in small samples), so there is no need to "fix" anything by constraining your estimation (which biases your test statistic).

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

joana pipa

unread,
Aug 8, 2018, 4:52:02 AM8/8/18
to lavaan
Many thanks!
Reply all
Reply to author
Forward
0 new messages