CFA Male v Female Latent Approach - Measurement Invariance

Load libraries

library(lavaan)
## This is lavaan 0.6-15
## lavaan is FREE software! Please report any bugs.
library(semTools) # For model comparison
## 
## ###############################################################################
## This is semTools 0.5-6
## All users of R (or SEM) are invited to submit functions or ideas for functions.
## ###############################################################################

Building variance/covariance matrix for MALES

# We're not importing raw data. We're building a var/cov matrix

lowerM <- '
102.0100,    
36.7781,   104.0400,    
16.3423,    24.4999,   101.0025,    
11.5271,    14.4228,    39.6885,   102.0100,    
8.8597,    17.1666,    45.1044,    39.7657,   104.0400,    
14.6167,    21.2196,    32.4218,    39.2824,    32.4957,   101.0025'
M.cov <- getCov(lowerM, names=c("Blocks", "Geo", "Info", "Arith",   "Colors",
                                "SimDiff"))
M.cov
##           Blocks      Geo     Info    Arith   Colors  SimDiff
## Blocks  102.0100  36.7781  16.3423  11.5271   8.8597  14.6167
## Geo      36.7781 104.0400  24.4999  14.4228  17.1666  21.2196
## Info     16.3423  24.4999 101.0025  39.6885  45.1044  32.4218
## Arith    11.5271  14.4228  39.6885 102.0100  39.7657  39.2824
## Colors    8.8597  17.1666  45.1044  39.7657 104.0400  32.4957
## SimDiff  14.6167  21.2196  32.4218  39.2824  32.4957 101.0025

Getting means for male matrix

M.mean = matrix(c( 17.97, 16.14, 13.42, 16.75, 14.19, 17.49 ), nrow = 1, 
                ncol = 6, byrow = TRUE)
colnames(M.mean) = c("Blocks", "Geo", "Info", "Arith",  "Colors",   "SimDiff")
M.mean
##      Blocks   Geo  Info Arith Colors SimDiff
## [1,]  17.97 16.14 13.42 16.75  14.19   17.49

Building variance/covariance matrix for FEMALES

lowerF <- '
98.0100,    
42.1087,   104.0400,    
22.2305,    23.5149,    99.6004,    
13.6986,    12.0533,    23.9899,   102.0100,    
15.7608,    17.3548,    32.9679,    32.1584,    99.0025,    
14.5703,    24.1225,    38.4929,    37.7255,    27.3690,   103.0225'
F.cov <- getCov(lowerF, names=c("Blocks", "Geo", "Info", "Arith",   "Colors",   
                                "SimDiff"))
F.cov
##          Blocks      Geo    Info    Arith  Colors  SimDiff
## Blocks  98.0100  42.1087 22.2305  13.6986 15.7608  14.5703
## Geo     42.1087 104.0400 23.5149  12.0533 17.3548  24.1225
## Info    22.2305  23.5149 99.6004  23.9899 32.9679  38.4929
## Arith   13.6986  12.0533 23.9899 102.0100 32.1584  37.7255
## Colors  15.7608  17.3548 32.9679  32.1584 99.0025  27.3690
## SimDiff 14.5703  24.1225 38.4929  37.7255 27.3690 103.0225

Means for females matrix

F.mean = matrix(c( 16.79, 14.41, 16.42, 15.57, 15.91, 16.94 ), nrow = 1, 
                ncol = 6, byrow = TRUE)
colnames(F.mean) = c("Blocks", "Geo", "Info", "Arith",  "Colors",   "SimDiff")
F.mean
##      Blocks   Geo  Info Arith Colors SimDiff
## [1,]  16.79 14.41 16.42 15.57  15.91   16.94

Factorial Invariance without Identifying Constraints

Configural Model (no ID Constraints)

