I'm interested in learning about the Diagonally Weighted Least Squares (DWLS) method for confirmatory factor analysis (CFA). I'm using lavaan
package in R.
I found a couple of papers on DWLS such as
These papers mention that DWLS may be used in cases where the normality assumptions of the data are not met and/or the data is ordinal. In the toy data that I'm using, the data is not ordinal but may not meet the normality assumptions either.
When I used modeled the data, I get the following results for ML method:
lavaan 0.6-5 ended normally after 58 iterations
Estimator ML
Optimization method NLMINB
Number of free parameters 127
Used Total
Number of observations 168 273
Model Test User Model:
Test statistic 890.927
Degrees of freedom 539
P-value (Chi-square) 0.000
Model Test Baseline Model:
Test statistic 4180.744
Degrees of freedom 630
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.901
Tucker-Lewis Index (TLI) 0.884
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -6918.778
Loglikelihood unrestricted model (H1) -6473.314
Akaike (AIC) 14091.556
Bayesian (BIC) 14488.299
Sample-size adjusted Bayesian (BIC) 14086.190
Root Mean Square Error of Approximation:
RMSEA 0.062
90 Percent confidence interval - lower 0.055
90 Percent confidence interval - upper 0.070
P-value RMSEA <= 0.05 0.003
Standardized Root Mean Square Residual:
SRMR 0.057
And using ML with Robust method
lavaan 0.6-5 ended normally after 58 iterations
Estimator ML
Optimization method NLMINB
Number of free parameters 127
Used Total
Number of observations 168 273
Model Test User Model:
Standard Robust
Test Statistic 890.927 841.272
Degrees of freedom 539 539
P-value (Chi-square) 0.000 0.000
Scaling correction factor 1.059
for the Yuan-Bentler correction (Mplus variant)
Model Test Baseline Model:
Test statistic 4180.744 3891.337
Degrees of freedom 630 630
P-value 0.000 0.000
Scaling correction factor 1.074
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.901 0.907
Tucker-Lewis Index (TLI) 0.884 0.892
Robust Comparative Fit Index (CFI) 0.909
Robust Tucker-Lewis Index (TLI) 0.893
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -6918.778 -6918.778
Scaling correction factor 1.039
for the MLR correction
Loglikelihood unrestricted model (H1) -6473.314 -6473.314
Scaling correction factor 1.055
for the MLR correction
Akaike (AIC) 14091.556 14091.556
Bayesian (BIC) 14488.299 14488.299
Sample-size adjusted Bayesian (BIC) 14086.190 14086.190
Root Mean Square Error of Approximation:
RMSEA 0.062 0.058
90 Percent confidence interval - lower 0.055 0.050
90 Percent confidence interval - upper 0.070 0.065
P-value RMSEA <= 0.05 0.003 0.043
Robust RMSEA 0.059
90 Percent confidence interval - lower 0.052
90 Percent confidence interval - upper 0.067
Standardized Root Mean Square Residual:
SRMR 0.057 0.057
Although I used cfa(model, data = data, estimator = "MLR", std.lv = TRUE, std.ov = TRUE, test = "Satorra-Bentler")
for robust method, the result shows the the Yuan-Bentler correction
. Why?
And finally, the DWLS method:
lavaan 0.6-5 ended normally after 75 iterations
Estimator DWLS
Optimization method NLMINB
Number of free parameters 127
Used Total
Number of observations 168 273
Model Test User Model:
Test statistic 298.082
Degrees of freedom 539
P-value (Chi-square) 1.000
Model Test Baseline Model:
Test statistic 19920.394
Degrees of freedom 630
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 1.000
Tucker-Lewis Index (TLI) 1.015
Root Mean Square Error of Approximation:
RMSEA 0.000
90 Percent confidence interval - lower 0.000
90 Percent confidence interval - upper 0.000
P-value RMSEA <= 0.05 1.000
Standardized Root Mean Square Residual:
SRMR 0.053
So, my questions are:
Why Robust method doesn't show
Satorra-Bentler
method even though I used it in the function. Am I misunderstanding thelavaan
package for the robust method?If the data is not normally distributed, is it okay to use
DWLS
method?Why are the
CFI/TLI
is 1 and RMSEA is 0. Is this reportable?
I'm very new to cfa, and I'm attempting to learn this using lavaan
package and some papers. I hope somebody can point me in the right direction to learn more about CFA and DWLS
method.