Background

more based on results

  • Rather than fixing the first factor at 1, which is the default, I’d suggest fixing the variance of the latent factor at 1 and freely estimating all factor loadings.
  • Basically, I would make sure that you really want to estimate all three dimensions, and probably test the fit of that against simpler models. Even if you have strong theory for all three dimensions, the data often don’t align with your hypothesis for dimensionality, and if it does that’s great evidence that it really is three dimensional.

To do

  • understand what the three dimensions that are estimated are telling us:
    • factor loadings
    • factor variance
    • item intercepts
  • compare models
    • estimating versus fixing certain parameters

Loading, setting up

library(tidyverse)
library(haven)
library(lavaan)

d <- read_sav("FINAL_EFA_DATA_USETHIS.sav")

Model from final EFA

mod <- 'fac1 =~ CPB25 + CPB42 + CPB8 + CPB24 + CPB7 + CPB6 + CPB9 + CPB15 + CPB13 + CPB35 + CPB41 + CPB31 + CPB44 + CPB11 + CPB27 + CPB30 + CPB29 + CPB21

fac2 =~ CPB12 + CPB26 + CPB1 + CPB5 + CPB10 + CPB17

fac3 =~ + CPB16 + CPB36 + CPB45 + CPB47 + CPB32 + CPB23 + CPB34 + CPB4 + CPB28 + CPB34 + CPB22
'

fit <- cfa(mod, data = d,
           ordered=c("CPB1","CPB4","CPB5","CPB6",
                     "CPB7","CPB8","CPB9","CPB10",
                     "CPB11","CPB12","CPB13","CPB15",
                     "CPB16","CPB17","CPB18","CPB19",
                     "CPB20","CPB21","CPB22","CPB23",
                     "CPB24","CPB25","CPB26","CPB27",
                     "CPB28","CPB29","CPB30","CPB31",
                     "CPB32","CPB33","CPB34","CPB35",
                     "CPB36","CPB37","CPB3_A","CPB40",
                     "CPB41","CPB42","CPB43","CPB44",
                     "CPB45","CPB47","CPB48"))
