use worland.dta, clear
Confirmatory Factor Analysis
An Evolving Tutorial
1 Data
Data are the Worland et al. (1984) data used in https://stats.oarc.ucla.edu/mplus/seminars/intromplus-part2/mplus-class-notesconfirmatory-factor-analysis/.
Download The Data
2 Describe The Data
describe
Contains data from worland.dta
Observations: 500
Variables: 12 11 Jul 2025 15:50
-------------------------------------------------------------------------------------
Variable Storage Display Value
name type format label Variable label
-------------------------------------------------------------------------------------
psych float %9.0g
ses float %9.0g
verbal float %9.0g verbal comprehension
vissp float %9.0g
mem float %9.0g
read float %9.0g reading score
arith float %9.0g arithmetic score
spell float %9.0g spelling score
motiv float %9.0g scholastic motivation
extra float %9.0g extraversion
harm float %9.0g harmony
stabi float %9.0g emotional stability
-------------------------------------------------------------------------------------
Sorted by:
3 Descriptive Statistics
summarize
Variable | Obs Mean Std. dev. Min Max
-------------+---------------------------------------------------------
psych | 500 -1.04e-08 1 -3.109393 3.328277
ses | 500 -6.26e-09 1 -3.213696 2.909634
verbal | 500 5.65e-10 1 -3.525905 3.169869
vissp | 500 7.09e-09 1 -3.760733 2.765674
mem | 500 8.64e-09 1 -3.122554 2.518469
-------------+---------------------------------------------------------
read | 500 6.13e-10 1 -3.283887 2.760558
arith | 500 8.49e-09 1 -2.670092 3.304831
spell | 500 1.20e-09 1 -3.136098 2.693276
motiv | 500 2.50e-08 1 -3.397121 2.646903
extra | 500 1.82e-08 1 -3.222343 3.137448
-------------+---------------------------------------------------------
harm | 500 9.02e-10 1 -3.298229 3.116372
stabi | 500 7.66e-09 1 -2.592136 2.963494
4 One Factor Model
adjust), ///
sem (motiv extra harm stabi <- /// latent variables NOT in caps
nocapslatent adjust) // latent variable
latent(
estat gof, stats(all) // goodness of fit
Endogenous variables
Measurement: motiv extra harm stabi
Exogenous variables
Latent: adjust
Fitting target model:
Iteration 0: Log likelihood = -2489.0003
Iteration 1: Log likelihood = -2481.4672
Iteration 2: Log likelihood = -2481.2452
Iteration 3: Log likelihood = -2481.2447
Iteration 4: Log likelihood = -2481.2447
Structural equation model Number of obs = 500
Estimation method: ml
Log likelihood = -2481.2447
( 1) [motiv]adjust = 1
------------------------------------------------------------------------------
| OIM
| Coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
Measurement |
motiv |
adjust | 1 (constrained)
_cons | 2.50e-08 .0446766 0.00 1.000 -.0875645 .0875646
-----------+----------------------------------------------------------------
extra |
adjust | .2107272 .052658 4.00 0.000 .1075194 .3139349
_cons | 1.82e-08 .0446766 0.00 1.000 -.0875645 .0875646
-----------+----------------------------------------------------------------
harm |
adjust | .9543468 .0558536 17.09 0.000 .8448758 1.063818
_cons | 9.02e-10 .0446766 0.00 1.000 -.0875646 .0875646
-----------+----------------------------------------------------------------
stabi |
adjust | .7218998 .0495043 14.58 0.000 .6248731 .8189265
_cons | 7.66e-09 .0446766 0.00 1.000 -.0875646 .0875646
-------------+----------------------------------------------------------------
var(e.motiv)| .1867489 .0414555 .1208659 .288544
var(e.extra)| .9619756 .0613002 .8490295 1.089947
var(e.harm)| .2591305 .0398717 .1916666 .3503407
var(e.stabi)| .5752251 .0409266 .5003522 .661302
var(adjust)| .8112512 .0736449 .6790219 .9692301
------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(2) = 218.61 Prob > chi2 = 0.0000
----------------------------------------------------------------------------
Fit statistic | Value Description
---------------------+------------------------------------------------------
Likelihood ratio |
chi2_ms(2) | 218.606 model vs. saturated
p > chi2 | 0.000
chi2_bs(6) | 927.867 baseline vs. saturated
p > chi2 | 0.000
---------------------+------------------------------------------------------
Population error |
RMSEA | 0.466 Root mean squared error of approximation
90% CI, lower bound | 0.415
upper bound | 0.519
pclose | 0.000 Probability RMSEA <= 0.05
---------------------+------------------------------------------------------
Information criteria |
AIC | 4986.489 Akaike's information criterion
BIC | 5037.065 Bayesian information criterion
---------------------+------------------------------------------------------
Baseline comparison |
CFI | 0.765 Comparative fit index
TLI | 0.295 Tucker–Lewis index
---------------------+------------------------------------------------------
Size of residuals |
SRMR | 0.134 Standardized root mean squared residual
CD | 0.888 Coefficient of determination
----------------------------------------------------------------------------
5 Multiple Factor Model
///
sem adjust) ///
(motiv extra harm stabi <- family) ///
(psych ses <- ///
(verbal vissp mem <- cog) ///
(read arith spell <- achieve), /// latent variables NOT in caps
nocapslatent adjust family cog achieve) /// latent variables
latent(
estat gof, stats(all) // goodness of fit
Endogenous variables
Measurement: motiv extra harm stabi psych ses verbal vissp mem read arith spell
Exogenous variables
Latent: adjust family cog achieve
Fitting target model:
Iteration 0: Log likelihood = -6773.8379
Iteration 1: Log likelihood = -6749.2754
Iteration 2: Log likelihood = -6745.3567
Iteration 3: Log likelihood = -6745.3247
Iteration 4: Log likelihood = -6745.3247
Structural equation model Number of obs = 500
Estimation method: ml
Log likelihood = -6745.3247
( 1) [motiv]adjust = 1
( 2) [psych]family = 1
( 3) [verbal]cog = 1
( 4) [read]achieve = 1
------------------------------------------------------------------------------------
| OIM
| Coefficient std. err. z P>|z| [95% conf. interval]
-------------------+----------------------------------------------------------------
Measurement |
motiv |
adjust | 1 (constrained)
_cons | 2.50e-08 .0446766 0.00 1.000 -.0875645 .0875646
-----------------+----------------------------------------------------------------
extra |
adjust | .2326907 .0483475 4.81 0.000 .1379313 .3274502
_cons | 1.82e-08 .0446766 0.00 1.000 -.0875645 .0875646
-----------------+----------------------------------------------------------------
harm |
adjust | .8572018 .0422357 20.30 0.000 .7744214 .9399823
_cons | 9.02e-10 .0446766 0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
stabi |
adjust | .6615586 .0452643 14.62 0.000 .5728422 .7502749
_cons | 7.66e-09 .0446766 0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
psych |
family | 1 (constrained)
_cons | -1.04e-08 .0446766 -0.00 1.000 -.0875646 .0875645
-----------------+----------------------------------------------------------------
ses |
family | -1.107189 .1146458 -9.66 0.000 -1.331891 -.8824879
_cons | -6.26e-09 .0446766 -0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
verbal |
cog | 1 (constrained)
_cons | 5.65e-10 .0446766 0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
vissp |
cog | .8332379 .0453008 18.39 0.000 .7444498 .9220259
_cons | 7.09e-09 .0446766 0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
mem |
cog | .9718118 .0435288 22.33 0.000 .8864968 1.057127
_cons | 8.64e-09 .0446766 0.00 1.000 -.0875645 .0875646
-----------------+----------------------------------------------------------------
read |
achieve | 1 (constrained)
_cons | 6.13e-10 .0446766 0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
arith |
achieve | .8420182 .0338976 24.84 0.000 .7755802 .9084563
_cons | 8.49e-09 .0446766 0.00 1.000 -.0875646 .0875646
-----------------+----------------------------------------------------------------
spell |
achieve | .9544333 .026793 35.62 0.000 .90192 1.006947
_cons | 1.20e-09 .0446766 0.00 1.000 -.0875646 .0875646
-------------------+----------------------------------------------------------------
var(e.motiv)| .0970652 .031835 .0510377 .184602
var(e.extra)| .9492189 .0604525 .8378307 1.075416
var(e.harm)| .3359976 .0325635 .2778698 .4062853
var(e.stabi)| .6036971 .0423092 .5262158 .692587
var(e.psych)| .6194198 .0530303 .5237347 .7325863
var(e.ses)| .5339105 .0553171 .4357903 .6541229
var(e.verbal)| .2589542 .0236116 .2165757 .309625
var(e.vissp)| .4848913 .0354482 .4201622 .5595925
var(e.mem)| .3000317 .0257689 .2535477 .3550377
var(e.read)| .1011367 .014162 .0768629 .1330764
var(e.arith)| .3621287 .0266028 .3135681 .4182097
var(e.spell)| .1810087 .0158956 .1523876 .2150053
var(adjust)| .9009348 .0701577 .7734077 1.04949
var(family)| .3785802 .0610473 .2759934 .5192984
var(cog)| .7390458 .0632856 .6248585 .8740998
var(achieve)| .8968633 .0640527 .7797128 1.031615
-------------------+----------------------------------------------------------------
cov(adjust,family)| -.2449657 .0401616 -6.10 0.000 -.3236809 -.1662505
cov(adjust,cog)| .5081442 .0483487 10.51 0.000 .4133826 .6029059
cov(adjust,achieve)| .5674246 .0511103 11.10 0.000 .4672503 .6675988
cov(family,cog)| -.4112623 .0464576 -8.85 0.000 -.5023175 -.3202071
cov(family,achieve)| -.362522 .0444752 -8.15 0.000 -.4496918 -.2753522
cov(cog,achieve)| .7395505 .0555865 13.30 0.000 .6306029 .8484981
------------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(48) = 600.11 Prob > chi2 = 0.0000
----------------------------------------------------------------------------
Fit statistic | Value Description
---------------------+------------------------------------------------------
Likelihood ratio |
chi2_ms(48) | 600.106 model vs. saturated
p > chi2 | 0.000
chi2_bs(66) | 4124.707 baseline vs. saturated
p > chi2 | 0.000
---------------------+------------------------------------------------------
Population error |
RMSEA | 0.152 Root mean squared error of approximation
90% CI, lower bound | 0.141
upper bound | 0.163
pclose | 0.000 Probability RMSEA <= 0.05
---------------------+------------------------------------------------------
Information criteria |
AIC | 13574.649 Akaike's information criterion
BIC | 13751.663 Bayesian information criterion
---------------------+------------------------------------------------------
Baseline comparison |
CFI | 0.864 Comparative fit index
TLI | 0.813 Tucker–Lewis index
---------------------+------------------------------------------------------
Size of residuals |
SRMR | 0.067 Standardized root mean squared residual
CD | 0.998 Coefficient of determination
----------------------------------------------------------------------------
6 Modification Indices
estat mindices
Modification indices
--------------------------------------------------------------------
| Standard
| MI df P>MI EPC EPC
---------------------+----------------------------------------------
Measurement |
motiv |
achieve | 5.186 1 0.02 .1353277 .1282876
-------------------+----------------------------------------------
extra |
family | 6.765 1 0.01 -.2539391 -.1564024
-------------------+----------------------------------------------
harm |
achieve | 6.969 1 0.01 -.136664 -.1295543
-------------------+----------------------------------------------
verbal |
family | 5.975 1 0.01 -.3081078 -.1897651
-------------------+----------------------------------------------
vissp |
adjust | 24.058 1 0.00 -.2499086 -.2374448
family | 12.508 1 0.00 -.4928809 -.3035678
achieve | 53.803 1 0.00 -.9523603 -.9028158
-------------------+----------------------------------------------
mem |
adjust | 27.787 1 0.00 .2461945 .2339159
family | 27.708 1 0.00 .6642258 .4090999
achieve | 28.251 1 0.00 .7010852 .6646127
-------------------+----------------------------------------------
read |
adjust | 42.701 1 0.00 -.2250517 -.2138276
family | 22.179 1 0.00 -.3344348 -.20598
cog | 13.673 1 0.00 .4377681 .3767164
-------------------+----------------------------------------------
arith |
adjust | 30.500 1 0.00 .2355974 .2238474
cog | 23.450 1 0.00 .5720604 .4922801
-------------------+----------------------------------------------
spell |
adjust | 8.768 1 0.00 .1036593 .0984894
family | 35.387 1 0.00 .4250929 .2618168
cog | 60.400 1 0.00 -.8767681 -.7544929
---------------------+----------------------------------------------
cov(e.motiv,e.extra)| 34.682 1 0.00 .1603303 .5282027
cov(e.motiv,e.harm)| 10.501 1 0.00 -.1791718 -.9921327
cov(e.motiv,e.stabi)| 4.129 1 0.04 -.0671961 -.2775895
cov(e.motiv,e.ses)| 4.551 1 0.03 -.0476171 -.2091686
cov(e.motiv,e.verbal)| 4.055 1 0.04 -.0305034 -.1923997
cov(e.motiv,e.vissp)| 6.431 1 0.01 -.0464394 -.2140585
cov(e.motiv,e.mem)| 15.340 1 0.00 .0613961 .3597702
cov(e.motiv,e.read)| 18.976 1 0.00 -.0493758 -.4983426
cov(e.motiv,e.arith)| 22.040 1 0.00 .0738113 .3936947
cov(e.motiv,e.spell)| 11.155 1 0.00 .0411349 .3103335
cov(e.extra,e.stabi)| 170.365 1 0.00 -.45608 -.6024878
cov(e.harm,e.stabi)| 22.937 1 0.00 .1369801 .3041443
cov(e.stabi,e.vissp)| 4.596 1 0.03 .0556954 .1029408
cov(e.psych,e.read)| 5.347 1 0.02 -.0402946 -.1609905
cov(e.psych,e.arith)| 16.448 1 0.00 .0994297 .2099385
cov(e.ses,e.verbal)| 8.293 1 0.00 .07167 .1927488
cov(e.ses,e.mem)| 8.150 1 0.00 -.0723734 -.1808261
cov(e.ses,e.spell)| 4.868 1 0.03 -.0411494 -.1323668
cov(e.verbal,e.vissp)| 13.728 1 0.00 .080398 .2268881
cov(e.verbal,e.mem)| 59.775 1 0.00 -.187443 -.6724719
cov(e.verbal,e.read)| 48.453 1 0.00 .0891319 .5507662
cov(e.verbal,e.arith)| 8.579 1 0.00 .0491063 .1603594
cov(e.verbal,e.spell)| 65.985 1 0.00 -.1102961 -.509447
cov(e.vissp,e.mem)| 20.519 1 0.00 .0991144 .2598548
cov(e.vissp,e.spell)| 11.152 1 0.00 -.054328 -.1833799
cov(e.mem,e.read)| 19.657 1 0.00 -.0582364 -.3343156
cov(e.mem,e.arith)| 12.673 1 0.00 .0622686 .1889095
cov(e.mem,e.spell)| 19.021 1 0.00 .0611912 .2625763
cov(e.read,e.arith)| 35.936 1 0.00 -.0988262 -.5164002
cov(e.read,e.spell)| 49.810 1 0.00 .1487054 1.099063
--------------------------------------------------------------------
EPC is expected parameter change.
References
Worland, Julien, David G Weeks, Cynthia L Janes, and Barbara D Strock. 1984. “Intelligence, Classroom Behavior, and Academic Achievement in Children at High and Low Risk for Psychopathology: A Structural Equation Analysis.” Journal of Abnormal Child Psychology 12: 437–54. https://doi.org/10.1007/BF00910658.