#CFA function
model.lsyntax <- ' 
! regressions 
NonV  =~Blocks + Geo
V=~ Info +  Arith  +  Colors +  SimDiff
'
fit_configural<-cfa(model.lsyntax, sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=list(322, 262))
summary(fit_configural, fit.measures=T, standardized = T)
## lavaan 0.6.15 ended normally after 192 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        38
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                20.773
##   Degrees of freedom                                16
##   P-value (Chi-square)                           0.187
##   Test statistic for each group:
##     Group 1                                      9.104
##     Group 2                                     11.669
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.990
##   Tucker-Lewis Index (TLI)                       0.981
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12821.847
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25719.693
##   Bayesian (BIC)                             25885.750
##   Sample-size adjusted Bayesian (SABIC)      25765.114
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.032
##   90 Percent confidence interval - lower         0.000
##   90 Percent confidence interval - upper         0.067
##   P-value H_0: RMSEA <= 0.050                    0.772
##   P-value H_0: RMSEA >= 0.080                    0.008
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.026
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks            1.000                               4.928    0.489
##     Geo               1.510    0.482    3.133    0.002    7.440    0.731
##   V =~                                                                  
##     Info              1.000                               6.588    0.657
##     Arith             0.950    0.123    7.738    0.000    6.260    0.621
##     Colors            0.968    0.125    7.767    0.000    6.374    0.626
##     SimDiff           0.829    0.116    7.155    0.000    5.459    0.544
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                13.554    4.566    2.969    0.003    0.417    0.417
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           17.970    0.562   31.976    0.000   17.970    1.782
##    .Geo              16.140    0.568   28.439    0.000   16.140    1.585
##    .Info             13.420    0.559   23.999    0.000   13.420    1.337
##    .Arith            16.750    0.562   29.806    0.000   16.750    1.661
##    .Colors           14.190    0.568   25.003    0.000   14.190    1.393
##    .SimDiff          17.490    0.559   31.277    0.000   17.490    1.743
##     NonV              0.000                               0.000    0.000
##     V                 0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           77.406    9.746    7.942    0.000   77.406    0.761
##    .Geo              48.368   17.736    2.727    0.006   48.368    0.466
##    .Info             57.288    6.537    8.764    0.000   57.288    0.569
##    .Arith            62.502    6.617    9.446    0.000   62.502    0.615
##    .Colors           63.083    6.743    9.355    0.000   63.083    0.608
##    .SimDiff          70.887    6.723   10.544    0.000   70.887    0.704
##     NonV             24.287    9.208    2.638    0.008    1.000    1.000
##     V                43.401    8.058    5.386    0.000    1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks            1.000                               5.928    0.600
##     Geo               1.194    0.313    3.818    0.000    7.076    0.695
##   V =~                                                                  
##     Info              1.000                               5.892    0.592
##     Arith             0.883    0.159    5.566    0.000    5.205    0.516
##     Colors            0.879    0.157    5.599    0.000    5.180    0.522
##     SimDiff           1.074    0.178    6.039    0.000    6.328    0.625
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                17.156    4.878    3.517    0.000    0.491    0.491
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           16.790    0.610   27.504    0.000   16.790    1.699
##    .Geo              14.410    0.629   22.911    0.000   14.410    1.415
##    .Info             16.420    0.615   26.682    0.000   16.420    1.648
##    .Arith            15.570    0.623   25.000    0.000   15.570    1.545
##    .Colors           15.910    0.614   25.932    0.000   15.910    1.602
##    .SimDiff          16.940    0.626   27.066    0.000   16.940    1.672
##     NonV              0.000                               0.000    0.000
##     V                 0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           62.489   10.493    5.955    0.000   62.489    0.640
##    .Geo              53.578   13.595    3.941    0.000   53.578    0.517
##    .Info             64.500    7.719    8.356    0.000   64.500    0.650
##    .Arith            74.532    7.941    9.385    0.000   74.532    0.733
##    .Colors           71.788    7.699    9.324    0.000   71.788    0.728
##    .SimDiff          62.588    8.046    7.779    0.000   62.588    0.610
##     NonV             35.147   11.102    3.166    0.002    1.000    1.000
##     V                34.721    8.439    4.114    0.000    1.000    1.000

Weak FI Model (no ID constraints; but look at group.equal function)

model.lsyntax <- ' 
! regressions 
NonV  =~Blocks + Geo
V=~ Info +  Arith  +  Colors +  SimDiff
'
fit_weak<-cfa(model.lsyntax, sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=list(322, 262),
group.equal=c("loadings"))
summary(fit_weak, fit.measures=T, standardized = T)
## lavaan 0.6.15 ended normally after 165 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        38
##   Number of equality constraints                     4
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                24.202
##   Degrees of freedom                                20
##   P-value (Chi-square)                           0.234
##   Test statistic for each group:
##     Group 1                                     10.420
##     Group 2                                     13.782
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.991
##   Tucker-Lewis Index (TLI)                       0.987
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12823.561
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25715.123
##   Bayesian (BIC)                             25863.699
##   Sample-size adjusted Bayesian (SABIC)      25755.762
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.027
##   90 Percent confidence interval - lower         0.000
##   90 Percent confidence interval - upper         0.060
##   P-value H_0: RMSEA <= 0.050                    0.858
##   P-value H_0: RMSEA >= 0.080                    0.002
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.031
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks            1.000                               5.323    0.526
##     Geo     (.p2.)    1.304    0.261    4.995    0.000    6.939    0.683
##   V =~                                                                  
##     Info              1.000                               6.498    0.649
##     Arith   (.p4.)    0.934    0.099    9.481    0.000    6.072    0.607
##     Colors  (.p5.)    0.946    0.099    9.532    0.000    6.146    0.608
##     SimDiff (.p6.)    0.922    0.098    9.394    0.000    5.993    0.586
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                15.003    3.910    3.837    0.000    0.434    0.434
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           17.970    0.564   31.861    0.000   17.970    1.776
##    .Geo              16.140    0.566   28.514    0.000   16.140    1.589
##    .Info             13.420    0.558   24.046    0.000   13.420    1.340
##    .Arith            16.750    0.557   30.058    0.000   16.750    1.675
##    .Colors           14.190    0.564   25.179    0.000   14.190    1.403
##    .SimDiff          17.490    0.570   30.695    0.000   17.490    1.711
##     NonV              0.000                               0.000    0.000
##     V                 0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           74.095    8.594    8.622    0.000   74.095    0.723
##    .Geo              55.026   11.558    4.761    0.000   55.026    0.533
##    .Info             58.069    6.278    9.250    0.000   58.069    0.579
##    .Arith            63.126    6.350    9.941    0.000   63.126    0.631
##    .Colors           64.497    6.488    9.940    0.000   64.497    0.631
##    .SimDiff          68.631    6.695   10.251    0.000   68.631    0.656
##     NonV             28.334    7.566    3.745    0.000    1.000    1.000
##     V                42.227    6.962    6.066    0.000    1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks            1.000                               5.654    0.575
##     Geo     (.p2.)    1.304    0.261    4.995    0.000    7.370    0.722
##   V =~                                                                  
##     Info              1.000                               5.944    0.595
##     Arith   (.p4.)    0.934    0.099    9.481    0.000    5.554    0.544
##     Colors  (.p5.)    0.946    0.099    9.532    0.000    5.621    0.561
##     SimDiff (.p6.)    0.922    0.098    9.394    0.000    5.481    0.554
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                16.252    4.216    3.855    0.000    0.484    0.484
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           16.790    0.608   27.616    0.000   16.790    1.706
##    .Geo              14.410    0.631   22.844    0.000   14.410    1.411
##    .Info             16.420    0.617   26.611    0.000   16.420    1.644
##    .Arith            15.570    0.630   24.708    0.000   15.570    1.526
##    .Colors           15.910    0.619   25.685    0.000   15.910    1.587
##    .SimDiff          16.940    0.611   27.706    0.000   16.940    1.712
##     NonV              0.000                               0.000    0.000
##     V                 0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           64.880    8.865    7.319    0.000   64.880    0.670
##    .Geo              49.940   12.375    4.035    0.000   49.940    0.479
##    .Info             64.429    7.270    8.863    0.000   64.429    0.646
##    .Arith            73.197    7.713    9.490    0.000   73.197    0.704
##    .Colors           68.931    7.410    9.302    0.000   68.931    0.686
##    .SimDiff          67.897    7.244    9.372    0.000   67.897    0.693
##     NonV             31.964    8.492    3.764    0.000    1.000    1.000
##     V                35.328    6.457    5.471    0.000    1.000    1.000