## Warning in lav_object_post_check(object): lavaan WARNING: some estimated ov
## variances are negative
summary(fit, fit.measures = T)
## lavaan 0.6-7 ended normally after 45 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of free parameters                         71
##                                                       
##                                                   Used       Total
##   Number of observations                           452         503
##                                                                   
## Model Test User Model:
##                                               Standard      Robust
##   Test Statistic                              1005.615     892.629
##   Degrees of freedom                               524         524
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.616
##   Shift parameter                                          270.287
##        simple second-order correction                             
## 
## Model Test Baseline Model:
## 
##   Test statistic                             10545.801    4887.312
##   Degrees of freedom                               561         561
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  2.308
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.952       0.915
##   Tucker-Lewis Index (TLI)                       0.948       0.909
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.045       0.039
##   90 Percent confidence interval - lower         0.041       0.035
##   90 Percent confidence interval - upper         0.049       0.044
##   P-value RMSEA <= 0.05                          0.972       1.000
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.124       0.124
## 
## Parameter Estimates:
## 
##   Standard errors                           Robust.sem
##   Information                                 Expected
##   Information saturated (h1) model        Unstructured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   fac1 =~                                             
##     CPB25             1.000                           
##     CPB42             1.024    0.052   19.779    0.000
##     CPB8              0.998    0.055   18.276    0.000
##     CPB24             0.866    0.053   16.233    0.000
##     CPB7              0.991    0.052   19.112    0.000
##     CPB6              0.957    0.053   17.938    0.000
##     CPB9              0.930    0.057   16.177    0.000
##     CPB15             0.856    0.054   15.980    0.000
##     CPB13             0.696    0.084    8.281    0.000
##     CPB35             0.841    0.057   14.640    0.000
##     CPB41             0.749    0.069   10.822    0.000
##     CPB31             0.964    0.058   16.564    0.000
##     CPB44             0.604    0.086    7.054    0.000
##     CPB11             0.638    0.067    9.581    0.000
##     CPB27             0.501    0.071    7.064    0.000
##     CPB30             0.772    0.070   11.019    0.000
##     CPB29             0.505    0.080    6.298    0.000
##     CPB21             0.615    0.073    8.445    0.000
##   fac2 =~                                             
##     CPB12             1.000                           
##     CPB26             1.000    0.392    2.549    0.011
##     CPB1              0.308    0.256    1.204    0.229
##     CPB5              2.091    0.692    3.022    0.003
##     CPB10             0.810    0.403    2.008    0.045
##     CPB17             0.296    0.234    1.265    0.206
##   fac3 =~                                             
##     CPB16             1.000                           
##     CPB36             0.754    0.132    5.731    0.000
##     CPB45             0.783    0.121    6.450    0.000
##     CPB47             0.759    0.114    6.681    0.000
##     CPB32             0.585    0.117    5.005    0.000
##     CPB23             1.001    0.129    7.731    0.000
##     CPB34             0.897    0.126    7.125    0.000
##     CPB4              0.415    0.107    3.884    0.000
##     CPB28             0.826    0.119    6.938    0.000
##     CPB22             0.956    0.124    7.686    0.000
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   fac1 ~~                                             
##     fac2              0.227    0.076    2.987    0.003
##     fac3              0.335    0.044    7.540    0.000
##   fac2 ~~                                             
##     fac3              0.076    0.053    1.438    0.150
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .CPB25             0.000                           
##    .CPB42             0.000                           
##    .CPB8              0.000                           
##    .CPB24             0.000                           
##    .CPB7              0.000                           
##    .CPB6              0.000                           
##    .CPB9              0.000                           
##    .CPB15             0.000                           
##    .CPB13             0.000                           
##    .CPB35             0.000                           
##    .CPB41             0.000                           
##    .CPB31             0.000                           
##    .CPB44             0.000                           
##    .CPB11             0.000                           
##    .CPB27             0.000                           
##    .CPB30             0.000                           
##    .CPB29             0.000                           
##    .CPB21             0.000                           
##    .CPB12             0.000                           
##    .CPB26             0.000                           
##    .CPB1              0.000                           
##    .CPB5              0.000                           
##    .CPB10             0.000                           
##    .CPB17             0.000                           
##    .CPB16             0.000                           
##    .CPB36             0.000                           
##    .CPB45             0.000                           
##    .CPB47             0.000                           
##    .CPB32             0.000                           
##    .CPB23             0.000                           
##    .CPB34             0.000                           
##    .CPB4              0.000                           
##    .CPB28             0.000                           
##    .CPB22             0.000                           
##     fac1              0.000                           
##     fac2              0.000                           
##     fac3              0.000                           
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     CPB25|t1         -0.106    0.059   -1.785    0.074
##     CPB42|t1          0.258    0.060    4.318    0.000
##     CPB8|t1           0.304    0.060    5.067    0.000
##     CPB24|t1         -0.162    0.059   -2.724    0.006
##     CPB7|t1          -0.264    0.060   -4.412    0.000
##     CPB6|t1          -0.522    0.062   -8.413    0.000
##     CPB9|t1           0.441    0.061    7.210    0.000
##     CPB15|t1          0.022    0.059    0.376    0.707
##     CPB13|t1          1.124    0.075   15.030    0.000
##     CPB35|t1         -0.235    0.060   -3.943    0.000
##     CPB41|t1          0.768    0.066   11.672    0.000
##     CPB31|t1         -0.935    0.069  -13.473    0.000
##     CPB44|t1          1.007    0.071   14.121    0.000
##     CPB11|t1         -0.067    0.059   -1.128    0.260
##     CPB27|t1         -0.083    0.059   -1.409    0.159
##     CPB30|t1         -0.681    0.064  -10.602    0.000
##     CPB29|t1          0.806    0.067   12.111    0.000
##     CPB21|t1          0.580    0.063    9.240    0.000
##     CPB12|t1          2.218    0.158   14.029    0.000
##     CPB26|t1          1.867    0.117   15.987    0.000
##     CPB1|t1           1.178    0.077   15.377    0.000
##     CPB5|t1           2.056    0.136   15.073    0.000
##     CPB10|t1          1.779    0.109   16.276    0.000
##     CPB17|t1          1.616    0.098   16.553    0.000
##     CPB16|t1         -1.063    0.073  -14.587    0.000
##     CPB36|t1         -1.054    0.073  -14.511    0.000
##     CPB45|t1         -0.429    0.061   -7.024    0.000
##     CPB47|t1          0.345    0.060    5.721    0.000
##     CPB32|t1         -0.547    0.062   -8.781    0.000
##     CPB23|t1         -0.387    0.061   -6.373    0.000
##     CPB34|t1         -0.229    0.060   -3.849    0.000
##     CPB4|t1          -0.423    0.061   -6.932    0.000
##     CPB28|t1         -0.044    0.059   -0.752    0.452
##     CPB22|t1          0.333    0.060    5.534    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .CPB25             0.355                           
##    .CPB42             0.324                           
##    .CPB8              0.357                           
##    .CPB24             0.516                           
##    .CPB7              0.366                           
##    .CPB6              0.409                           
##    .CPB9              0.442                           
##    .CPB15             0.527                           
##    .CPB13             0.687                           
##    .CPB35             0.544                           
##    .CPB41             0.638                           
##    .CPB31             0.401                           
##    .CPB44             0.764                           
##    .CPB11             0.737                           
##    .CPB27             0.838                           
##    .CPB30             0.615                           
##    .CPB29             0.836                           
##    .CPB21             0.756                           
##    .CPB12             0.662                           
##    .CPB26             0.662                           
##    .CPB1              0.968                           
##    .CPB5             -0.479                           
##    .CPB10             0.778                           
##    .CPB17             0.970                           
##    .CPB16             0.517                           
##    .CPB36             0.725                           
##    .CPB45             0.704                           
##    .CPB47             0.722                           
##    .CPB32             0.835                           
##    .CPB23             0.516                           
##    .CPB34             0.612                           
##    .CPB4              0.917                           
##    .CPB28             0.671                           
##    .CPB22             0.559                           
##     fac1              0.645    0.050   12.887    0.000
##     fac2              0.338    0.204    1.659    0.097
##     fac3              0.483    0.097    4.980    0.000
## 
## Scales y*:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     CPB25             1.000                           
##     CPB42             1.000                           
##     CPB8              1.000                           
##     CPB24             1.000                           
##     CPB7              1.000                           
##     CPB6              1.000                           
##     CPB9              1.000                           
##     CPB15             1.000                           
##     CPB13             1.000                           
##     CPB35             1.000                           
##     CPB41             1.000                           
##     CPB31             1.000                           
##     CPB44             1.000                           
##     CPB11             1.000                           
##     CPB27             1.000                           
##     CPB30             1.000                           
##     CPB29             1.000                           
##     CPB21             1.000                           
##     CPB12             1.000                           
##     CPB26             1.000                           
##     CPB1              1.000                           
##     CPB5              1.000                           
##     CPB10             1.000                           
##     CPB17             1.000                           
##     CPB16             1.000                           
##     CPB36             1.000                           
##     CPB45             1.000                           
##     CPB47             1.000                           
##     CPB32             1.000                           
##     CPB23             1.000                           
##     CPB34             1.000                           
##     CPB4              1.000                           
##     CPB28             1.000                           
##     CPB22             1.000

