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"
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
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
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
I had a look for some problems:
#Problem Item has a strange distribution:
hist(data[,"MAT_CON3_b"])
#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.
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)