SDT Confirmatory Factor Analaysis

Data Preperation

setwd("/Users/phparker/Dropbox/Chris")
library(foreign)
data <- read.spss(list.files(pattern = "^.*sav$"), to.data.frame=TRUE, use.value.labels=FALSE)
names(data)
##  [1] "MAT_AUT1_b" "MAT_AUT2_b" "MAT_AUT3_b" "MAT_AUT4_b" "MAT_AUT5_b"
##  [6] "MAT_AUT6_b" "MAT_CON1_b" "MAT_CON2_b" "MAT_CON3_b" "MAT_CON4_b"
## [11] "MAT_CON5_b" "MAT_AMO1_b" "MAT_AMO2_b" "MAT_AMO3_b" "MAT_AMO4_b"
## [16] "MAT_AMO5_b"

Reliability and Descriptives

library(psych)
cat("Relibaility for Autonomous motivation is: ", glb(data[,grep("^.*AUT.*$", names(data))])$glb.max)
## Relibaility for Autonomous motivation is:  0.9317
cat("Relibaility for Controlled motivation is: ", glb(data[,grep("^.*CON.*$", names(data))])$glb.max)
## Relibaility for Controlled motivation is:  0.8307
cat("Relibaility for Amotivation is: ", glb(data[,grep("^.*AMO.*$", names(data))])$glb.max)
## Relibaility for Amotivation is:  0.8547
cat("Descriptives are: ")
## Descriptives are:
describe(data)
##            vars   n mean   sd median trimmed  mad min max range  skew
## MAT_AUT1_b    1 239 3.00 1.00      3    3.02 1.48   1   5     4 -0.08
## MAT_AUT2_b    2 239 3.19 1.11      3    3.22 1.48   1   5     4 -0.17
## MAT_AUT3_b    3 239 2.87 1.06      3    2.89 1.48   1   5     4 -0.05
## MAT_AUT4_b    4 239 2.91 1.13      3    2.89 1.48   1   5     4  0.09
## MAT_AUT5_b    5 239 2.73 1.19      3    2.67 1.48   1   5     4  0.24
## MAT_AUT6_b    6 239 3.36 1.16      3    3.45 1.48   1   5     4 -0.48
## MAT_CON1_b    7 239 2.01 0.96      2    1.90 1.48   1   5     4  0.77
## MAT_CON2_b    8 239 2.05 1.00      2    1.93 1.48   1   5     4  0.84
## MAT_CON3_b    9 239 1.97 1.12      2    1.78 1.48   1   5     4  1.14
## MAT_CON4_b   10 239 2.69 1.24      3    2.63 1.48   1   5     4  0.26
## MAT_CON5_b   11 239 2.02 1.18      2    1.83 1.48   1   5     4  1.03
## MAT_AMO1_b   12 239 2.63 0.99      3    2.62 1.48   1   5     4  0.05
## MAT_AMO2_b   13 239 2.19 1.00      2    2.08 1.48   1   5     4  0.79
## MAT_AMO3_b   14 239 2.14 1.06      2    2.01 1.48   1   5     4  0.76
## MAT_AMO4_b   15 239 2.19 1.07      2    2.05 1.48   1   5     4  0.88
## MAT_AMO5_b   16 239 2.14 0.97      2    2.06 1.48   1   5     4  0.78
##            kurtosis   se
## MAT_AUT1_b    -0.15 0.06
## MAT_AUT2_b    -0.57 0.07
## MAT_AUT3_b    -0.60 0.07
## MAT_AUT4_b    -0.71 0.07
## MAT_AUT5_b    -0.76 0.08
## MAT_AUT6_b    -0.44 0.07
## MAT_CON1_b     0.06 0.06
## MAT_CON2_b     0.30 0.06
## MAT_CON3_b     0.58 0.07
## MAT_CON4_b    -0.95 0.08
## MAT_CON5_b     0.14 0.08
## MAT_AMO1_b    -0.50 0.06
## MAT_AMO2_b     0.42 0.06
## MAT_AMO3_b    -0.09 0.07
## MAT_AMO4_b     0.33 0.07
## MAT_AMO5_b     0.64 0.06

CFA Reslts: Model 1

library(lavaan)
#Functions for writting lavan syntax. Functions are modular:
#   syntaxCreate: writes a script for a single latent variable
#   syntaxWrite: loops through arguments to write multiple lines of lavaan code
syntaxCreate <- function(latent = latent, item = item){
  pasteFun <- function(x,y) paste(x, "+", y)
  temp <- Reduce(pasteFun, item)
  paste(latent, "=~", temp, "\n")
}