Removing CPB5

mod <- 'fac1 =~ CPB25 + CPB42 + CPB8 + CPB24 + CPB7 + CPB6 + CPB9 + CPB15 + CPB13 + CPB35 + CPB41 + CPB31 + CPB44 + CPB11 + CPB27 + CPB30 + CPB29 + CPB21

fac2 =~ CPB12 + CPB26 + CPB1 + CPB10 + CPB17

fac3 =~ + CPB16 + CPB36 + CPB45 + CPB47 + CPB32 + CPB23 + CPB34 + CPB4 + CPB28 + CPB34 + CPB22
'

fita <- cfa(mod, data = d,
           ordered=c("CPB1","CPB4","CPB5","CPB6",
                     "CPB7","CPB8","CPB9","CPB10",
                     "CPB11","CPB12","CPB13","CPB15",
                     "CPB16","CPB17","CPB18","CPB19",
                     "CPB20","CPB21","CPB22","CPB23",
                     "CPB24","CPB25","CPB26","CPB27",
                     "CPB28","CPB29","CPB30","CPB31",
                     "CPB32","CPB33","CPB34","CPB35",
                     "CPB36","CPB37","CPB3_A","CPB40",
                     "CPB41","CPB42","CPB43","CPB44",
                     "CPB45","CPB47","CPB48"))

