# Load libraries (you may have to install packages first)

library(psych)
library(lavaan)
## This is lavaan 0.6-15
## lavaan is FREE software! Please report any bugs.
## 
## Attaching package: 'lavaan'
## The following object is masked from 'package:psych':
## 
##     cor2cov
library(semTools)
## 
## ###############################################################################
## This is semTools 0.5-6
## All users of R (or SEM) are invited to submit functions or ideas for functions.
## ###############################################################################
## 
## Attaching package: 'semTools'
## The following objects are masked from 'package:psych':
## 
##     reliability, skew
library(semPlot)
# Load data

data(bfi)

# Truncate to items only
bfiT <- bfi[grep("A1$", colnames(bfi)):grep("O5$", colnames(bfi))]
# Write model syntax (aka define latent variables)
#BFI - BIG FIVE INVENTORY

CFA_BFI <-
 'A = ~ A1 + A2 + A3 + A4 + A5
  C = ~ C1 + C2 + C3 + C4 + C5
  E = ~ E1 + E2 + E3 + E4 + E5
  N = ~ N1 + N2 + N3 + N4 + N5
  O = ~ O1 + O2 + O3 + O4 + O5'
# Fitting Model, Plotting
CFA_BFIfit <- cfa(CFA_BFI, data = bfiT)
summary(CFA_BFIfit, standard = TRUE, fit.measures = TRUE)
## lavaan 0.6.15 ended normally after 55 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        60
## 
##                                                   Used       Total
##   Number of observations                          2436        2800
## 
## Model Test User Model:
##                                                       
##   Test statistic                              4165.467
##   Degrees of freedom                               265
##   P-value (Chi-square)                           0.000
## 
## Model Test Baseline Model:
## 
##   Test statistic                             18222.116
##   Degrees of freedom                               300
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.782
##   Tucker-Lewis Index (TLI)                       0.754
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)             -99840.238
##   Loglikelihood unrestricted model (H1)     -97757.504
##                                                       
##   Akaike (AIC)                              199800.476
##   Bayesian (BIC)                            200148.363
##   Sample-size adjusted Bayesian (SABIC)     199957.729
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.078
##   90 Percent confidence interval - lower         0.076
##   90 Percent confidence interval - upper         0.080
##   P-value H_0: RMSEA <= 0.050                    0.000
##   P-value H_0: RMSEA >= 0.080                    0.037
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.075
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   A =~                                                                  
##     A1                1.000                               0.484    0.344
##     A2               -1.579    0.108  -14.650    0.000   -0.764   -0.648
##     A3               -2.030    0.134  -15.093    0.000   -0.983   -0.749
##     A4               -1.564    0.115  -13.616    0.000   -0.757   -0.510
##     A5               -1.804    0.121  -14.852    0.000   -0.873   -0.687
##   C =~                                                                  
##     C1                1.000                               0.680    0.551
##     C2                1.148    0.057   20.152    0.000    0.781    0.592
##     C3                1.036    0.054   19.172    0.000    0.705    0.546
##     C4               -1.421    0.065  -21.924    0.000   -0.967   -0.702
##     C5               -1.489    0.072  -20.694    0.000   -1.012   -0.620
##   E =~                                                                  
##     E1                1.000                               0.920    0.564
##     E2                1.226    0.051   23.899    0.000    1.128    0.699
##     E3               -0.921    0.041  -22.431    0.000   -0.847   -0.627
##     E4               -1.121    0.047  -23.977    0.000   -1.031   -0.703
##     E5               -0.808    0.039  -20.648    0.000   -0.743   -0.553
##   N =~                                                                  
##     N1                1.000                               1.300    0.825
##     N2                0.947    0.024   39.899    0.000    1.230    0.803
##     N3                0.884    0.025   35.919    0.000    1.149    0.721
##     N4                0.692    0.025   27.753    0.000    0.899    0.573
##     N5                0.628    0.026   24.027    0.000    0.816    0.503
##   O =~                                                                  
##     O1                1.000                               0.635    0.564
##     O2               -1.020    0.068  -14.962    0.000   -0.648   -0.418
##     O3                1.373    0.072   18.942    0.000    0.872    0.724
##     O4                0.437    0.048    9.160    0.000    0.277    0.233
##     O5               -0.960    0.060  -16.056    0.000   -0.610   -0.461
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   A ~~                                                                  
##     C                -0.110    0.012   -9.254    0.000   -0.334   -0.334
##     E                 0.304    0.025   12.293    0.000    0.683    0.683
##     N                 0.141    0.018    7.712    0.000    0.223    0.223
##     O                -0.093    0.011   -8.446    0.000   -0.303   -0.303
##   C ~~                                                                  
##     E                -0.224    0.020  -11.121    0.000   -0.357   -0.357
##     N                -0.250    0.025  -10.117    0.000   -0.283   -0.283
##     O                 0.130    0.014    9.190    0.000    0.301    0.301
##   E ~~                                                                  
##     N                 0.292    0.032    9.131    0.000    0.244    0.244
##     O                -0.265    0.021  -12.347    0.000   -0.453   -0.453
##   N ~~                                                                  
##     O                -0.093    0.022   -4.138    0.000   -0.112   -0.112
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .A1                1.745    0.052   33.725    0.000    1.745    0.882
##    .A2                0.807    0.028   28.396    0.000    0.807    0.580
##    .A3                0.754    0.032   23.339    0.000    0.754    0.438
##    .A4                1.632    0.051   31.796    0.000    1.632    0.740
##    .A5                0.852    0.032   26.800    0.000    0.852    0.528
##    .C1                1.063    0.035   30.073    0.000    1.063    0.697
##    .C2                1.130    0.039   28.890    0.000    1.130    0.650
##    .C3                1.170    0.039   30.194    0.000    1.170    0.702
##    .C4                0.960    0.040   24.016    0.000    0.960    0.507
##    .C5                1.640    0.059   27.907    0.000    1.640    0.615
##    .E1                1.814    0.058   31.047    0.000    1.814    0.682
##    .E2                1.332    0.049   26.928    0.000    1.332    0.512
##    .E3                1.108    0.038   29.522    0.000    1.108    0.607
##    .E4                1.088    0.041   26.732    0.000    1.088    0.506
##    .E5                1.251    0.040   31.258    0.000    1.251    0.694
##    .N1                0.793    0.037   21.575    0.000    0.793    0.320
##    .N2                0.836    0.036   23.458    0.000    0.836    0.356
##    .N3                1.222    0.043   28.271    0.000    1.222    0.481
##    .N4                1.654    0.052   31.977    0.000    1.654    0.672
##    .N5                1.969    0.060   32.889    0.000    1.969    0.747
##    .O1                0.865    0.032   27.216    0.000    0.865    0.682
##    .O2                1.990    0.063   31.618    0.000    1.990    0.826
##    .O3                0.691    0.039   17.717    0.000    0.691    0.476
##    .O4                1.346    0.040   34.036    0.000    1.346    0.946
##    .O5                1.380    0.045   30.662    0.000    1.380    0.788
##     A                 0.234    0.030    7.839    0.000    1.000    1.000
##     C                 0.463    0.036   12.810    0.000    1.000    1.000
##     E                 0.846    0.062   13.693    0.000    1.000    1.000
##     N                 1.689    0.073   23.034    0.000    1.000    1.000
##     O                 0.404    0.033   12.156    0.000    1.000    1.000
semPaths(CFA_BFIfit)