Strong FI Model (no ID constraints, but equate loadings & intercepts)

model.lsyntax <- ' 
! regressions 
NonV  =~Blocks + Geo
V=~ Info +  Arith  +  Colors +  SimDiff
'
fit_strong<-cfa(model.lsyntax, sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=list(322, 262),
group.equal=c("loadings", "intercepts"))
summary(fit_strong, fit.measures=T, standardized = T)
## lavaan 0.6.15 ended normally after 204 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        40
##   Number of equality constraints                    10
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                48.321
##   Degrees of freedom                                24
##   P-value (Chi-square)                           0.002
##   Test statistic for each group:
##     Group 1                                     20.327
##     Group 2                                     27.995
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.949
##   Tucker-Lewis Index (TLI)                       0.936
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12835.621
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25731.242
##   Bayesian (BIC)                             25862.339
##   Sample-size adjusted Bayesian (SABIC)      25767.100
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.059
##   90 Percent confidence interval - lower         0.034
##   90 Percent confidence interval - upper         0.083
##   P-value H_0: RMSEA <= 0.050                    0.250
##   P-value H_0: RMSEA >= 0.080                    0.076
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.044
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks            1.000                               5.294    0.523
##     Geo     (.p2.)    1.317    0.253    5.217    0.000    6.975    0.687
##   V =~                                                                  
##     Info              1.000                               6.627    0.656
##     Arith   (.p4.)    0.889    0.095    9.324    0.000    5.891    0.590
##     Colors  (.p5.)    0.941    0.098    9.580    0.000    6.237    0.615
##     SimDiff (.p6.)    0.885    0.095    9.286    0.000    5.866    0.575
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                15.250    3.928    3.883    0.000    0.435    0.435
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks  (.16.)   18.015    0.497   36.247    0.000   18.015    1.780
##    .Geo     (.17.)   16.115    0.546   29.496    0.000   16.115    1.586
##    .Info    (.18.)   14.266    0.515   27.696    0.000   14.266    1.412
##    .Arith   (.19.)   15.906    0.495   32.112    0.000   15.906    1.592
##    .Colors  (.20.)   14.533    0.506   28.696    0.000   14.533    1.433
##    .SimDiff (.21.)   16.852    0.498   33.834    0.000   16.852    1.651
##     NonV              0.000                               0.000    0.000
##     V                 0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           74.365    8.443    8.808    0.000   74.365    0.726
##    .Geo              54.551   11.391    4.789    0.000   54.551    0.529
##    .Info             58.123    6.409    9.070    0.000   58.123    0.570
##    .Arith            65.103    6.408   10.160    0.000   65.103    0.652
##    .Colors           63.957    6.530    9.795    0.000   63.957    0.622
##    .SimDiff          69.779    6.729   10.371    0.000   69.779    0.670
##     NonV             28.031    7.295    3.842    0.000    1.000    1.000
##     V                43.918    7.197    6.102    0.000    1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks            1.000                               5.621    0.571
##     Geo     (.p2.)    1.317    0.253    5.217    0.000    7.405    0.725
##   V =~                                                                  
##     Info              1.000                               6.038    0.598
##     Arith   (.p4.)    0.889    0.095    9.324    0.000    5.367    0.525
##     Colors  (.p5.)    0.941    0.098    9.580    0.000    5.682    0.566
##     SimDiff (.p6.)    0.885    0.095    9.286    0.000    5.344    0.540
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                16.511    4.234    3.899    0.000    0.487    0.487
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks  (.16.)   18.015    0.497   36.247    0.000   18.015    1.831
##    .Geo     (.17.)   16.115    0.546   29.496    0.000   16.115    1.578
##    .Info    (.18.)   14.266    0.515   27.696    0.000   14.266    1.412
##    .Arith   (.19.)   15.906    0.495   32.112    0.000   15.906    1.555
##    .Colors  (.20.)   14.533    0.506   28.696    0.000   14.533    1.446
##    .SimDiff (.21.)   16.852    0.498   33.834    0.000   16.852    1.701
##     NonV             -1.273    0.617   -2.062    0.039   -0.226   -0.226
##     V                 0.981    0.642    1.528    0.127    0.163    0.163
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           65.168    8.684    7.504    0.000   65.168    0.674
##    .Geo              49.476   12.174    4.064    0.000   49.476    0.474
##    .Info             65.562    7.475    8.771    0.000   65.562    0.643
##    .Arith            75.894    7.858    9.658    0.000   75.894    0.725
##    .Colors           68.668    7.465    9.199    0.000   68.668    0.680
##    .SimDiff          69.543    7.328    9.489    0.000   69.543    0.709
##     NonV             31.592    8.181    3.862    0.000    1.000    1.000
##     V                36.453    6.671    5.464    0.000    1.000    1.000