syntaxWrite <- function(latent=c(), itemStem=c(), data){
  itemS = lapply(itemStem, function(x) grep(paste0("^.*",x,".*$"), names(data), value=TRUE))
  returnList=list()
  for (i in 1:length(latent)){
    returnList[[i]]<- syntaxCreate(latent = latent[i], item = itemS[[i]])
  }
do.call(paste,returnList)
}
#Write lavaan code
M1 <- syntaxWrite(latent=c("Autonomus", "Controlled", "Amotivation"), itemStem=c("AUT", "CON", "AMO"), data)
SDTfit <- sem(M1, data=data, estimator = "MLR", missing = "ML")
fitMeasures(SDTfit)[c("rmsea", "cfi", "tli")]
##  rmsea    cfi    tli 
## 0.1071 0.8401 0.8100
summary(SDTfit, fit.measures=TRUE, standardize=TRUE, rsquare=TRUE)
## lavaan (0.5-16) converged normally after  64 iterations
## 
##   Number of observations                           239
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML      Robust
##   Minimum Function Test Statistic              377.793     326.223
##   Degrees of freedom                               101         101
##   P-value (Chi-square)                           0.000       0.000
##   Scaling correction factor                                  1.158
##     for the Yuan-Bentler correction
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1850.999    1453.024
##   Degrees of freedom                               120         120
##   P-value                                        0.000       0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.840       0.831
##   Tucker-Lewis Index (TLI)                       0.810       0.799
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -4957.206   -4957.206
##   Scaling correction factor                                  1.313
##     for the MLR correction
##   Loglikelihood unrestricted model (H1)      -4768.309   -4768.309
##   Scaling correction factor                                  1.210
##     for the MLR correction
## 
##   Number of free parameters                         51          51
##   Akaike (AIC)                               10016.412   10016.412
##   Bayesian (BIC)                             10193.711   10193.711
##   Sample-size adjusted Bayesian (BIC)        10032.055   10032.055
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.107       0.097
##   90 Percent Confidence Interval          0.096  0.119       0.086  0.108
##   P-value RMSEA <= 0.05                          0.000       0.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.099       0.099
## 
## Parameter estimates:
## 
##   Information                                 Observed
##   Standard Errors                   Robust.huber.white
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   Autonomus =~
##     MAT_AUT1_b        1.000                               0.874    0.876
##     MAT_AUT2_b        1.138    0.047   24.073    0.000    0.995    0.894
##     MAT_AUT3_b        0.960    0.059   16.215    0.000    0.839    0.791
##     MAT_AUT4_b        0.954    0.065   14.574    0.000    0.834    0.741
##     MAT_AUT5_b        0.776    0.096    8.087    0.000    0.679    0.571
##     MAT_AUT6_b        0.785    0.081    9.696    0.000    0.686    0.595
##   Controlled =~
##     MAT_CON1_b        1.000                               0.418    0.437
##     MAT_CON2_b        0.976    0.128    7.635    0.000    0.408    0.409
##     MAT_CON3_b        2.205    0.648    3.404    0.001    0.921    0.821
##     MAT_CON4_b        1.786    0.593    3.011    0.003    0.746    0.604
##     MAT_CON5_b        1.764    0.600    2.939    0.003    0.737    0.628
##   Amotivation =~
##     MAT_AMO1_b        1.000                               0.429    0.434
##     MAT_AMO2_b        1.660    0.258    6.443    0.000    0.712    0.710
##     MAT_AMO3_b        1.927    0.331    5.822    0.000    0.827    0.781
##     MAT_AMO4_b        2.182    0.373    5.848    0.000    0.937    0.874
##     MAT_AMO5_b        1.534    0.303    5.069    0.000    0.658    0.683
## 
## Covariances:
##   Autonomus ~~
##     Controlled       -0.033    0.032   -1.030    0.303   -0.090   -0.090
##     Amotivation      -0.166    0.044   -3.788    0.000   -0.443   -0.443
##   Controlled ~~
##     Amotivation       0.045    0.025    1.842    0.065    0.252    0.252
## 
## Intercepts:
##     MAT_AUT1_b        3.000    0.065   46.476    0.000    3.000    3.006
##     MAT_AUT2_b        3.186    0.072   44.282    0.000    3.186    2.864
##     MAT_AUT3_b        2.868    0.069   41.789    0.000    2.868    2.703
##     MAT_AUT4_b        2.911    0.073   39.940    0.000    2.911    2.584
##     MAT_AUT5_b        2.726    0.077   35.477    0.000    2.726    2.295
##     MAT_AUT6_b        3.364    0.075   45.103    0.000    3.364    2.917
##     MAT_CON1_b        2.013    0.062   32.506    0.000    2.013    2.103
##     MAT_CON2_b        2.055    0.065   31.821    0.000    2.055    2.058
##     MAT_CON3_b        1.970    0.073   27.142    0.000    1.970    1.756
##     MAT_CON4_b        2.694    0.080   33.721    0.000    2.694    2.181
##     MAT_CON5_b        2.017    0.076   26.556    0.000    2.017    1.718
##     MAT_AMO1_b        2.626    0.064   41.048    0.000    2.626    2.655
##     MAT_AMO2_b        2.188    0.065   33.736    0.000    2.188    2.182
##     MAT_AMO3_b        2.136    0.068   31.189    0.000    2.136    2.017
##     MAT_AMO4_b        2.188    0.069   31.553    0.000    2.188    2.041
##     MAT_AMO5_b        2.137    0.062   34.273    0.000    2.137    2.217
##     Autonomus         0.000                               0.000    0.000
##     Controlled        0.000                               0.000    0.000
##     Amotivation       0.000                               0.000    0.000
## 
## Variances:
##     MAT_AUT1_b        0.231    0.035                      0.231    0.232
##     MAT_AUT2_b        0.247    0.049                      0.247    0.200
##     MAT_AUT3_b        0.422    0.067                      0.422    0.374
##     MAT_AUT4_b        0.573    0.071                      0.573    0.452
##     MAT_AUT5_b        0.951    0.113                      0.951    0.674
##     MAT_AUT6_b        0.859    0.091                      0.859    0.646
##     MAT_CON1_b        0.741    0.098                      0.741    0.809
##     MAT_CON2_b        0.830    0.106                      0.830    0.833
##     MAT_CON3_b        0.410    0.085                      0.410    0.325
##     MAT_CON4_b        0.969    0.129                      0.969    0.635
##     MAT_CON5_b        0.836    0.154                      0.836    0.606
##     MAT_AMO1_b        0.794    0.075                      0.794    0.812
##     MAT_AMO2_b        0.498    0.082                      0.498    0.495
##     MAT_AMO3_b        0.436    0.077                      0.436    0.390
##     MAT_AMO4_b        0.272    0.064                      0.272    0.237
##     MAT_AMO5_b        0.496    0.096                      0.496    0.534
##     Autonomus         0.765    0.094                      1.000    1.000
##     Controlled        0.175    0.092                      1.000    1.000
##     Amotivation       0.184    0.066                      1.000    1.000
## 
## R-Square:
## 
##     MAT_AUT1_b        0.768
##     MAT_AUT2_b        0.800
##     MAT_AUT3_b        0.626
##     MAT_AUT4_b        0.548
##     MAT_AUT5_b        0.326
##     MAT_AUT6_b        0.354
##     MAT_CON1_b        0.191
##     MAT_CON2_b        0.167
##     MAT_CON3_b        0.675
##     MAT_CON4_b        0.365
##     MAT_CON5_b        0.394
##     MAT_AMO1_b        0.188
##     MAT_AMO2_b        0.505
##     MAT_AMO3_b        0.610
##     MAT_AMO4_b        0.763
##     MAT_AMO5_b        0.466

CFA Results: Model 2

The problem here is a negative variance on item MAT_CON3_b. I suggest you have a closer look at this item. I cannot see anything clearly wrong and one option would be to just ignore it (not really a good idea).