#gives you the correlations and residuls - squaring the factor pattern only shows you the direct relationship 
inspect(cfa(CFA_BFIfit, bfiT), what ="std")
## $lambda
##         A      C      E     N      O
## A1  0.344  0.000  0.000 0.000  0.000
## A2 -0.648  0.000  0.000 0.000  0.000
## A3 -0.749  0.000  0.000 0.000  0.000
## A4 -0.510  0.000  0.000 0.000  0.000
## A5 -0.687  0.000  0.000 0.000  0.000
## C1  0.000  0.551  0.000 0.000  0.000
## C2  0.000  0.592  0.000 0.000  0.000
## C3  0.000  0.546  0.000 0.000  0.000
## C4  0.000 -0.702  0.000 0.000  0.000
## C5  0.000 -0.620  0.000 0.000  0.000
## E1  0.000  0.000  0.564 0.000  0.000
## E2  0.000  0.000  0.699 0.000  0.000
## E3  0.000  0.000 -0.627 0.000  0.000
## E4  0.000  0.000 -0.703 0.000  0.000
## E5  0.000  0.000 -0.553 0.000  0.000
## N1  0.000  0.000  0.000 0.825  0.000
## N2  0.000  0.000  0.000 0.803  0.000
## N3  0.000  0.000  0.000 0.721  0.000
## N4  0.000  0.000  0.000 0.573  0.000
## N5  0.000  0.000  0.000 0.503  0.000
## O1  0.000  0.000  0.000 0.000  0.564
## O2  0.000  0.000  0.000 0.000 -0.418
## O3  0.000  0.000  0.000 0.000  0.724
## O4  0.000  0.000  0.000 0.000  0.233
## O5  0.000  0.000  0.000 0.000 -0.461
## 
## $theta
##       A1    A2    A3    A4    A5    C1    C2    C3    C4    C5    E1    E2
## A1 0.882                                                                  
## A2 0.000 0.580                                                            
## A3 0.000 0.000 0.438                                                      
## A4 0.000 0.000 0.000 0.740                                                
## A5 0.000 0.000 0.000 0.000 0.528                                          
## C1 0.000 0.000 0.000 0.000 0.000 0.697                                    
## C2 0.000 0.000 0.000 0.000 0.000 0.000 0.650                              
## C3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.702                        
## C4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.507                  
## C5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.615            
## E1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.682      
## E2 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.512
## E3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## E4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## E5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## N1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## N2 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## N3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## N4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## N5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## O1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## O2 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## O3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## O4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
## O5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##       E3    E4    E5    N1    N2    N3    N4    N5    O1    O2    O3    O4
## A1                                                                        
## A2                                                                        
## A3                                                                        
## A4                                                                        
## A5                                                                        
## C1                                                                        
## C2                                                                        
## C3                                                                        
## C4                                                                        
## C5                                                                        
## E1                                                                        
## E2                                                                        
## E3 0.607                                                                  
## E4 0.000 0.506                                                            
## E5 0.000 0.000 0.694                                                      
## N1 0.000 0.000 0.000 0.320                                                
## N2 0.000 0.000 0.000 0.000 0.356                                          
## N3 0.000 0.000 0.000 0.000 0.000 0.481                                    
## N4 0.000 0.000 0.000 0.000 0.000 0.000 0.672                              
## N5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.747                        
## O1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.682                  
## O2 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.826            
## O3 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.476      
## O4 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.946
## O5 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##       O5
## A1      
## A2      
## A3      
## A4      
## A5      
## C1      
## C2      
## C3      
## C4      
## C5      
## E1      
## E2      
## E3      
## E4      
## E5      
## N1      
## N2      
## N3      
## N4      
## N5      
## O1      
## O2      
## O3      
## O4      
## O5 0.788
## 
## $psi
##        A      C      E      N      O
## A  1.000                            
## C -0.334  1.000                     
## E  0.683 -0.357  1.000              
## N  0.223 -0.283  0.244  1.000       
## O -0.303  0.301 -0.453 -0.112  1.000

#factor correlations