Strict FI Model (no ID constraints, but equate loadings, intercepts, & ?)

#model.lsyntax <- 

Compare Fit of models with no ID constraints

#Fit<-compareFit(fit_configural, fit_weak, fit_strong, fit_strict)
#summary(Fit)

Factorial Invariance with Identifying Constraints

Configural Model (equate one set of lambdas per latent variable and one set of intercepts per latent)

# Note: Identifying constraints on b1 and b3, nu1 and nu3
# Latent variables: NonV = Non Verbal; V = Verbal
Conf.Model <- ' 
! regressions 
NonV  =~NA*Blocks + c(b1,b1)*Blocks + c(b21,b22)*Geo
V=~NA*Info +  c(b3,b3)*Info + c(b41,b42)*Arith  + c(b51,b52)*Colors + 
c(b61,b62)*SimDiff

! residuals, variances and covariances
   Blocks~~Blocks;
   Geo~~Geo;
   Info~~Info;
   Arith~~Arith;
   Colors~~Colors;
   SimDiff~~SimDiff;

NonV~~V
V ~~ c(1,NA)*V
NonV ~~ c(1,NA)*NonV

! intercepts (nu) &  means (alphas)
   Blocks~c(n1,n1)*1;
   Geo~c(n21,n22)*1;
   Info~c(n3,n3)*1;
   Arith~c(n41,n42)*1;
   Colors~c(n51,n52)*1;
   SimDiff~c(n61,n62)*1;
   
! Constrain Males to factor mean of 0, females are relative to males
NonV~c(a11,a12)*1;
V~c(a21,a22)*1;
a11==0
a21==0
'

Model1 <-  cfa(model=Conf.Model,fixed.x=FALSE,std.lv = F,
sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=c(322, 262),
meanstructure = TRUE)
summary(Model1, standardized = TRUE, fit.measures=TRUE)
## lavaan 0.6.15 ended normally after 146 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        44
##   Number of equality constraints                     6
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                20.773
##   Degrees of freedom                                16
##   P-value (Chi-square)                           0.187
##   Test statistic for each group:
##     Group 1                                      9.104
##     Group 2                                     11.669
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.990
##   Tucker-Lewis Index (TLI)                       0.981
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12821.847
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25719.693
##   Bayesian (BIC)                             25885.750
##   Sample-size adjusted Bayesian (SABIC)      25765.114
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.032
##   90 Percent confidence interval - lower         0.000
##   90 Percent confidence interval - upper         0.067
##   P-value H_0: RMSEA <= 0.050                    0.772
##   P-value H_0: RMSEA >= 0.080                    0.008
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.026
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    4.928    0.934    5.275    0.000    4.928    0.489
##     Geo      (b21)    7.440    1.261    5.897    0.000    7.440    0.731
##   V =~                                                                  
##     Info      (b3)    6.588    0.612   10.772    0.000    6.588    0.657
##     Arith    (b41)    6.260    0.616   10.163    0.000    6.260    0.621
##     Colors   (b51)    6.374    0.622   10.251    0.000    6.374    0.626
##     SimDiff  (b61)    5.459    0.619    8.812    0.000    5.459    0.544
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.417    0.087    4.823    0.000    0.417    0.417
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   17.970    0.562   31.976    0.000   17.970    1.782
##    .Geo      (n21)   16.140    0.568   28.439    0.000   16.140    1.585
##    .Info      (n3)   13.420    0.559   23.999    0.000   13.420    1.337
##    .Arith    (n41)   16.750    0.562   29.806    0.000   16.750    1.661
##    .Colors   (n51)   14.190    0.568   25.003    0.000   14.190    1.393
##    .SimDiff  (n61)   17.490    0.559   31.277    0.000   17.490    1.743
##     NonV     (a11)    0.000                               0.000    0.000
##     V        (a21)    0.000       NA                      0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           77.406    9.746    7.942    0.000   77.406    0.761
##    .Geo              48.368   17.736    2.727    0.006   48.368    0.466
##    .Info             57.288    6.537    8.764    0.000   57.288    0.569
##    .Arith            62.502    6.617    9.446    0.000   62.502    0.615
##    .Colors           63.083    6.743    9.355    0.000   63.083    0.608
##    .SimDiff          70.887    6.723   10.544    0.000   70.887    0.704
##     V                 1.000                               1.000    1.000
##     NonV              1.000                               1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    4.928    0.934    5.275    0.000    5.928    0.600
##     Geo      (b22)    5.882    1.902    3.093    0.002    7.076    0.695
##   V =~                                                                  
##     Info      (b3)    6.588    0.612   10.772    0.000    5.892    0.592
##     Arith    (b42)    5.819    1.177    4.945    0.000    5.205    0.516
##     Colors   (b52)    5.792    1.166    4.968    0.000    5.180    0.522
##     SimDiff  (b62)    7.075    1.343    5.267    0.000    6.328    0.625
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.528    0.188    2.818    0.005    0.491    0.491
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   17.970    0.562   31.976    0.000   17.970    1.819
##    .Geo      (n22)   15.818    1.063   14.879    0.000   15.818    1.554
##    .Info      (n3)   13.420    0.559   23.999    0.000   13.420    1.347
##    .Arith    (n42)   12.920    0.973   13.276    0.000   12.920    1.282
##    .Colors   (n52)   13.272    0.963   13.779    0.000   13.272    1.336
##    .SimDiff  (n62)   13.718    1.081   12.693    0.000   13.718    1.354
##     NonV     (a12)   -0.239    0.174   -1.373    0.170   -0.199   -0.199
##     V        (a22)    0.455    0.133    3.421    0.001    0.509    0.509
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           62.489   10.493    5.955    0.000   62.489    0.640
##    .Geo              53.578   13.595    3.941    0.000   53.578    0.517
##    .Info             64.500    7.719    8.356    0.000   64.500    0.650
##    .Arith            74.532    7.941    9.385    0.000   74.532    0.733
##    .Colors           71.788    7.699    9.324    0.000   71.788    0.728
##    .SimDiff          62.588    8.046    7.779    0.000   62.588    0.610
##     V                 0.800    0.245    3.269    0.001    1.000    1.000
##     NonV              1.447    0.714    2.026    0.043    1.000    1.000
## 
## Constraints:
##                                                |Slack|
##     a11 - 0                                      0.000
##     a21 - 0                                      0.000