data2 <- data[,c(1,2,4,6,7,9,10,13,14,15,16)]
#Write lavaan code
M1 <- syntaxWrite(latent=c("Autonomus", "Controlled", "Amotivation"), itemStem=c("AUT", "CON", "AMO"), data2)
SDTfit <- sem(M1, data=data2, estimator="MLR", missing = "ML")
summary(SDTfit, fit.measures=TRUE, standardize=TRUE, rsquare=TRUE)
## lavaan (0.5-16) converged normally after  83 iterations
## 
##   Number of observations                           239
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML      Robust
##   Minimum Function Test Statistic               80.113      70.554
##   Degrees of freedom                                41          41
##   P-value (Chi-square)                           0.000       0.003
##   Scaling correction factor                                  1.135
##     for the Yuan-Bentler correction
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1123.559     854.838
##   Degrees of freedom                                55          55
##   P-value                                        0.000       0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.963       0.963
##   Tucker-Lewis Index (TLI)                       0.951       0.950
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3385.754   -3385.754
##   Scaling correction factor                                  1.318
##     for the MLR correction
##   Loglikelihood unrestricted model (H1)      -3345.698   -3345.698
##   Scaling correction factor                                  1.221
##     for the MLR correction
## 
##   Number of free parameters                         36          36
##   Akaike (AIC)                                6843.508    6843.508
##   Bayesian (BIC)                              6968.661    6968.661
##   Sample-size adjusted Bayesian (BIC)         6854.551    6854.551
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.063       0.055
##   90 Percent Confidence Interval          0.042  0.084       0.034  0.075
##   P-value RMSEA <= 0.05                          0.139       0.326
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.065       0.065
## 
## Parameter estimates:
## 
##   Information                                 Observed
##   Standard Errors                   Robust.huber.white
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   Autonomus =~
##     MAT_AUT1_b        1.000                               0.875    0.877
##     MAT_AUT2_b        1.173    0.058   20.205    0.000    1.026    0.922
##     MAT_AUT4_b        0.924    0.066   13.933    0.000    0.809    0.718
##     MAT_AUT6_b        0.726    0.077    9.442    0.000    0.635    0.551
##   Controlled =~
##     MAT_CON1_b        1.000                               0.201    0.210
##     MAT_CON3_b        8.907   12.377    0.720    0.472    1.791    1.596
##     MAT_CON4_b        1.950    0.618    3.157    0.002    0.392    0.317
##   Amotivation =~
##     MAT_AMO2_b        1.000                               0.695    0.693
##     MAT_AMO3_b        1.188    0.141    8.437    0.000    0.825    0.780
##     MAT_AMO4_b        1.364    0.146    9.371    0.000    0.948    0.884
##     MAT_AMO5_b        0.946    0.142    6.642    0.000    0.657    0.682
## 
## Covariances:
##   Autonomus ~~
##     Controlled       -0.024    0.029   -0.845    0.398   -0.138   -0.138
##     Amotivation      -0.283    0.065   -4.376    0.000   -0.466   -0.466
##   Controlled ~~
##     Amotivation       0.017    0.029    0.595    0.552    0.125    0.125
## 
## Intercepts:
##     MAT_AUT1_b        3.000    0.065   46.476    0.000    3.000    3.006
##     MAT_AUT2_b        3.186    0.072   44.282    0.000    3.186    2.864
##     MAT_AUT4_b        2.911    0.073   39.940    0.000    2.911    2.584
##     MAT_AUT6_b        3.364    0.075   45.103    0.000    3.364    2.917
##     MAT_CON1_b        2.013    0.062   32.506    0.000    2.013    2.103
##     MAT_CON3_b        1.970    0.073   27.142    0.000    1.970    1.756
##     MAT_CON4_b        2.694    0.080   33.721    0.000    2.694    2.181
##     MAT_AMO2_b        2.188    0.065   33.736    0.000    2.188    2.182
##     MAT_AMO3_b        2.136    0.068   31.189    0.000    2.136    2.017
##     MAT_AMO4_b        2.188    0.069   31.553    0.000    2.188    2.041
##     MAT_AMO5_b        2.137    0.062   34.273    0.000    2.137    2.217
##     Autonomus         0.000                               0.000    0.000
##     Controlled        0.000                               0.000    0.000
##     Amotivation       0.000                               0.000    0.000
## 
## Variances:
##     MAT_AUT1_b        0.231    0.039                      0.231    0.232
##     MAT_AUT2_b        0.185    0.055                      0.185    0.149
##     MAT_AUT4_b        0.616    0.082                      0.616    0.485
##     MAT_AUT6_b        0.927    0.097                      0.927    0.697
##     MAT_CON1_b        0.876    0.104                      0.876    0.956
##     MAT_CON3_b       -1.949    3.929                     -1.949   -1.548
##     MAT_CON4_b        1.372    0.222                      1.372    0.899
##     MAT_AMO2_b        0.522    0.083                      0.522    0.519
##     MAT_AMO3_b        0.439    0.080                      0.439    0.392
##     MAT_AMO4_b        0.251    0.061                      0.251    0.218
##     MAT_AMO5_b        0.497    0.094                      0.497    0.535
##     Autonomus         0.765    0.093                      1.000    1.000
##     Controlled        0.040    0.064                      1.000    1.000
##     Amotivation       0.483    0.110                      1.000    1.000
## 
## R-Square:
## 
##     MAT_AUT1_b        0.768
##     MAT_AUT2_b        0.851
##     MAT_AUT4_b        0.515
##     MAT_AUT6_b        0.303
##     MAT_CON1_b        0.044
##     MAT_CON3_b           NA
##     MAT_CON4_b        0.101
##     MAT_AMO2_b        0.481
##     MAT_AMO3_b        0.608
##     MAT_AMO4_b        0.782
##     MAT_AMO5_b        0.465

Questions and Thoughts

I had a look for some problems:

#Problem Item has a strange distribution:
hist(data[,"MAT_CON3_b"])

plot of chunk problems