summary(fita, fit.measures = T)
## lavaan 0.6-7 ended normally after 43 iterations
## 
##   Estimator                                       DWLS
##   Optimization method                           NLMINB
##   Number of free parameters                         69
##                                                       
##                                                   Used       Total
##   Number of observations                           452         503
##                                                                   
## Model Test User Model:
##                                               Standard      Robust
##   Test Statistic                               945.956     855.754
##   Degrees of freedom                               492         492
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.546
##   Shift parameter                                          243.958
##        simple second-order correction                             
## 
## Model Test Baseline Model:
## 
##   Test statistic                             10319.741    4877.253
##   Degrees of freedom                               528         528
##   P-value                                        0.000       0.000
##   Scaling correction factor                                  2.251
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.954       0.916
##   Tucker-Lewis Index (TLI)                       0.950       0.910
##                                                                   
##   Robust Comparative Fit Index (CFI)                            NA
##   Robust Tucker-Lewis Index (TLI)                               NA
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.045       0.040
##   90 Percent confidence interval - lower         0.041       0.036
##   90 Percent confidence interval - upper         0.050       0.045
##   P-value RMSEA <= 0.05                          0.965       1.000
##                                                                   
##   Robust RMSEA                                                  NA
##   90 Percent confidence interval - lower                        NA
##   90 Percent confidence interval - upper                        NA
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.118       0.118
## 
## Parameter Estimates:
## 
##   Standard errors                           Robust.sem
##   Information                                 Expected
##   Information saturated (h1) model        Unstructured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   fac1 =~                                             
##     CPB25             1.000                           
##     CPB42             1.020    0.051   19.854    0.000
##     CPB8              0.993    0.054   18.302    0.000
##     CPB24             0.860    0.054   16.054    0.000
##     CPB7              0.989    0.051   19.442    0.000
##     CPB6              0.956    0.053   17.952    0.000
##     CPB9              0.924    0.057   16.119    0.000
##     CPB15             0.854    0.054   15.894    0.000
##     CPB13             0.694    0.084    8.310    0.000
##     CPB35             0.835    0.058   14.511    0.000
##     CPB41             0.749    0.069   10.937    0.000
##     CPB31             0.967    0.058   16.615    0.000
##     CPB44             0.601    0.085    7.055    0.000
##     CPB11             0.625    0.067    9.285    0.000
##     CPB27             0.501    0.071    7.082    0.000
##     CPB30             0.774    0.069   11.197    0.000
##     CPB29             0.499    0.080    6.260    0.000
##     CPB21             0.607    0.073    8.348    0.000
##   fac2 =~                                             
##     CPB12             1.000                           
##     CPB26             0.976    0.430    2.273    0.023
##     CPB1              0.159    0.224    0.710    0.478
##     CPB10             0.754    0.349    2.164    0.030
##     CPB17             0.461    0.289    1.596    0.110
##   fac3 =~                                             
##     CPB16             1.000                           
##     CPB36             0.753    0.132    5.704    0.000
##     CPB45             0.787    0.121    6.478    0.000
##     CPB47             0.759    0.113    6.694    0.000
##     CPB32             0.583    0.117    4.997    0.000
##     CPB23             1.006    0.130    7.765    0.000
##     CPB34             0.894    0.126    7.115    0.000
##     CPB4              0.412    0.107    3.852    0.000
##     CPB28             0.820    0.119    6.915    0.000
##     CPB22             0.959    0.124    7.702    0.000
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   fac1 ~~                                             
##     fac2              0.228    0.078    2.925    0.003
##     fac3              0.336    0.045    7.542    0.000
##   fac2 ~~                                             
##     fac3              0.036    0.066    0.552    0.581
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .CPB25             0.000                           
##    .CPB42             0.000                           
##    .CPB8              0.000                           
##    .CPB24             0.000                           
##    .CPB7              0.000                           
##    .CPB6              0.000                           
##    .CPB9              0.000                           
##    .CPB15             0.000                           
##    .CPB13             0.000                           
##    .CPB35             0.000                           
##    .CPB41             0.000                           
##    .CPB31             0.000                           
##    .CPB44             0.000                           
##    .CPB11             0.000                           
##    .CPB27             0.000                           
##    .CPB30             0.000                           
##    .CPB29             0.000                           
##    .CPB21             0.000                           
##    .CPB12             0.000                           
##    .CPB26             0.000                           
##    .CPB1              0.000                           
##    .CPB10             0.000                           
##    .CPB17             0.000                           
##    .CPB16             0.000                           
##    .CPB36             0.000                           
##    .CPB45             0.000                           
##    .CPB47             0.000                           
##    .CPB32             0.000                           
##    .CPB23             0.000                           
##    .CPB34             0.000                           
##    .CPB4              0.000                           
##    .CPB28             0.000                           
##    .CPB22             0.000                           
##     fac1              0.000                           
##     fac2              0.000                           
##     fac3              0.000                           
## 
## Thresholds:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     CPB25|t1         -0.106    0.059   -1.785    0.074
##     CPB42|t1          0.258    0.060    4.318    0.000
##     CPB8|t1           0.304    0.060    5.067    0.000
##     CPB24|t1         -0.162    0.059   -2.724    0.006
##     CPB7|t1          -0.264    0.060   -4.412    0.000
##     CPB6|t1          -0.522    0.062   -8.413    0.000
##     CPB9|t1           0.441    0.061    7.210    0.000
##     CPB15|t1          0.022    0.059    0.376    0.707
##     CPB13|t1          1.124    0.075   15.030    0.000
##     CPB35|t1         -0.235    0.060   -3.943    0.000
##     CPB41|t1          0.768    0.066   11.672    0.000
##     CPB31|t1         -0.935    0.069  -13.473    0.000
##     CPB44|t1          1.007    0.071   14.121    0.000
##     CPB11|t1         -0.067    0.059   -1.128    0.260
##     CPB27|t1         -0.083    0.059   -1.409    0.159
##     CPB30|t1         -0.681    0.064  -10.602    0.000
##     CPB29|t1          0.806    0.067   12.111    0.000
##     CPB21|t1          0.580    0.063    9.240    0.000
##     CPB12|t1          2.218    0.158   14.029    0.000
##     CPB26|t1          1.867    0.117   15.987    0.000
##     CPB1|t1           1.178    0.077   15.377    0.000
##     CPB10|t1          1.779    0.109   16.276    0.000
##     CPB17|t1          1.616    0.098   16.553    0.000
##     CPB16|t1         -1.063    0.073  -14.587    0.000
##     CPB36|t1         -1.054    0.073  -14.511    0.000
##     CPB45|t1         -0.429    0.061   -7.024    0.000
##     CPB47|t1          0.345    0.060    5.721    0.000
##     CPB32|t1         -0.547    0.062   -8.781    0.000
##     CPB23|t1         -0.387    0.061   -6.373    0.000
##     CPB34|t1         -0.229    0.060   -3.849    0.000
##     CPB4|t1          -0.423    0.061   -6.932    0.000
##     CPB28|t1         -0.044    0.059   -0.752    0.452
##     CPB22|t1          0.333    0.060    5.534    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .CPB25             0.350                           
##    .CPB42             0.324                           
##    .CPB8              0.359                           
##    .CPB24             0.519                           
##    .CPB7              0.365                           
##    .CPB6              0.406                           
##    .CPB9              0.445                           
##    .CPB15             0.526                           
##    .CPB13             0.687                           
##    .CPB35             0.547                           
##    .CPB41             0.635                           
##    .CPB31             0.392                           
##    .CPB44             0.765                           
##    .CPB11             0.746                           
##    .CPB27             0.837                           
##    .CPB30             0.610                           
##    .CPB29             0.838                           
##    .CPB21             0.760                           
##    .CPB12             0.376                           
##    .CPB26             0.406                           
##    .CPB1              0.984                           
##    .CPB10             0.645                           
##    .CPB17             0.867                           
##    .CPB16             0.517                           
##    .CPB36             0.726                           
##    .CPB45             0.701                           
##    .CPB47             0.722                           
##    .CPB32             0.836                           
##    .CPB23             0.511                           
##    .CPB34             0.614                           
##    .CPB4              0.918                           
##    .CPB28             0.676                           
##    .CPB22             0.556                           
##     fac1              0.650    0.050   13.068    0.000
##     fac2              0.624    0.339    1.839    0.066
##     fac3              0.483    0.097    4.981    0.000
## 
## Scales y*:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     CPB25             1.000                           
##     CPB42             1.000                           
##     CPB8              1.000                           
##     CPB24             1.000                           
##     CPB7              1.000                           
##     CPB6              1.000                           
##     CPB9              1.000                           
##     CPB15             1.000                           
##     CPB13             1.000                           
##     CPB35             1.000                           
##     CPB41             1.000                           
##     CPB31             1.000                           
##     CPB44             1.000                           
##     CPB11             1.000                           
##     CPB27             1.000                           
##     CPB30             1.000                           
##     CPB29             1.000                           
##     CPB21             1.000                           
##     CPB12             1.000                           
##     CPB26             1.000                           
##     CPB1              1.000                           
##     CPB10             1.000                           
##     CPB17             1.000                           
##     CPB16             1.000                           
##     CPB36             1.000                           
##     CPB45             1.000                           
##     CPB47             1.000                           
##     CPB32             1.000                           
##     CPB23             1.000                           
##     CPB34             1.000                           
##     CPB4              1.000                           
##     CPB28             1.000                           
##     CPB22             1.000