Weak (Configural + equate all loadings)

Weak.Model <- ' 
! regressions 
NonV  =~NA*Blocks + c(b1,b1)*Blocks + c(b2,b2)*Geo
V=~NA*Info +  c(b3,b3)*Info + c(b4,b4)*Arith  + c(b5,b5)*Colors + 
c(b6,b6)*SimDiff

! residuals, variances and covariances
   Blocks~~Blocks;
   Geo~~Geo;
   Info~~Info;
   Arith~~Arith;
   Colors~~Colors;
   SimDiff~~SimDiff;

NonV~~V
V ~~ c(1,NA)*V
NonV ~~ c(1,NA)*NonV

! intercepts (nu) &  means (alphas)
   Blocks~c(n1,n1)*1;
   Geo~c(n21,n22)*1;
   Info~c(n3,n3)*1;
   Arith~c(n41,n42)*1;
   Colors~c(n51,n52)*1;
   SimDiff~c(n61,n62)*1;
   
! Constrain Males to factor mean of 0, females are relative to males
NonV~c(a11,a12)*1;
V~c(a21,a22)*1;
a11==0
a21==0
'

Model2 <-  cfa(model=Weak.Model,fixed.x=FALSE,std.lv = F,
sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=c(322, 262),
meanstructure = TRUE)
summary(Model2, standardized = TRUE, fit.measures=TRUE)
## lavaan 0.6.15 ended normally after 76 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        44
##   Number of equality constraints                    10
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                24.202
##   Degrees of freedom                                20
##   P-value (Chi-square)                           0.234
##   Test statistic for each group:
##     Group 1                                     10.420
##     Group 2                                     13.782
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.991
##   Tucker-Lewis Index (TLI)                       0.987
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12823.561
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25715.123
##   Bayesian (BIC)                             25863.699
##   Sample-size adjusted Bayesian (SABIC)      25755.762
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.027
##   90 Percent confidence interval - lower         0.000
##   90 Percent confidence interval - upper         0.060
##   P-value H_0: RMSEA <= 0.050                    0.858
##   P-value H_0: RMSEA >= 0.080                    0.002
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.031
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    5.323    0.711    7.490    0.000    5.323    0.526
##     Geo       (b2)    6.939    0.870    7.972    0.000    6.939    0.683
##   V =~                                                                  
##     Info      (b3)    6.498    0.536   12.131    0.000    6.498    0.649
##     Arith     (b4)    6.072    0.532   11.416    0.000    6.072    0.607
##     Colors    (b5)    6.146    0.536   11.468    0.000    6.146    0.608
##     SimDiff   (b6)    5.993    0.538   11.142    0.000    5.993    0.586
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.434    0.083    5.218    0.000    0.434    0.434
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   17.970    0.564   31.861    0.000   17.970    1.776
##    .Geo      (n21)   16.140    0.566   28.514    0.000   16.140    1.589
##    .Info      (n3)   13.420    0.558   24.046    0.000   13.420    1.340
##    .Arith    (n41)   16.750    0.557   30.058    0.000   16.750    1.675
##    .Colors   (n51)   14.190    0.564   25.179    0.000   14.190    1.403
##    .SimDiff  (n61)   17.490    0.570   30.695    0.000   17.490    1.711
##     NonV     (a11)    0.000                               0.000    0.000
##     V        (a21)    0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           74.095    8.594    8.622    0.000   74.095    0.723
##    .Geo              55.026   11.558    4.761    0.000   55.026    0.533
##    .Info             58.069    6.278    9.250    0.000   58.069    0.579
##    .Arith            63.126    6.350    9.941    0.000   63.126    0.631
##    .Colors           64.497    6.488    9.940    0.000   64.497    0.631
##    .SimDiff          68.631    6.695   10.251    0.000   68.631    0.656
##     V                 1.000                               1.000    1.000
##     NonV              1.000                               1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    5.323    0.711    7.490    0.000    5.654    0.575
##     Geo       (b2)    6.939    0.870    7.972    0.000    7.370    0.722
##   V =~                                                                  
##     Info      (b3)    6.498    0.536   12.131    0.000    5.944    0.595
##     Arith     (b4)    6.072    0.532   11.416    0.000    5.554    0.544
##     Colors    (b5)    6.146    0.536   11.468    0.000    5.621    0.561
##     SimDiff   (b6)    5.993    0.538   11.142    0.000    5.481    0.554
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.470    0.111    4.216    0.000    0.484    0.484
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   17.970    0.564   31.861    0.000   17.970    1.826
##    .Geo      (n22)   15.948    1.117   14.283    0.000   15.948    1.562
##    .Info      (n3)   13.420    0.558   24.046    0.000   13.420    1.344
##    .Arith    (n42)   12.767    0.924   13.819    0.000   12.767    1.252
##    .Colors   (n52)   13.073    0.922   14.177    0.000   13.073    1.304
##    .SimDiff  (n62)   14.173    0.905   15.653    0.000   14.173    1.432
##     NonV     (a12)   -0.222    0.159   -1.398    0.162   -0.209   -0.209
##     V        (a22)    0.462    0.134    3.456    0.001    0.505    0.505
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           64.880    8.865    7.319    0.000   64.880    0.670
##    .Geo              49.940   12.375    4.035    0.000   49.940    0.479
##    .Info             64.429    7.270    8.863    0.000   64.429    0.646
##    .Arith            73.197    7.713    9.490    0.000   73.197    0.704
##    .Colors           68.931    7.410    9.302    0.000   68.931    0.686
##    .SimDiff          67.897    7.244    9.372    0.000   67.897    0.693
##     V                 0.837    0.148    5.634    0.000    1.000    1.000
##     NonV              1.128    0.259    4.356    0.000    1.000    1.000
## 
## Constraints:
##                                                |Slack|
##     a11 - 0                                      0.000
##     a21 - 0                                      0.000

