Factor Analysis in R
Jennifer Brussow
Psychometrician
theory_syn
Path Parameter StartValue
1 AGE-> A1 lam[A1:AGE]
2 AGE-> A2 lam[A2:AGE]
3 AGE-> A3 lam[A3:AGE]
4 AGE-> A4 lam[A4:AGE]
5 AGE-> A5 lam[A5:AGE]
6 CON-> C1 lam[C1:CON]
7 CON-> C2 lam[C2:CON]
8 CON-> C3 lam[C3:CON]
9 CON-> C4 lam[C4:CON]
10 CON-> C5 lam[C5:CON]
11 EXT-> E1 lam[E1:EXT]
...
theory_syn
Path Parameter StartValue
26 AGE <-> AGE <fixed> 1
27 CON <-> CON <fixed> 1
28 EXT <-> EXT <fixed> 1
29 NEU <-> NEU <fixed> 1
30 OPE <-> OPE <fixed> 1
theory_syn
Path Parameter StartValue
31 AGE <-> CON C[AGE,CON]
32 AGE <-> EXT C[AGE,EXT]
33 AGE <-> NEU C[AGE,NEU]
34 AGE <-> OPE C[AGE,OPE]
35 CON <-> EXT C[CON,EXT]
36 CON <-> NEU C[CON,NEU]
37 CON <-> OPE C[CON,OPE]
38 EXT <-> NEU C[EXT,NEU]
39 EXT <-> OPE C[EXT,OPE]
40 NEU <-> OPE C[NEU,OPE]
theory_syn
Path Parameter StartValue
41 A1 <-> A1 V[A1]
42 A2 <-> A2 V[A2]
43 A3 <-> A3 V[A3]
44 A4 <-> A4 V[A4]
45 A5 <-> A5 V[A5]
46 C1 <-> C1 V[C1]
47 C2 <-> C2 V[C2]
48 C3 <-> C3 V[C3]
49 C4 <-> C4 V[C4]
50 C5 <-> C5 V[C5]
51 E1 <-> E1 V[E1]
52 E2 <-> E2 V[E2]
...
Actually running the CFA is much easier than setting up the syntax!
#Use the sem() function to run a CFA
theory_CFA <- sem(theory_syn, data = bfi_CFA)
summary(theory_CFA)
Model Chisquare = 2212.032 Df = 265 Pr(>Chisq) = 9.662018e-304 AIC = 2332.032 BIC = 326.618 Normalized Residuals Min. 1st Qu. Median Mean 3rd Qu. Max. -5.5800 -0.3732 1.0350 1.1220 2.4710 8.9000
R-square for Endogenous Variables A1 A2 A3 A4 A5 C1 C2 C3 C4 0.1178 0.4475 0.5731 0.2994 0.4713 0.3006 0.3667 0.2947 0.4886 ...
Parameter Estimates Estimate Std Error z value Pr(>|z|) lam[A1:AGE] -0.5011716 0.04487184 -11.168956 5.785714e-29 A1 <--- AGE lam[A2:AGE] 0.8230960 0.03447831 23.872862 5.863008e-126 A2 <--- AGE ...
Factor Analysis in R