Department of Industrial Psychology
Stellenbosch University
South Africa
We employ five items of the General Work Stress Scale, namely items 1, 4, 5, 8 and 9. Persons (n = 1377) responded to the items on a five-point rating scale.
mydata <- read.csv("~/GWScountry.csv")
names(mydata)
## [1] "Country" "i1" "i2" "i3" "i4" "i5" "i6"
## [8] "i7" "i8" "i9" "GWS"
The congeneric model is characterized by a single common factor and uncorrelated unique variances. The variance of the latent variable is fixed to unity to identify the model.
model1 <- '
Factor =~ i1 + i4 + i5 + i8 + i9
'
The variance of the latent variable is fixed to unity and the estimator is specified as robust maximum likelihood (MLM).
library(lavaan)
## Warning: package 'lavaan' was built under R version 4.2.1
## This is lavaan 0.6-12
## lavaan is FREE software! Please report any bugs.
fit.model1 <- cfa(model1,
data = mydata,
std.lv = TRUE,
estimator = "MLM")
summary(fit.model1, standardized = TRUE, fit.measures = TRUE)
## lavaan 0.6-12 ended normally after 13 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 10
##
## Number of observations 1377
##
## Model Test User Model:
## Standard Robust
## Test Statistic 16.513 12.494
## Degrees of freedom 5 5
## P-value (Chi-square) 0.006 0.029
## Scaling correction factor 1.322
## Satorra-Bentler correction
##
## Model Test Baseline Model:
##
## Test statistic 2070.746 1337.548
## Degrees of freedom 10 10
## P-value 0.000 0.000
## Scaling correction factor 1.548
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.994 0.994
## Tucker-Lewis Index (TLI) 0.989 0.989
##
## Robust Comparative Fit Index (CFI) 0.995
## Robust Tucker-Lewis Index (TLI) 0.990
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -8691.016 -8691.016
## Loglikelihood unrestricted model (H1) -8682.760 -8682.760
##
## Akaike (AIC) 17402.033 17402.033
## Bayesian (BIC) 17454.310 17454.310
## Sample-size adjusted Bayesian (BIC) 17422.544 17422.544
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.041 0.033
## 90 Percent confidence interval - lower 0.020 0.013
## 90 Percent confidence interval - upper 0.064 0.053
## P-value RMSEA <= 0.05 0.718 0.911
##
## Robust RMSEA 0.038
## 90 Percent confidence interval - lower 0.011
## 90 Percent confidence interval - upper 0.065
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.015 0.015
##
## Parameter Estimates:
##
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Factor =~
## i1 0.718 0.028 25.306 0.000 0.718 0.675
## i4 0.716 0.033 21.882 0.000 0.716 0.660
## i5 0.615 0.028 21.681 0.000 0.615 0.662
## i8 0.702 0.027 25.706 0.000 0.702 0.748
## i9 0.653 0.028 23.179 0.000 0.653 0.681
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .i1 0.615 0.030 20.243 0.000 0.615 0.544
## .i4 0.664 0.036 18.369 0.000 0.664 0.564
## .i5 0.485 0.027 17.810 0.000 0.485 0.562
## .i8 0.387 0.026 14.631 0.000 0.387 0.440
## .i9 0.494 0.029 17.322 0.000 0.494 0.537
## Factor 1.000 1.000 1.000
The essentially tau-equivalence model is characterised by a single common factor, uncorrelated unique variances, and equivalent unstandardized factor loadings. The variance of the factor is fixed to unity to identify the model.
The difference between the congeneric model and the tau-equivalence model is that the latter estimates a single factor loading across the items whereas the former estimates a factor loading for each item. In the present example the congeneric model estimates four parameters more than the tau-equivalence model.
We constrain the factor loadings to equality by giving each of them the same label (here the label is āaā).
model2 <- '
Factor =~ a*i1 + a*i4 + a*i5 + a*i8 + a*i9
'
The variance of the latent variable is fixed to unity and the estimator is specified as robust maximum likelihood (MLM).
library(lavaan)
fit.model2 <- cfa(model2,
data = mydata,
std.lv = TRUE,
estimator = "MLM")
summary(fit.model2, standardized = TRUE, fit.measures = TRUE)
## lavaan 0.6-12 ended normally after 9 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 10
## Number of equality constraints 4
##
## Number of observations 1377
##
## Model Test User Model:
## Standard Robust
## Test Statistic 32.222 25.102
## Degrees of freedom 9 9
## P-value (Chi-square) 0.000 0.003
## Scaling correction factor 1.284
## Satorra-Bentler correction
##
## Model Test Baseline Model:
##
## Test statistic 2070.746 1337.548
## Degrees of freedom 10 10
## P-value 0.000 0.000
## Scaling correction factor 1.548
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.989 0.988
## Tucker-Lewis Index (TLI) 0.987 0.987
##
## Robust Comparative Fit Index (CFI) 0.990
## Robust Tucker-Lewis Index (TLI) 0.989
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -8698.871 -8698.871
## Loglikelihood unrestricted model (H1) -8682.760 -8682.760
##
## Akaike (AIC) 17409.741 17409.741
## Bayesian (BIC) 17441.107 17441.107
## Sample-size adjusted Bayesian (BIC) 17422.048 17422.048
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.043 0.036
## 90 Percent confidence interval - lower 0.028 0.022
## 90 Percent confidence interval - upper 0.060 0.051
## P-value RMSEA <= 0.05 0.727 0.935
##
## Robust RMSEA 0.041
## 90 Percent confidence interval - lower 0.022
## 90 Percent confidence interval - upper 0.060
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.039 0.039
##
## Parameter Estimates:
##
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Factor =~
## i1 (a) 0.677 0.018 37.540 0.000 0.677 0.649
## i4 (a) 0.677 0.018 37.540 0.000 0.677 0.635
## i5 (a) 0.677 0.018 37.540 0.000 0.677 0.704
## i8 (a) 0.677 0.018 37.540 0.000 0.677 0.731
## i9 (a) 0.677 0.018 37.540 0.000 0.677 0.698
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .i1 0.631 0.027 23.083 0.000 0.631 0.579
## .i4 0.679 0.029 23.330 0.000 0.679 0.597
## .i5 0.465 0.025 18.360 0.000 0.465 0.504
## .i8 0.400 0.024 16.916 0.000 0.400 0.466
## .i9 0.483 0.027 17.903 0.000 0.483 0.513
## Factor 1.000 1.000 1.000
anova(fit.model1, fit.model2)
## Scaled Chi-Squared Difference Test (method = "satorra.bentler.2001")
##
## lavaan NOTE:
## The "Chisq" column contains standard test statistics, not the
## robust test that should be reported per model. A robust difference
## test is a function of two standard (not robust) statistics.
##
## Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
## fit.model1 5 17402 17454 16.513
## fit.model2 9 17410 17441 32.222 12.709 4 0.01279 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
The parallel items model is characterised by a single common factor, uncorrelated unique variances, equivalent unstandardized factor loadings, and equivalent unique variances. The variance of the factor is fixed to unity to identify the model.
The difference between the tau-equivalence model model and the parallel items model is that the latter estimates a single unique variance across the items whereas the former estimates a unique variance for each item. In the present example the essentially tau-equivalence model estimates four parameters more than the parallel items model.
We constrain the unique variances to equality by giving each of them the same label (here the label is ājā).
model3 <- '
Factor =~ a*i1 + a*i4 + a*i5 + a*i8 + a*i9
i1 ~~ j*i1
i4 ~~ j*i4
i5 ~~ j*i5
i8 ~~ j*i8
i9 ~~ j*i9
'
The variance of the latent variable is fixed to unity and the estimator is specified as robust maximum likelihood (MLM).
library(lavaan)
fit.model3 <- cfa(model3,
data = mydata,
std.lv = TRUE,
estimator = "MLM")
summary(fit.model3, standardized = TRUE, fit.measures = TRUE)
## lavaan 0.6-12 ended normally after 6 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 10
## Number of equality constraints 8
##
## Number of observations 1377
##
## Model Test User Model:
## Standard Robust
## Test Statistic 126.146 104.849
## Degrees of freedom 13 13
## P-value (Chi-square) 0.000 0.000
## Scaling correction factor 1.203
## Satorra-Bentler correction
##
## Model Test Baseline Model:
##
## Test statistic 2070.746 1337.548
## Degrees of freedom 10 10
## P-value 0.000 0.000
## Scaling correction factor 1.548
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.945 0.931
## Tucker-Lewis Index (TLI) 0.958 0.947
##
## Robust Comparative Fit Index (CFI) 0.946
## Robust Tucker-Lewis Index (TLI) 0.959
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -8745.833 -8745.833
## Loglikelihood unrestricted model (H1) -8682.760 -8682.760
##
## Akaike (AIC) 17495.666 17495.666
## Bayesian (BIC) 17506.121 17506.121
## Sample-size adjusted Bayesian (BIC) 17499.768 17499.768
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.080 0.072
## 90 Percent confidence interval - lower 0.067 0.060
## 90 Percent confidence interval - upper 0.092 0.083
## P-value RMSEA <= 0.05 0.000 0.001
##
## Robust RMSEA 0.079
## 90 Percent confidence interval - lower 0.065
## 90 Percent confidence interval - upper 0.093
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.082 0.082
##
## Parameter Estimates:
##
## Standard errors Robust.sem
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Factor =~
## i1 (a) 0.680 0.018 38.051 0.000 0.680 0.682
## i4 (a) 0.680 0.018 38.051 0.000 0.680 0.682
## i5 (a) 0.680 0.018 38.051 0.000 0.680 0.682
## i8 (a) 0.680 0.018 38.051 0.000 0.680 0.682
## i9 (a) 0.680 0.018 38.051 0.000 0.680 0.682
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .i1 (j) 0.531 0.014 38.193 0.000 0.531 0.534
## .i4 (j) 0.531 0.014 38.193 0.000 0.531 0.534
## .i5 (j) 0.531 0.014 38.193 0.000 0.531 0.534
## .i8 (j) 0.531 0.014 38.193 0.000 0.531 0.534
## .i9 (j) 0.531 0.014 38.193 0.000 0.531 0.534
## Factor 1.000 1.000 1.000
anova(fit.model1, fit.model2, fit.model3)
## Scaled Chi-Squared Difference Test (method = "satorra.bentler.2001")
##
## lavaan NOTE:
## The "Chisq" column contains standard test statistics, not the
## robust test that should be reported per model. A robust difference
## test is a function of two standard (not robust) statistics.
##
## Df AIC BIC Chisq Chisq diff Df diff Pr(>Chisq)
## fit.model1 5 17402 17454 16.513
## fit.model2 9 17410 17441 32.222 12.709 4 0.01279 *
## fit.model3 13 17496 17506 126.146 91.900 4 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1