Strong (Weak + equate all sets of intercepts)

Strong.Model <- ' 
! regressions 
NonV  =~NA*Blocks + c(b1,b1)*Blocks + c(b2,b2)*Geo
V=~NA*Info +  c(b3,b3)*Info + c(b4,b4)*Arith  + c(b5,b5)*Colors + 
c(b6,b6)*SimDiff

! residuals, variances and covariances
   Blocks~~Blocks;
   Geo~~Geo;
   Info~~Info;
   Arith~~Arith;
   Colors~~Colors;
   SimDiff~~SimDiff;

NonV~~V
V ~~ c(1,NA)*V
NonV ~~ c(1,NA)*NonV

! intercepts (nu) &  means (alphas)
   Blocks~c(n1,n1)*1;
   Geo~c(n2,n2)*1;
   Info~c(n3,n3)*1;
   Arith~c(n4,n4)*1;
   Colors~c(n5,n5)*1;
   SimDiff~c(n6,n6)*1;
   
! Constrain Males to factor mean of 0, females are relative to males
NonV~c(a11,a12)*1;
V~c(a21,a22)*1;
a11==0
a21==0
'

Model3 <-  cfa(model=Strong.Model,fixed.x=FALSE,std.lv = F,
sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=c(322, 262),
meanstructure = TRUE)
summary(Model3, standardized = TRUE, fit.measures=TRUE)
## lavaan 0.6.15 ended normally after 86 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        44
##   Number of equality constraints                    14
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                48.321
##   Degrees of freedom                                24
##   P-value (Chi-square)                           0.002
##   Test statistic for each group:
##     Group 1                                     20.327
##     Group 2                                     27.995
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.949
##   Tucker-Lewis Index (TLI)                       0.936
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12835.621
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25731.242
##   Bayesian (BIC)                             25862.339
##   Sample-size adjusted Bayesian (SABIC)      25767.100
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.059
##   90 Percent confidence interval - lower         0.034
##   90 Percent confidence interval - upper         0.083
##   P-value H_0: RMSEA <= 0.050                    0.250
##   P-value H_0: RMSEA >= 0.080                    0.076
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.044
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    5.294    0.689    7.684    0.000    5.294    0.523
##     Geo       (b2)    6.975    0.853    8.179    0.000    6.975    0.687
##   V =~                                                                  
##     Info      (b3)    6.627    0.543   12.204    0.000    6.627    0.656
##     Arith     (b4)    5.891    0.532   11.083    0.000    5.891    0.590
##     Colors    (b5)    6.237    0.540   11.558    0.000    6.237    0.615
##     SimDiff   (b6)    5.866    0.537   10.916    0.000    5.866    0.575
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.435    0.083    5.230    0.000    0.435    0.435
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   18.015    0.497   36.247    0.000   18.015    1.780
##    .Geo       (n2)   16.115    0.546   29.496    0.000   16.115    1.586
##    .Info      (n3)   14.266    0.515   27.695    0.000   14.266    1.412
##    .Arith     (n4)   15.906    0.495   32.112    0.000   15.906    1.592
##    .Colors    (n5)   14.533    0.506   28.696    0.000   14.533    1.433
##    .SimDiff   (n6)   16.852    0.498   33.834    0.000   16.852    1.651
##     NonV     (a11)    0.000       NA                      0.000    0.000
##     V        (a21)    0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           74.365    8.443    8.808    0.000   74.365    0.726
##    .Geo              54.551   11.391    4.789    0.000   54.551    0.529
##    .Info             58.123    6.409    9.069    0.000   58.123    0.570
##    .Arith            65.103    6.408   10.160    0.000   65.103    0.652
##    .Colors           63.957    6.530    9.795    0.000   63.957    0.622
##    .SimDiff          69.779    6.729   10.371    0.000   69.779    0.670
##     V                 1.000                               1.000    1.000
##     NonV              1.000                               1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    5.294    0.689    7.684    0.000    5.621    0.571
##     Geo       (b2)    6.975    0.853    8.179    0.000    7.405    0.725
##   V =~                                                                  
##     Info      (b3)    6.627    0.543   12.204    0.000    6.038    0.598
##     Arith     (b4)    5.891    0.532   11.083    0.000    5.367    0.525
##     Colors    (b5)    6.237    0.540   11.558    0.000    5.682    0.566
##     SimDiff   (b6)    5.866    0.537   10.916    0.000    5.344    0.540
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.471    0.111    4.222    0.000    0.487    0.487
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   18.015    0.497   36.247    0.000   18.015    1.831
##    .Geo       (n2)   16.115    0.546   29.496    0.000   16.115    1.578
##    .Info      (n3)   14.266    0.515   27.695    0.000   14.266    1.412
##    .Arith     (n4)   15.906    0.495   32.112    0.000   15.906    1.555
##    .Colors    (n5)   14.533    0.506   28.696    0.000   14.533    1.446
##    .SimDiff   (n6)   16.852    0.498   33.834    0.000   16.852    1.701
##     NonV     (a12)   -0.240    0.114   -2.108    0.035   -0.226   -0.226
##     V        (a22)    0.148    0.097    1.528    0.126    0.163    0.163
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks           65.168    8.684    7.504    0.000   65.168    0.673
##    .Geo              49.475   12.174    4.064    0.000   49.475    0.474
##    .Info             65.562    7.475    8.771    0.000   65.562    0.643
##    .Arith            75.895    7.858    9.658    0.000   75.895    0.725
##    .Colors           68.669    7.465    9.199    0.000   68.669    0.680
##    .SimDiff          69.543    7.328    9.489    0.000   69.543    0.709
##     V                 0.830    0.149    5.586    0.000    1.000    1.000
##     NonV              1.127    0.259    4.356    0.000    1.000    1.000
## 
## Constraints:
##                                                |Slack|
##     a11 - 0                                      0.000
##     a21 - 0                                      0.000