#Correlation matrix does have positive rank:
det(cor(data))
## [1] 0.000433
#Check Modification Indices
mi <- modindices(SDTfit)
mi[mi$op == "~~",]
##            lhs op         rhs     mi mi.scaled    epc sepc.lv sepc.all
## 1   MAT_AUT1_b ~~  MAT_AUT1_b  0.000     0.000  0.000   0.000    0.000
## 2   MAT_AUT1_b ~~  MAT_AUT2_b  2.270     1.999  0.107   0.107    0.097
## 3   MAT_AUT1_b ~~  MAT_AUT4_b  0.167     0.147 -0.018  -0.018   -0.016
## 4   MAT_AUT1_b ~~  MAT_AUT6_b  0.000     0.000  0.000   0.000    0.000
## 5   MAT_AUT1_b ~~  MAT_CON1_b  0.120     0.106  0.011   0.011    0.012
## 6   MAT_AUT1_b ~~  MAT_CON3_b  1.569     1.382  0.041   0.041    0.037
## 7   MAT_AUT1_b ~~  MAT_CON4_b  1.615     1.422 -0.049  -0.049   -0.040
## 8   MAT_AUT1_b ~~  MAT_AMO2_b  0.117     0.103 -0.010  -0.010   -0.010
## 9   MAT_AUT1_b ~~  MAT_AMO3_b  4.504     3.967  0.057   0.057    0.054
## 10  MAT_AUT1_b ~~  MAT_AMO4_b  0.530     0.467 -0.018  -0.018   -0.017
## 11  MAT_AUT1_b ~~  MAT_AMO5_b  0.358     0.315 -0.016  -0.016   -0.017
## 12  MAT_AUT2_b ~~  MAT_AUT2_b  0.000     0.000  0.000   0.000    0.000
## 13  MAT_AUT2_b ~~  MAT_AUT4_b  0.973     0.857 -0.052  -0.052   -0.042
## 14  MAT_AUT2_b ~~  MAT_AUT6_b  1.132     0.997 -0.049  -0.049   -0.038
## 15  MAT_AUT2_b ~~  MAT_CON1_b  0.192     0.169 -0.015  -0.015   -0.014
## 16  MAT_AUT2_b ~~  MAT_CON3_b  0.323     0.284 -0.021  -0.021   -0.016
## 17  MAT_AUT2_b ~~  MAT_CON4_b  1.494     1.316  0.050   0.050    0.037
## 18  MAT_AUT2_b ~~  MAT_AMO2_b  2.045     1.801  0.043   0.043    0.038
## 19  MAT_AUT2_b ~~  MAT_AMO3_b  3.690     3.250 -0.055  -0.055   -0.047
## 20  MAT_AUT2_b ~~  MAT_AMO4_b  0.439     0.386 -0.017  -0.017   -0.015
## 21  MAT_AUT2_b ~~  MAT_AMO5_b  1.428     1.257  0.035   0.035    0.032
## 22  MAT_AUT4_b ~~  MAT_AUT4_b  0.000     0.000  0.000   0.000    0.000
## 23  MAT_AUT4_b ~~  MAT_AUT6_b  3.503     3.085  0.100   0.100    0.077
## 24  MAT_AUT4_b ~~  MAT_CON1_b  1.297     1.142  0.054   0.054    0.050
## 25  MAT_AUT4_b ~~  MAT_CON3_b  0.955     0.841 -0.046  -0.046   -0.036
## 26  MAT_AUT4_b ~~  MAT_CON4_b  0.003     0.003  0.003   0.003    0.002
## 27  MAT_AUT4_b ~~  MAT_AMO2_b  1.137     1.002 -0.044  -0.044   -0.039
## 28  MAT_AUT4_b ~~  MAT_AMO3_b  1.686     1.485 -0.051  -0.051   -0.043
## 29  MAT_AUT4_b ~~  MAT_AMO4_b  3.539     3.117  0.067   0.067    0.055
## 30  MAT_AUT4_b ~~  MAT_AMO5_b  0.115     0.101 -0.013  -0.013   -0.012
## 31  MAT_AUT6_b ~~  MAT_AUT6_b  0.000     0.000  0.000   0.000    0.000
## 32  MAT_AUT6_b ~~  MAT_CON1_b  8.222     7.241  0.162   0.162    0.147
## 33  MAT_AUT6_b ~~  MAT_CON3_b  1.275     1.123 -0.063  -0.063   -0.049
## 34  MAT_AUT6_b ~~  MAT_CON4_b 10.548     9.290  0.217   0.217    0.152
## 35  MAT_AUT6_b ~~  MAT_AMO2_b  0.000     0.000  0.000   0.000    0.000
## 36  MAT_AUT6_b ~~  MAT_AMO3_b  4.146     3.651 -0.095  -0.095   -0.078
## 37  MAT_AUT6_b ~~  MAT_AMO4_b  0.230     0.202  0.020   0.020    0.016
## 38  MAT_AUT6_b ~~  MAT_AMO5_b  7.294     6.424  0.128   0.128    0.115
## 39  MAT_CON1_b ~~  MAT_CON1_b  0.000     0.000  0.000   0.000    0.000
## 40  MAT_CON1_b ~~  MAT_CON3_b  3.556     3.132 -1.007  -1.007   -0.937
## 41  MAT_CON1_b ~~  MAT_CON4_b  4.596     4.047  0.229   0.229    0.194
## 42  MAT_CON1_b ~~  MAT_AMO2_b  1.041     0.916  0.045   0.045    0.047
## 43  MAT_CON1_b ~~  MAT_AMO3_b  0.320     0.282  0.024   0.024    0.024
## 44  MAT_CON1_b ~~  MAT_AMO4_b  0.165     0.146 -0.016  -0.016   -0.015
## 45  MAT_CON1_b ~~  MAT_AMO5_b  2.375     2.092  0.066   0.066    0.072
## 46  MAT_CON3_b ~~  MAT_CON3_b  0.000     0.000  0.000   0.000    0.000
## 47  MAT_CON3_b ~~  MAT_CON4_b  0.425     0.374 -0.970  -0.970   -0.700
## 48  MAT_CON3_b ~~  MAT_AMO2_b  0.004     0.004  0.003   0.003    0.003
## 49  MAT_CON3_b ~~  MAT_AMO3_b  0.220     0.193 -0.020  -0.020   -0.017
## 50  MAT_CON3_b ~~  MAT_AMO4_b  0.001     0.001 -0.001  -0.001   -0.001
## 51  MAT_CON3_b ~~  MAT_AMO5_b  0.013     0.011  0.005   0.005    0.004
## 52  MAT_CON4_b ~~  MAT_CON4_b  0.000     0.000  0.000   0.000    0.000
## 53  MAT_CON4_b ~~  MAT_AMO2_b  0.796     0.701 -0.047  -0.047   -0.038
## 54  MAT_CON4_b ~~  MAT_AMO3_b  0.046     0.041  0.011   0.011    0.008
## 55  MAT_CON4_b ~~  MAT_AMO4_b  1.055     0.930  0.047   0.047    0.036
## 56  MAT_CON4_b ~~  MAT_AMO5_b  0.023     0.020 -0.008  -0.008   -0.006
## 57  MAT_AMO2_b ~~  MAT_AMO2_b  0.000     0.000  0.000   0.000    0.000
## 58  MAT_AMO2_b ~~  MAT_AMO3_b  0.117     0.103 -0.015  -0.015   -0.014
## 59  MAT_AMO2_b ~~  MAT_AMO4_b  0.629     0.554  0.039   0.039    0.036
## 60  MAT_AMO2_b ~~  MAT_AMO5_b  0.003     0.003 -0.002  -0.002   -0.002
## 61  MAT_AMO3_b ~~  MAT_AMO3_b  0.000     0.000  0.000   0.000    0.000
## 62  MAT_AMO3_b ~~  MAT_AMO4_b  2.711     2.387 -0.099  -0.099   -0.087
## 63  MAT_AMO3_b ~~  MAT_AMO5_b  0.252     0.222  0.021   0.021    0.021
## 64  MAT_AMO4_b ~~  MAT_AMO4_b  0.000     0.000  0.000   0.000    0.000
## 65  MAT_AMO4_b ~~  MAT_AMO5_b  0.498     0.438  0.033   0.033    0.032
## 66  MAT_AMO5_b ~~  MAT_AMO5_b  0.000     0.000  0.000   0.000    0.000
## 67   Autonomus ~~   Autonomus  0.000     0.000  0.000   0.000    0.000
## 68   Autonomus ~~  Controlled  0.000     0.000  0.000   0.000    0.000
## 69   Autonomus ~~ Amotivation  0.000     0.000  0.000   0.000    0.000
## 70  Controlled ~~  Controlled  0.000     0.000  0.000   0.000    0.000
## 71  Controlled ~~ Amotivation  0.000     0.000  0.000   0.000    0.000
## 72 Amotivation ~~ Amotivation  0.000     0.000  0.000   0.000    0.000
##    sepc.nox
## 1     0.000
## 2     0.097
## 3    -0.016
## 4     0.000
## 5     0.012
## 6     0.037
## 7    -0.040
## 8    -0.010
## 9     0.054
## 10   -0.017
## 11   -0.017
## 12    0.000
## 13   -0.042
## 14   -0.038
## 15   -0.014
## 16   -0.016
## 17    0.037
## 18    0.038
## 19   -0.047
## 20   -0.015
## 21    0.032
## 22    0.000
## 23    0.077
## 24    0.050
## 25   -0.036
## 26    0.002
## 27   -0.039
## 28   -0.043
## 29    0.055
## 30   -0.012
## 31    0.000
## 32    0.147
## 33   -0.049
## 34    0.152
## 35    0.000
## 36   -0.078
## 37    0.016
## 38    0.115
## 39    0.000
## 40   -0.937
## 41    0.194
## 42    0.047
## 43    0.024
## 44   -0.015
## 45    0.072
## 46    0.000
## 47   -0.700
## 48    0.003
## 49   -0.017
## 50   -0.001
## 51    0.004
## 52    0.000
## 53   -0.038
## 54    0.008
## 55    0.036
## 56   -0.006
## 57    0.000
## 58   -0.014
## 59    0.036
## 60   -0.002
## 61    0.000
## 62   -0.087
## 63    0.021
## 64    0.000
## 65    0.032
## 66    0.000
## 67    0.000
## 68    0.000
## 69    0.000
## 70    0.000
## 71    0.000
## 72    0.000
#Reestimate using a variance constraint
M1 <- paste(M1, "MAT_CON3_b ~~  .02*MAT_CON3_b", collapse="\n")
SDTfit <- sem(M1, data=data, estimator="MLR", missing = "ML")
summary(SDTfit, fit.measures=TRUE, standardize=TRUE, rsquare=TRUE)
## lavaan (0.5-16) converged normally after  47 iterations
## 
##   Number of observations                           239
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML      Robust
##   Minimum Function Test Statistic               84.507      73.559
##   Degrees of freedom                                42          42
##   P-value (Chi-square)                           0.000       0.002
##   Scaling correction factor                                  1.149
##     for the Yuan-Bentler correction
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1123.559     854.838
##   Degrees of freedom                                55          55
##   P-value                                        0.000       0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.960       0.961
##   Tucker-Lewis Index (TLI)                       0.948       0.948
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3387.951   -3387.951
##   Scaling correction factor                                  1.307
##     for the MLR correction
##   Loglikelihood unrestricted model (H1)      -3345.698   -3345.698
##   Scaling correction factor                                  1.221
##     for the MLR correction
## 
##   Number of free parameters                         35          35
##   Akaike (AIC)                                6845.903    6845.903
##   Bayesian (BIC)                              6967.579    6967.579
##   Sample-size adjusted Bayesian (BIC)         6856.639    6856.639
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.065       0.056
##   90 Percent Confidence Interval          0.045  0.085       0.036  0.076
##   P-value RMSEA <= 0.05                          0.105       0.290
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.066       0.066
## 
## Parameter estimates:
## 
##   Information                                 Observed
##   Standard Errors                   Robust.huber.white
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   Autonomus =~
##     MAT_AUT1_b        1.000                               0.876    0.878
##     MAT_AUT2_b        1.170    0.059   19.758    0.000    1.025    0.921
##     MAT_AUT4_b        0.922    0.067   13.815    0.000    0.808    0.717
##     MAT_AUT6_b        0.724    0.077    9.460    0.000    0.634    0.550
##   Controlled =~
##     MAT_CON1_b        1.000                               0.346    0.361
##     MAT_CON3_b        3.219    0.710    4.531    0.000    1.113    0.992
##     MAT_CON4_b        1.835    0.521    3.525    0.000    0.635    0.514
##   Amotivation =~
##     MAT_AMO2_b        1.000                               0.694    0.693
##     MAT_AMO3_b        1.189    0.140    8.502    0.000    0.826    0.780
##     MAT_AMO4_b        1.365    0.146    9.378    0.000    0.948    0.884
##     MAT_AMO5_b        0.946    0.142    6.668    0.000    0.657    0.682
## 
## Covariances:
##   Autonomus ~~
##     Controlled       -0.043    0.022   -1.934    0.053   -0.141   -0.141
##     Amotivation      -0.283    0.065   -4.376    0.000   -0.465   -0.465
##   Controlled ~~
##     Amotivation       0.052    0.027    1.948    0.051    0.216    0.216
## 
## Intercepts:
##     MAT_AUT1_b        3.000    0.065   46.476    0.000    3.000    3.006
##     MAT_AUT2_b        3.186    0.072   44.282    0.000    3.186    2.864
##     MAT_AUT4_b        2.911    0.073   39.940    0.000    2.911    2.584
##     MAT_AUT6_b        3.364    0.075   45.103    0.000    3.364    2.917
##     MAT_CON1_b        2.013    0.062   32.506    0.000    2.013    2.103
##     MAT_CON3_b        1.970    0.073   27.142    0.000    1.970    1.756
##     MAT_CON4_b        2.694    0.080   33.721    0.000    2.694    2.181
##     MAT_AMO2_b        2.188    0.065   33.736    0.000    2.188    2.182
##     MAT_AMO3_b        2.136    0.068   31.189    0.000    2.136    2.017
##     MAT_AMO4_b        2.188    0.069   31.553    0.000    2.188    2.041
##     MAT_AMO5_b        2.137    0.062   34.273    0.000    2.137    2.217
##     Autonomus         0.000                               0.000    0.000
##     Controlled        0.000                               0.000    0.000
##     Amotivation       0.000                               0.000    0.000
## 
## Variances:
##     MAT_CON3_b        0.020                               0.020    0.016
##     MAT_AUT1_b        0.228    0.040                      0.228    0.229
##     MAT_AUT2_b        0.187    0.057                      0.187    0.151
##     MAT_AUT4_b        0.617    0.082                      0.617    0.486
##     MAT_AUT6_b        0.928    0.097                      0.928    0.698
##     MAT_CON1_b        0.797    0.077                      0.797    0.869
##     MAT_CON4_b        1.123    0.105                      1.123    0.736
##     MAT_AMO2_b        0.523    0.082                      0.523    0.520
##     MAT_AMO3_b        0.439    0.080                      0.439    0.392
##     MAT_AMO4_b        0.250    0.061                      0.250    0.218
##     MAT_AMO5_b        0.497    0.094                      0.497    0.535
##     Autonomus         0.768    0.094                      1.000    1.000
##     Controlled        0.120    0.053                      1.000    1.000
##     Amotivation       0.482    0.110                      1.000    1.000
## 
## R-Square:
## 
##     MAT_CON3_b        0.984
##     MAT_AUT1_b        0.771
##     MAT_AUT2_b        0.849
##     MAT_AUT4_b        0.514
##     MAT_AUT6_b        0.302
##     MAT_CON1_b        0.131
##     MAT_CON4_b        0.264
##     MAT_AMO2_b        0.480
##     MAT_AMO3_b        0.608
##     MAT_AMO4_b        0.782
##     MAT_AMO5_b        0.465