Strict (Strong + equate all sets of residuals)

Strict.Model<- ' 
! regressions 
NonV  =~NA*Blocks + c(b1,b1)*Blocks + c(b2,b2)*Geo
V=~NA*Info +  c(b3,b3)*Info + c(b4,b4)*Arith  + c(b5,b5)*Colors + 
c(b6,b6)*SimDiff

! residuals, variances and covariances
    Blocks~~e1*Blocks;
   Geo~~e2*Geo;
   Info~~e3*Info;
   Arith~~e4*Arith;
   Colors~~e5*Colors;
   SimDiff~~e6*SimDiff;
   
NonV~~V
V ~~ c(1,NA)*V
NonV ~~ c(1,NA)*NonV

! intercepts (nu) &  means (alphas)
   Blocks~c(n1,n1)*1;
   Geo~c(n21,n22)*1;
   Info~c(n3,n3)*1;
   Arith~c(n4,n4)*1;
   Colors~c(n5,n5)*1;
   SimDiff~c(n6,n6)*1;
   
! Constrain Males to factor mean of 0, females are relative to males
NonV~c(a11,a12)*1;
V~c(a21,a22)*1;
a11==0
a21==0
'

Model4 <-  cfa(model=Strict.Model,fixed.x=FALSE,std.lv = F,
sample.cov=list(M.cov,F.cov),
sample.mean = list(M.mean, F.mean),
sample.nobs=c(322, 262),
meanstructure = TRUE)
## Warning in lavaanify(model = FLAT, constraints = constraints, varTable = DataOV, : lavaan WARNING: using a single label per parameter in a multiple group
##   setting implies imposing equality constraints across all the groups;
##   If this is not intended, either remove the label(s), or use a vector
##   of labels (one for each group);
##   See the Multiple groups section in the man page of model.syntax.
summary(Model4, standardized = TRUE, fit.measures=TRUE)
## lavaan 0.6.15 ended normally after 63 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        44
##   Number of equality constraints                    19
## 
##   Number of observations per group:                   
##     Group 1                                        322
##     Group 2                                        262
## 
## Model Test User Model:
##                                                       
##   Test statistic                                51.578
##   Degrees of freedom                                29
##   P-value (Chi-square)                           0.006
##   Test statistic for each group:
##     Group 1                                     23.288
##     Group 2                                     28.291
## 
## Model Test Baseline Model:
## 
##   Test statistic                               504.692
##   Degrees of freedom                                30
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.952
##   Tucker-Lewis Index (TLI)                       0.951
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -12837.249
##   Loglikelihood unrestricted model (H1)     -12811.460
##                                                       
##   Akaike (AIC)                               25724.499
##   Bayesian (BIC)                             25833.746
##   Sample-size adjusted Bayesian (SABIC)      25754.380
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.052
##   90 Percent confidence interval - lower         0.027
##   90 Percent confidence interval - upper         0.074
##   P-value H_0: RMSEA <= 0.050                    0.425
##   P-value H_0: RMSEA >= 0.080                    0.018
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.045
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Group 1]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    5.398    0.696    7.752    0.000    5.398    0.542
##     Geo       (b2)    7.089    0.857    8.269    0.000    7.089    0.700
##   V =~                                                                  
##     Info      (b3)    6.546    0.545   12.021    0.000    6.546    0.640
##     Arith     (b4)    5.807    0.534   10.875    0.000    5.807    0.570
##     Colors    (b5)    6.168    0.539   11.450    0.000    6.168    0.604
##     SimDiff   (b6)    5.853    0.534   10.969    0.000    5.853    0.575
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.432    0.081    5.309    0.000    0.432    0.432
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   17.970    0.555   32.362    0.000   17.970    1.803
##    .Geo      (n21)   16.140    0.565   28.583    0.000   16.140    1.593
##    .Info      (n3)   14.329    0.516   27.778    0.000   14.329    1.401
##    .Arith     (n4)   15.833    0.496   31.889    0.000   15.833    1.554
##    .Colors    (n5)   14.550    0.506   28.764    0.000   14.550    1.425
##    .SimDiff   (n6)   16.852    0.497   33.908    0.000   16.852    1.656
##     NonV     (a11)    0.000       NA                      0.000    0.000
##     V        (a21)    0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (e1)   70.154    7.158    9.800    0.000   70.154    0.707
##    .Geo       (e2)   52.413   10.571    4.958    0.000   52.413    0.510
##    .Info      (e3)   61.741    5.166   11.952    0.000   61.741    0.590
##    .Arith     (e4)   70.126    5.174   13.553    0.000   70.126    0.675
##    .Colors    (e5)   66.191    5.155   12.839    0.000   66.191    0.635
##    .SimDiff   (e6)   69.244    5.149   13.447    0.000   69.244    0.669
##     V                 1.000                               1.000    1.000
##     NonV              1.000                               1.000    1.000
## 
## 
## Group 2 [Group 2]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV =~                                                               
##     Blocks    (b1)    5.398    0.696    7.752    0.000    5.517    0.550
##     Geo       (b2)    7.089    0.857    8.269    0.000    7.247    0.707
##   V =~                                                                  
##     Info      (b3)    6.546    0.545   12.021    0.000    6.092    0.613
##     Arith     (b4)    5.807    0.534   10.875    0.000    5.404    0.542
##     Colors    (b5)    6.168    0.539   11.450    0.000    5.741    0.577
##     SimDiff   (b6)    5.853    0.534   10.969    0.000    5.447    0.548
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   NonV ~~                                                               
##     V                 0.466    0.110    4.256    0.000    0.490    0.490
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (n1)   17.970    0.555   32.362    0.000   17.970    1.792
##    .Geo      (n22)   15.960    1.136   14.044    0.000   15.960    1.558
##    .Info      (n3)   14.329    0.516   27.778    0.000   14.329    1.441
##    .Arith     (n4)   15.833    0.496   31.889    0.000   15.833    1.589
##    .Colors    (n5)   14.550    0.506   28.764    0.000   14.550    1.461
##    .SimDiff   (n6)   16.852    0.497   33.908    0.000   16.852    1.694
##     NonV     (a12)   -0.219    0.157   -1.395    0.163   -0.214   -0.214
##     V        (a22)    0.149    0.098    1.522    0.128    0.160    0.160
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .Blocks    (e1)   70.154    7.158    9.800    0.000   70.154    0.697
##    .Geo       (e2)   52.413   10.571    4.958    0.000   52.413    0.500
##    .Info      (e3)   61.741    5.166   11.952    0.000   61.741    0.625
##    .Arith     (e4)   70.126    5.174   13.553    0.000   70.126    0.706
##    .Colors    (e5)   66.191    5.155   12.839    0.000   66.191    0.668
##    .SimDiff   (e6)   69.244    5.149   13.447    0.000   69.244    0.700
##     V                 0.866    0.151    5.727    0.000    1.000    1.000
##     NonV              1.045    0.210    4.967    0.000    1.000    1.000
## 
## Constraints:
##                                                |Slack|
##     a11 - 0                                      0.000
##     a21 - 0                                      0.000

Fit Comparisons Across Models

Mod.Fit.Comp <- compareFit(Model1, Model2, Model3, Model4)
summary(Mod.Fit.Comp)
## ################### Nested Model Comparison #########################
## 
## Chi-Squared Difference Test
## 
##        Df   AIC   BIC  Chisq Chisq diff   RMSEA Df diff Pr(>Chisq)    
## Model1 16 25720 25886 20.773                                          
## Model2 20 25715 25864 24.202     3.4292 0.00000       4     0.4887    
## Model3 24 25731 25862 48.321    24.1191 0.13125       4   7.56e-05 ***
## Model4 29 25724 25834 51.578     3.2568 0.00000       5     0.6605    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## ####################### Model Fit Indices ###########################
##          chisq df pvalue rmsea   cfi   tli  srmr        aic        bic
## Model1 20.773† 16   .187 .032  .990  .981  .026† 25719.693  25885.750 
## Model2 24.202  20   .234 .027† .991† .987† .031  25715.123† 25863.699 
## Model3 48.321  24   .002 .059  .949  .936  .044  25731.242  25862.339 
## Model4 51.578  29   .006 .052  .952  .951  .045  25724.499  25833.746†
## 
## ################## Differences in Fit Indices #######################
##                 df  rmsea    cfi    tli  srmr    aic     bic
## Model2 - Model1  4 -0.005  0.001  0.006 0.005 -4.571 -22.050
## Model3 - Model2  4  0.032 -0.042 -0.051 0.013 16.119  -1.360
## Model4 - Model3  5 -0.007  0.004  0.015 0.000 -6.743 -28.593