Ok with constraint it is all fixed.

Expanded Model

data3 <- data[,c(1,2,4,6,9,10,11,13,14,15,16)]#9
#Write lavaan code
M1 <- syntaxWrite(latent=c("Autonomus", "Controlled", "Amotivation"), itemStem=c("AUT", "CON", "AMO"), data3)
SDTfit <- sem(M1, data=data, estimator = "MLR", missing = "ML")
fitMeasures(SDTfit)[c("rmsea", "cfi", "tli")]
##  rmsea    cfi    tli 
## 0.0710 0.9564 0.9415
summary(SDTfit, fit.measures=TRUE, standardize=TRUE, rsquare=TRUE)
## lavaan (0.5-16) converged normally after  33 iterations
## 
##   Number of observations                           239
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML      Robust
##   Minimum Function Test Statistic               90.397      75.469
##   Degrees of freedom                                41          41
##   P-value (Chi-square)                           0.000       0.001
##   Scaling correction factor                                  1.198
##     for the Yuan-Bentler correction
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1188.051     868.294
##   Degrees of freedom                                55          55
##   P-value                                        0.000       0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.956       0.958
##   Tucker-Lewis Index (TLI)                       0.942       0.943
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3407.540   -3407.540
##   Scaling correction factor                                  1.330
##     for the MLR correction
##   Loglikelihood unrestricted model (H1)      -3362.342   -3362.342
##   Scaling correction factor                                  1.260
##     for the MLR correction
## 
##   Number of free parameters                         36          36
##   Akaike (AIC)                                6887.080    6887.080
##   Bayesian (BIC)                              7012.233    7012.233
##   Sample-size adjusted Bayesian (BIC)         6898.123    6898.123
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.071       0.059
##   90 Percent Confidence Interval          0.051  0.091       0.040  0.078
##   P-value RMSEA <= 0.05                          0.041       0.202
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.068       0.068
## 
## Parameter estimates:
## 
##   Information                                 Observed
##   Standard Errors                   Robust.huber.white
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   Autonomus =~
##     MAT_AUT1_b        1.000                               0.876    0.878
##     MAT_AUT2_b        1.169    0.059   19.724    0.000    1.025    0.921
##     MAT_AUT4_b        0.922    0.067   13.794    0.000    0.808    0.717
##     MAT_AUT6_b        0.723    0.077    9.428    0.000    0.634    0.550
##   Controlled =~
##     MAT_CON3_b        1.000                               0.882    0.786
##     MAT_CON4_b        0.884    0.114    7.739    0.000    0.780    0.631
##     MAT_CON5_b        0.920    0.157    5.843    0.000    0.811    0.690
##   Amotivation =~
##     MAT_AMO2_b        1.000                               0.694    0.692
##     MAT_AMO3_b        1.192    0.141    8.464    0.000    0.827    0.781
##     MAT_AMO4_b        1.366    0.146    9.331    0.000    0.947    0.884
##     MAT_AMO5_b        0.948    0.143    6.643    0.000    0.658    0.682
## 
## Covariances:
##   Autonomus ~~
##     Controlled       -0.130    0.066   -1.977    0.048   -0.168   -0.168
##     Amotivation      -0.283    0.065   -4.372    0.000   -0.466   -0.466
##   Controlled ~~
##     Amotivation       0.147    0.058    2.553    0.011    0.240    0.240
## 
## Intercepts:
##     MAT_AUT1_b        3.000    0.065   46.476    0.000    3.000    3.006
##     MAT_AUT2_b        3.186    0.072   44.282    0.000    3.186    2.864
##     MAT_AUT4_b        2.911    0.073   39.940    0.000    2.911    2.584
##     MAT_AUT6_b        3.364    0.075   45.103    0.000    3.364    2.917
##     MAT_CON3_b        1.970    0.073   27.142    0.000    1.970    1.756
##     MAT_CON4_b        2.694    0.080   33.721    0.000    2.694    2.181
##     MAT_CON5_b        2.017    0.076   26.556    0.000    2.017    1.718
##     MAT_AMO2_b        2.188    0.065   33.736    0.000    2.188    2.182
##     MAT_AMO3_b        2.136    0.068   31.189    0.000    2.136    2.017
##     MAT_AMO4_b        2.188    0.069   31.553    0.000    2.188    2.041
##     MAT_AMO5_b        2.137    0.062   34.273    0.000    2.137    2.217
##     Autonomus         0.000                               0.000    0.000
##     Controlled        0.000                               0.000    0.000
##     Amotivation       0.000                               0.000    0.000
## 
## Variances:
##     MAT_AUT1_b        0.228    0.040                      0.228    0.229
##     MAT_AUT2_b        0.187    0.057                      0.187    0.151
##     MAT_AUT4_b        0.617    0.083                      0.617    0.486
##     MAT_AUT6_b        0.928    0.097                      0.928    0.698
##     MAT_CON3_b        0.481    0.131                      0.481    0.382
##     MAT_CON4_b        0.918    0.111                      0.918    0.601
##     MAT_CON5_b        0.722    0.163                      0.722    0.523
##     MAT_AMO2_b        0.524    0.083                      0.524    0.521
##     MAT_AMO3_b        0.437    0.080                      0.437    0.390
##     MAT_AMO4_b        0.252    0.062                      0.252    0.219
##     MAT_AMO5_b        0.496    0.095                      0.496    0.534
##     Autonomus         0.768    0.094                      1.000    1.000
##     Controlled        0.778    0.156                      1.000    1.000
##     Amotivation       0.481    0.110                      1.000    1.000
## 
## R-Square:
## 
##     MAT_AUT1_b        0.771
##     MAT_AUT2_b        0.849
##     MAT_AUT4_b        0.514
##     MAT_AUT6_b        0.302
##     MAT_CON3_b        0.618
##     MAT_CON4_b        0.399
##     MAT_CON5_b        0.477
##     MAT_AMO2_b        0.479
##     MAT_AMO3_b        0.610
##     MAT_AMO4_b        0.781
##     MAT_AMO5_b        0.466
#Fit not so great
mi <- modindices(SDTfit)
mi[mi$op == "~~",]
##            lhs op         rhs     mi mi.scaled    epc sepc.lv sepc.all
## 1   MAT_AUT1_b ~~  MAT_AUT1_b  0.000     0.000  0.000   0.000    0.000
## 2   MAT_AUT1_b ~~  MAT_AUT2_b  1.545     1.290  0.091   0.091    0.082
## 3   MAT_AUT1_b ~~  MAT_AUT4_b  0.240     0.200 -0.022  -0.022   -0.020
## 4   MAT_AUT1_b ~~  MAT_AUT6_b  0.000     0.000  0.000   0.000    0.000
## 5   MAT_AUT1_b ~~  MAT_CON3_b  1.394     1.164  0.038   0.038    0.034
## 6   MAT_AUT1_b ~~  MAT_CON4_b  0.862     0.719 -0.035  -0.035   -0.029
## 7   MAT_AUT1_b ~~  MAT_CON5_b  0.380     0.317 -0.022  -0.022   -0.018
## 8   MAT_AUT1_b ~~  MAT_AMO2_b  0.109     0.091 -0.009  -0.009   -0.009
## 9   MAT_AUT1_b ~~  MAT_AMO3_b  4.824     4.027  0.059   0.059    0.056
## 10  MAT_AUT1_b ~~  MAT_AMO4_b  0.460     0.384 -0.017  -0.017   -0.016
## 11  MAT_AUT1_b ~~  MAT_AMO5_b  0.342     0.286 -0.016  -0.016   -0.017
## 12  MAT_AUT2_b ~~  MAT_AUT2_b  0.000     0.000  0.000   0.000    0.000
## 13  MAT_AUT2_b ~~  MAT_AUT4_b  0.674     0.563 -0.044  -0.044   -0.035
## 14  MAT_AUT2_b ~~  MAT_AUT6_b  0.864     0.722 -0.043  -0.043   -0.033
## 15  MAT_AUT2_b ~~  MAT_CON3_b  0.386     0.322 -0.021  -0.021   -0.017
## 16  MAT_AUT2_b ~~  MAT_CON4_b  3.895     3.252  0.080   0.080    0.058
## 17  MAT_AUT2_b ~~  MAT_CON5_b  1.933     1.614 -0.052  -0.052   -0.040
## 18  MAT_AUT2_b ~~  MAT_AMO2_b  1.962     1.638  0.042   0.042    0.038
## 19  MAT_AUT2_b ~~  MAT_AMO3_b  3.650     3.047 -0.055  -0.055   -0.047
## 20  MAT_AUT2_b ~~  MAT_AMO4_b  0.442     0.369 -0.018  -0.018   -0.015
## 21  MAT_AUT2_b ~~  MAT_AMO5_b  1.439     1.201  0.035   0.035    0.032
## 22  MAT_AUT4_b ~~  MAT_AUT4_b  0.000     0.000  0.000   0.000    0.000
## 23  MAT_AUT4_b ~~  MAT_AUT6_b  3.600     3.006  0.101   0.101    0.078
## 24  MAT_AUT4_b ~~  MAT_CON3_b  0.543     0.453 -0.035  -0.035   -0.027
## 25  MAT_AUT4_b ~~  MAT_CON4_b  0.000     0.000  0.000   0.000    0.000
## 26  MAT_AUT4_b ~~  MAT_CON5_b  0.001     0.001  0.002   0.002    0.001
## 27  MAT_AUT4_b ~~  MAT_AMO2_b  1.131     0.945 -0.044  -0.044   -0.039
## 28  MAT_AUT4_b ~~  MAT_AMO3_b  1.683     1.405 -0.051  -0.051   -0.043
## 29  MAT_AUT4_b ~~  MAT_AMO4_b  3.524     2.942  0.067   0.067    0.055
## 30  MAT_AUT4_b ~~  MAT_AMO5_b  0.110     0.092 -0.013  -0.013   -0.012
## 31  MAT_AUT6_b ~~  MAT_AUT6_b  0.000     0.000  0.000   0.000    0.000
## 32  MAT_AUT6_b ~~  MAT_CON3_b  0.017     0.014 -0.007  -0.007   -0.006
## 33  MAT_AUT6_b ~~  MAT_CON4_b  8.376     6.993  0.192   0.192    0.135
## 34  MAT_AUT6_b ~~  MAT_CON5_b  0.002     0.002 -0.003  -0.003   -0.002
## 35  MAT_AUT6_b ~~  MAT_AMO2_b  0.004     0.003 -0.003  -0.003   -0.003
## 36  MAT_AUT6_b ~~  MAT_AMO3_b  4.494     3.752 -0.099  -0.099   -0.081
## 37  MAT_AUT6_b ~~  MAT_AMO4_b  0.115     0.096  0.014   0.014    0.012
## 38  MAT_AUT6_b ~~  MAT_AMO5_b  7.028     5.868  0.125   0.125    0.113
## 39  MAT_CON3_b ~~  MAT_CON3_b  0.000     0.000  0.000   0.000    0.000
## 40  MAT_CON3_b ~~  MAT_CON4_b  6.109     5.100  0.580   0.580    0.418
## 41  MAT_CON3_b ~~  MAT_CON5_b 14.504    12.109 -1.023  -1.023   -0.776
## 42  MAT_CON3_b ~~  MAT_AMO2_b  0.617     0.515  0.035   0.035    0.031
## 43  MAT_CON3_b ~~  MAT_AMO3_b  0.406     0.339 -0.027  -0.027   -0.023
## 44  MAT_CON3_b ~~  MAT_AMO4_b  0.335     0.279  0.022   0.022    0.019
## 45  MAT_CON3_b ~~  MAT_AMO5_b  0.003     0.002 -0.002  -0.002   -0.002
## 46  MAT_CON4_b ~~  MAT_CON4_b  0.000     0.000  0.000   0.000    0.000
## 47  MAT_CON4_b ~~  MAT_CON5_b  0.819     0.683  0.179   0.179    0.123
## 48  MAT_CON4_b ~~  MAT_AMO2_b  0.877     0.732 -0.049  -0.049   -0.039
## 49  MAT_CON4_b ~~  MAT_AMO3_b  0.467     0.390 -0.034  -0.034   -0.026
## 50  MAT_CON4_b ~~  MAT_AMO4_b  0.707     0.590  0.038   0.038    0.029
## 51  MAT_CON4_b ~~  MAT_AMO5_b  0.422     0.352 -0.033  -0.033   -0.027
## 52  MAT_CON5_b ~~  MAT_CON5_b  0.000     0.000  0.000   0.000    0.000
## 53  MAT_CON5_b ~~  MAT_AMO2_b  1.086     0.907 -0.050  -0.050   -0.042
## 54  MAT_CON5_b ~~  MAT_AMO3_b  2.821     2.355  0.077   0.077    0.062
## 55  MAT_CON5_b ~~  MAT_AMO4_b  2.027     1.693 -0.059  -0.059   -0.047
## 56  MAT_CON5_b ~~  MAT_AMO5_b  1.413     1.180  0.055   0.055    0.049
## 57  MAT_AMO2_b ~~  MAT_AMO2_b  0.000     0.000  0.000   0.000    0.000
## 58  MAT_AMO2_b ~~  MAT_AMO3_b  0.109     0.091 -0.015  -0.015   -0.014
## 59  MAT_AMO2_b ~~  MAT_AMO4_b  0.865     0.722  0.045   0.045    0.042
## 60  MAT_AMO2_b ~~  MAT_AMO5_b  0.001     0.001 -0.001  -0.001   -0.002
## 61  MAT_AMO3_b ~~  MAT_AMO3_b  0.000     0.000  0.000   0.000    0.000
## 62  MAT_AMO3_b ~~  MAT_AMO4_b  3.023     2.524 -0.104  -0.104   -0.092
## 63  MAT_AMO3_b ~~  MAT_AMO5_b  0.197     0.164  0.019   0.019    0.018
## 64  MAT_AMO4_b ~~  MAT_AMO4_b  0.000     0.000  0.000   0.000    0.000
## 65  MAT_AMO4_b ~~  MAT_AMO5_b  0.474     0.396  0.032   0.032    0.031
## 66  MAT_AMO5_b ~~  MAT_AMO5_b  0.000     0.000  0.000   0.000    0.000
## 67   Autonomus ~~   Autonomus  0.000     0.000  0.000   0.000    0.000
## 68   Autonomus ~~  Controlled  0.000     0.000  0.000   0.000    0.000
## 69   Autonomus ~~ Amotivation  0.000     0.000  0.000   0.000    0.000
## 70  Controlled ~~  Controlled  0.000     0.000  0.000   0.000    0.000
## 71  Controlled ~~ Amotivation  0.000     0.000  0.000   0.000    0.000
## 72 Amotivation ~~ Amotivation  0.000     0.000  0.000   0.000    0.000
##    sepc.nox
## 1     0.000
## 2     0.082
## 3    -0.020
## 4     0.000
## 5     0.034
## 6    -0.029
## 7    -0.018
## 8    -0.009
## 9     0.056
## 10   -0.016
## 11   -0.017
## 12    0.000
## 13   -0.035
## 14   -0.033
## 15   -0.017
## 16    0.058
## 17   -0.040
## 18    0.038
## 19   -0.047
## 20   -0.015
## 21    0.032
## 22    0.000
## 23    0.078
## 24   -0.027
## 25    0.000
## 26    0.001
## 27   -0.039
## 28   -0.043
## 29    0.055
## 30   -0.012
## 31    0.000
## 32   -0.006
## 33    0.135
## 34   -0.002
## 35   -0.003
## 36   -0.081
## 37    0.012
## 38    0.113
## 39    0.000
## 40    0.418
## 41   -0.776
## 42    0.031
## 43   -0.023
## 44    0.019
## 45   -0.002
## 46    0.000
## 47    0.123
## 48   -0.039
## 49   -0.026
## 50    0.029
## 51   -0.027
## 52    0.000
## 53   -0.042
## 54    0.062
## 55   -0.047
## 56    0.049
## 57    0.000
## 58   -0.014
## 59    0.042
## 60   -0.002
## 61    0.000
## 62   -0.092
## 63    0.018
## 64    0.000
## 65    0.031
## 66    0.000
## 67    0.000
## 68    0.000
## 69    0.000
## 70    0.000
## 71    0.000
## 72    0.000
M1a <- paste(M1,"MAT_CON4_b ~~ MAT_CON5_b", collapse="\n")
SDTfit <- sem(M1a, data=data, estimator = "MLR", missing = "ML")
round(fitMeasures(SDTfit)[c("rmsea", "cfi", "tli")],3)
## rmsea   cfi   tli 
## 0.072 0.956 0.940
summary(SDTfit, fit.measures=TRUE, standardize=TRUE, rsquare=TRUE)
## lavaan (0.5-16) converged normally after  37 iterations
## 
##   Number of observations                           239
## 
##   Number of missing patterns                         1
## 
##   Estimator                                         ML      Robust
##   Minimum Function Test Statistic               89.501      75.774
##   Degrees of freedom                                40          40
##   P-value (Chi-square)                           0.000       0.001
##   Scaling correction factor                                  1.181
##     for the Yuan-Bentler correction
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1188.051     868.294
##   Degrees of freedom                                55          55
##   P-value                                        0.000       0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.956       0.956
##   Tucker-Lewis Index (TLI)                       0.940       0.940
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3407.092   -3407.092
##   Scaling correction factor                                  1.345
##     for the MLR correction
##   Loglikelihood unrestricted model (H1)      -3362.342   -3362.342
##   Scaling correction factor                                  1.260
##     for the MLR correction
## 
##   Number of free parameters                         37          37
##   Akaike (AIC)                                6888.184    6888.184
##   Bayesian (BIC)                              7016.813    7016.813
##   Sample-size adjusted Bayesian (BIC)         6899.533    6899.533
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.072       0.061
##   90 Percent Confidence Interval          0.052  0.092       0.041  0.080
##   P-value RMSEA <= 0.05                          0.036       0.163
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.067       0.067
## 
## Parameter estimates:
## 
##   Information                                 Observed
##   Standard Errors                   Robust.huber.white
## 
##                    Estimate  Std.err  Z-value  P(>|z|)   Std.lv  Std.all
## Latent variables:
##   Autonomus =~
##     MAT_AUT1_b        1.000                               0.876    0.878
##     MAT_AUT2_b        1.170    0.059   19.740    0.000    1.025    0.921
##     MAT_AUT4_b        0.922    0.067   13.804    0.000    0.808    0.717
##     MAT_AUT6_b        0.724    0.077    9.431    0.000    0.634    0.550
##   Controlled =~
##     MAT_CON3_b        1.000                               1.024    0.913
##     MAT_CON4_b        0.667    0.318    2.098    0.036    0.682    0.553
##     MAT_CON5_b        0.669    0.380    1.759    0.079    0.685    0.583
##   Amotivation =~
##     MAT_AMO2_b        1.000                               0.694    0.692
##     MAT_AMO3_b        1.190    0.141    8.431    0.000    0.826    0.780
##     MAT_AMO4_b        1.365    0.146    9.346    0.000    0.948    0.884
##     MAT_AMO5_b        0.947    0.142    6.651    0.000    0.657    0.682
## 
## Covariances:
##   MAT_CON4_b ~~
##     MAT_CON5_b        0.178    0.253    0.703    0.482    0.178    0.181
##   Autonomus ~~
##     Controlled       -0.142    0.069   -2.041    0.041   -0.158   -0.158
##     Amotivation      -0.283    0.065   -4.370    0.000   -0.465   -0.465
##   Controlled ~~
##     Amotivation       0.167    0.070    2.386    0.017    0.235    0.235
## 
## Intercepts:
##     MAT_AUT1_b        3.000    0.065   46.476    0.000    3.000    3.006
##     MAT_AUT2_b        3.186    0.072   44.282    0.000    3.186    2.864
##     MAT_AUT4_b        2.911    0.073   39.940    0.000    2.911    2.584
##     MAT_AUT6_b        3.364    0.075   45.103    0.000    3.364    2.917
##     MAT_CON3_b        1.970    0.073   27.142    0.000    1.970    1.756
##     MAT_CON4_b        2.694    0.080   33.721    0.000    2.694    2.181
##     MAT_CON5_b        2.017    0.076   26.556    0.000    2.017    1.718
##     MAT_AMO2_b        2.188    0.065   33.736    0.000    2.188    2.182
##     MAT_AMO3_b        2.136    0.068   31.189    0.000    2.136    2.017
##     MAT_AMO4_b        2.188    0.069   31.553    0.000    2.188    2.041
##     MAT_AMO5_b        2.137    0.062   34.273    0.000    2.137    2.217
##     Autonomus         0.000                               0.000    0.000
##     Controlled        0.000                               0.000    0.000
##     Amotivation       0.000                               0.000    0.000
## 
## Variances:
##     MAT_AUT1_b        0.228    0.040                      0.228    0.229
##     MAT_AUT2_b        0.187    0.057                      0.187    0.151
##     MAT_AUT4_b        0.617    0.083                      0.617    0.486
##     MAT_AUT6_b        0.928    0.097                      0.928    0.698
##     MAT_CON3_b        0.210    0.501                      0.210    0.167
##     MAT_CON4_b        1.060    0.232                      1.060    0.695
##     MAT_CON5_b        0.910    0.303                      0.910    0.660
##     MAT_AMO2_b        0.523    0.083                      0.523    0.521
##     MAT_AMO3_b        0.438    0.080                      0.438    0.391
##     MAT_AMO4_b        0.251    0.061                      0.251    0.218
##     MAT_AMO5_b        0.497    0.095                      0.497    0.535
##     Autonomus         0.768    0.094                      1.000    1.000
##     Controlled        1.049    0.545                      1.000    1.000
##     Amotivation       0.482    0.111                      1.000    1.000
## 
## R-Square:
## 
##     MAT_AUT1_b        0.771
##     MAT_AUT2_b        0.849
##     MAT_AUT4_b        0.514
##     MAT_AUT6_b        0.302
##     MAT_CON3_b        0.833
##     MAT_CON4_b        0.305
##     MAT_CON5_b        0.340
##     MAT_AMO2_b        0.479
##     MAT_AMO3_b        0.609
##     MAT_AMO4_b        0.782
##     MAT_AMO5_b        0.465
plotData <- apply(data[, grep("^.*CON.*$", names(data))],2, function(x) x+runif(length(x), -.5,.5))
pairs(plotData)

plot of chunk largeModel