-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path803-Explorative-Faktorenanalyse.qmd
1507 lines (1332 loc) · 56.4 KB
/
803-Explorative-Faktorenanalyse.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Explorative Faktorenanalyse {#sec-explorative-faktorenanalyse}
\normalsize
<!--
## Anwendungsszenario
Latente Variablenmodelle mit psychologischer Historie
* Faktorenanalyse und Strukturgleichungsmodelle
* Erklärung von Kovarianzen (vieler) beobachteter Variablen durch (wenige) latente Variablen
Klassische und aktuelle Anwendungsszenarien
* Analyse menschlicher Fähigkeiten (g-Faktor) und Persönlichkeitspsychologie (Big Five)
* Vielzahl von Phänomenen in der Soziologie, Politikwissenschaft, Biologie, Medizin, Sprachwissenschaft, ...
Varianten
Explorative Faktorenanalyse (EFA)
* Altmodisches Verfahren mit impliziter Modellspezifikation und prinzipienfreier Schätzung
* Fokus auf der numerische Behandlung von Stichprobenkovarianzmatrizen
Konfirmative Faktorenanalyse (CFA)
* Moderneres Verfahren mit expliziter probabilistischer Modellspezifikation
* Fokus auf probabilistischer Modellschätzung und Modellevaluation
Strukturgleichungsmodelle (SEM)
* Generalisierte konfirmative Faktorenanalyse mit Faktoreninteraktion
* Linearer Spezialfall genereller probabilistischer Modelle
### Anwendungsbeispiel (1) {-}
```{r, eval = F, echo = F}
# Datensatzdefinition
D = data.frame(Freundlich = c(1,8,9,9,1,9,9),
Froh = c(5,7,9,9,1,7,9),
Nett = c(1,9,9,9,1,9,9),
Intelligent = c(5,9,8,9,9,7,7),
Gerecht = c(1,8,8,9,9,9,7))
write.csv(D, file = "./_data/803-explorative-aktorenanalyse.csv", row.names = F)
```
Sedimentationsdatensatz nach @rencher2012
Einschätzungen von 7 Personen (P1-P7) auf einer Skala von 1 bis 9 bezüglich 5 Adjektiven durch 1 Probandin
\tiny
```{r, message = F}
YT = read.csv("./_data/803-explorative-faktorenanalyse.csv") # transponierte Datenmatrix
Y = t(YT) # Datenmatrix
colnames(Y) = paste("P", 1:ncol(Y), sep = "") # Personenlabels
```
\normalsize
Datenmatrix $Y \in \mathbb{R}^{m \times n}$ mit $m = 5$ und $n = 7$
```{r, echo = F}
knitr::kable(Y, "pipe") # Tabellendarstellung
```
Anwendungsbeispiel
\tiny
```{r}
# Evaluation von Stichprobenkovarianz- und Stichprobenkorrelationsmatrix
Y = as.matrix(Y) # Y \in \mathbb{R}^{m x n}
n = ncol(Y) # Anzahl Datenpunkte
I_n = diag(n) # Einheitsmatrix I_n
J_n = matrix(rep(1,n^2), nrow = n) # 1_{nn}
C = (1/(n-1))*(Y %*% (I_n-(1/n)*J_n) %*% t(Y)) # Stichprobenkovarianzmatrix
D = diag(1/sqrt(diag(C))) # Kov-Korr-Transformationsmatrix
R = D %*% C %*% D # Stichprobenkorrelationsmatrix
```
\normalsize
Stichprobenkovarianzmatrix $C$
```{r, echo = FALSE}
knitr::kable(C, "pipe", digits = 2)
```
Stichprobenkorrelationsmatrix $R$
```{r, echo = FALSE}
rownames(R) = rownames(C)
colnames(R) = colnames(C)
knitr::kable(R, "pipe", digits = 2)
```
### Anwendungsbeispiel (2) {-}
BDI-II nach @keller2008 -->
## Modellformulierung {#sec-modellformulierung}
Wir beginnen mit folgender Definition.
:::{#def-modell-der-explorativen-faktorenanalyse}
## Modell der explorativen Faktorenanalyse
Es sei
\begin{equation}\label{eq:efa_modell}
\ups = L\xi + \eps
\end{equation}
wobei für $m > k$
* $\ups$ ein $m$-dimensionaler beobachtbarer Zufallsvektor von *Daten* ist,
* $L = (l_{ij})\in \mathbb{R}^{m \times k}$ eine Matrix ist, die *Faktorladungsmatrix* genannt wird,
* $\xi$ ein $k$-dimensionaler latenter Zufallsvektor von *Faktoren* ist, für den gilt, dass
\begin{equation}
\mathbb{E}(\xi)=0_k \mbox{ und }\mathbb{C}(\xi) = I_k,
\end{equation}
* und $\eps$ ein $m$-dimensionaler latenter und von $\xi$ unabhängiger Zufallsvektor ist,
der *Beobachtungsfehler* genannt wird und für den gilt, dass
\begin{equation}
\mathbb{E}(\eps) = 0_m
\mbox{ und }
\mathbb{C}(\eps) = \mbox{diag}\left(\psi_1,..., \psi_m\right) =: \Psi \mbox{ mit } \psi_i > 0 \mbox{ für } i = 1,...,m.
\end{equation}
Dann wird \eqref{eq:efa_modell} *Modell der explorativen Faktorenanalyse (EFA-Modell)* genannt.
:::
Wir bezeichnen Werte von $\ups$ mit $y \in \mathbb{R}^m$, Werte von $\xi$
mit $x \in \mathbb{R}^k$ und Werte von $\varepsilon$ mit $e \in \mathbb{R}^m$.
Die von den Komponenten $\ups_i, i = 1,...,m$ von $\ups$ modellierten Datenkomponenten
beziehen sich in der Analyse von Testdaten meist auf Items. Die von den
Komponenten $\xi_i , j = 1,...,k$ von $\xi$ modellierten Faktoren werden manchmal
auch *gemeinsame Faktoren (common factors)* genannt. Gemäß des Matrixproduktes $L\xi$
wird $l_{ij}$ für $i = 1,...,m$ und $j = 1,...,k$ die *Faktorladung*
des $j$ten Faktors von $\xi$ auf die $i$te Komponente von $\ups$ genannt.
Wir schreiben das EFA-Modell meist in der Kurzform
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_m,\Psi),
\end{equation}
wobei die Notation $\zeta \sim (\mu,\Sigma)$ ausdrücken soll, dass $\mathbb{E}(\zeta)= \mu$
und $\mathbb{C}(\zeta) = \Sigma$ und die Unabhängigkeit von $\xi$ und $\eps$
implizit bleiben soll. In Verteilungsform kann das EFA-Modell äquivalent
geschrieben werden als
\begin{equation}
\xi \sim (0_k,I_k) \mbox{ und } \ups\,|\,\xi \sim (L\xi,\Psi).
\end{equation}
Dabei erschließt sich die Bedingtheit der Verteilung von $\ups$ auf $\xi$ aus
datenenerativer Sicht wie folgt: Es wird zunächst ein Wert $x \in \mathbb{R}^k$
von $\xi$ realisiert, $x$ wird dann in $Lx\in \mathbb{R}^m$ transformiert. Dann wird
ein Wert $e \in \mathbb{R}^m$ von $\eps$ realisiert und schließlich werden $Lx$ und
$e$ werden zu einem Wert $y \in \mathbb{R}^m$ von $\ups$ addiert.
Das EFA-Modell kann weiterhin äquivalent in generativ-hierarchischer Form als
\begin{align}
\begin{split}
\xi & = \eta \quad\quad\quad\,\, \eta \sim (0_k,I_k) \\
\ups & = L\xi + \eps\quad\, \eps \sim (0_m,\Psi)
\end{split}
\end{align}
geschrieben werden. In dieser Darstellung nennt man $\eta$ auch das *Zustandsrauschen*.
Schließlich ergibt sich unter Hinzunahme der Annahmen normalverteilten Zustandsrauschens
und normalverteilten Beobachtungsfehlers die Verteilungsform
\begin{equation}
\xi \sim N(0_k,I_k) \mbox{ und } \ups\,|\,\xi \sim N(L\xi,\Psi).
\end{equation}
Wir werden diese Form im Kontext der konfirmativen Faktoranalyse genauer betrachten.
\hl{Spearman's Einfaktorenmodell}
\hl{Thurstones' Multifaktorenmodell}
\hl{Unique Factor vs. Error}
In der Theorie resultiert die Generation von $n$ unabhängig und identisch
verteilten Realisierungen eines EFA-Modells in einem Datensatz der Form
\begin{equation}
D
=
\begin{pmatrix}
\begin{pmatrix} x^{(1)} \\ y^{(1)} \end{pmatrix}
& \cdots
& \begin{pmatrix} x^{(n)} \\ y^{(n)} \end{pmatrix}
\end{pmatrix}
\in \mathbb{R}^{(k+m)\times n}
\end{equation}
aus konkatenierten Datenvektoren $\left(x^{{(i)}^T},y^{{(i)}^T} \right)^T \in \mathbb{R}^{k+m}$
von latenten Daten $x^{(i)}$ und beobachteten Daten $y^{(i)}$. In der Anwendung sind die
latenten Daten natürlich nicht vorhanden, sondern es liegt lediglich ein Datensatz an beobachteten Daten
\begin{equation}
Y = \begin{pmatrix} y^{(1)} & \cdots & y^{(n)} \end{pmatrix} \in \mathbb{R}^{m \times n}
\end{equation}
vor. Wir demonstrieren die Generation von Daten auf Grundlage des EFA-Modells mithilfe
folgenden **R** Codes, wobei wir uns einer Normalverteilungsannahme bedienen.
\tiny
```{r}
# Modellformulierung
library(MASS) # Multivariates Normalverteilungspaket
k = 2 # Dimension des latenten Zufallsvektors
m = 5 # Dimension des beobachtbaren Zufallsvektors
n = 7 # Beobachtungsanzahl
L = matrix(c(1,0, # Faktorladungsmatrix
1,0,
1,0,
0,1,
0,1),
nrow = m,
byrow = TRUE)
Psi = diag(c(2,2,4,5,2)) # Beobachtungsfehlerkovarianmatrix
Y = matrix(rep(NaN,m*n), nrow = m) # Simulierte beobachtete Datenmatrix
# Datengeneration
for(i in 1:n){ # Simulationsiterationen
x = mvrnorm(1,rep(0,k), diag(k)) # Realisierung des Faktorvektors
eps = mvrnorm(1,rep(0,m), Psi) # Realisierung des Beobachtungsfehlervektors
Y[,i] = L %*% x + eps # Realisierung des Datenkomponentnvektors
}
```
\normalsize
@tbl-efa-daten stellt den so gewonnenen beobachteten Datensatz $Y \in \mathbb{R}^{5\times 7}$ dar.
```{r echo = F, warning = F}
#| label: tbl-efa-daten
#| tbl-cap : "Beobachtete Daten eines simulierten EFA-Modells"
rownames(Y) = paste("y_", 1:nrow(Y), sep = "")
colnames(Y) = paste(1:ncol(Y))
knitr::kable(round(Y), "pipe")
```
### Marginale Datenkovarianzmatrix {-}
Die zentrale Eigenschaft des EFA-Modells ist die Beschaffenheit seiner marginalen
Datenkovarianzmatrix, die wir im folgenden Theorem festhalten.
:::{#thm-marginale-datenkovarianzmatrix-der-explorativen-faktorenanalyse}
## Marginale Datenkovarianzmatrix der explorativen Faktorenanalyse
Gegeben sei ein EFA-Modell
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_m,\Psi).
\end{equation}
Dann gilt für die marginale Kovarianzmatrix des Datenvektors
\begin{equation}
\mathbb{C}(\ups) = LL^T + \Psi.
\end{equation}
:::
:::{.proof}
Mit dem \hl{Theorem zu den Eigenschaften der Kovarianzmatrix} gilt aufgrund der
Unabhängigkeit von $\xi$ und $\eps$
\begin{equation}
\mathbb{C}(\ups) = L\mathbb{C}(\xi)L^T + \mathbb{C}(\eps) = LI_kL^T + \Psi = LL^T + \Psi.
\end{equation}
:::
Die marginale Datenkovarianzmatrix des EFA-Modells ist also durch die
Faktorladungsmatrix und die Kovarianzmatrix des Beobachtungsfehlers parameterisiert.
Im Anwendungskontext wird die marginale Datenkovarianzmatrix $\mathbb{C}(\ups)$
basierend auf einem Datensatz beobachteter Daten mithilfe der
Stichprobenkovarianmatrix $C$ geschätzt. Wie wir später sehen werden ist das
zentrale Ziel der Schätzung eines EFA-Modells die Approximation der Stichprobenkovarianzmatrix
$C$ durch Schätzer $\hat{L}$ von $L$ und $\hat{\Psi}$ und $\Psi$, so dass gilt
\begin{equation}
C \approx \hat{L}\hat{L}^T + \hat{\Psi}.
\end{equation}
Die Diagonaleinträge der marginalen Datenkovarianzmatrix des EFA-Modells
lassen sich additiv durch die Einträge der Faktorladungsmatrix und der
Kovarianzmatrix des Beobachtungsfehlers darstellen. Dies ist der Inhalt folgenden Theorems.
:::{#thm-varianzzerlegung-der-efa-datenkomponenten}
## Varianzzerlegung der EFA-Datenkomponenten
Gegeben sei ein EFA-Modell
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_k,\Psi).
\end{equation}
Dann ist für $i = 1,...,m$ die Varianz der $i$ten Komponente von $\ups$ gegeben durch
\begin{equation}
\mathbb{V}(\ups_i) = \sum_{j=1}^k l_{ij}^2 + \psi_i.
\end{equation}
:::
:::{.proof}
Mit @thm-marginale-datenkovarianzmatrix-der-explorativen-faktorenanalyse gilt
\begin{align}
\begin{split}
\mathbb{C}(\ups)
& = LL^T + \Psi
\\
& = \begin{pmatrix}
l_{11} & \cdots & l_{1k} \\
l_{21} & \cdots & l_{2k} \\
\vdots & \ddots & \vdots \\
l_{m1} & \cdots & l_{mk} \\
\end{pmatrix}
\begin{pmatrix}
l_{11} & \cdots & l_{m1} \\
l_{12} & \cdots & l_{m2} \\
\vdots & \ddots & \vdots \\
l_{1k} & \cdots & l_{mk} \\
\end{pmatrix}
+
\begin{pmatrix}
\psi_1 & 0 & \cdots & 0 \\
0 & \psi_2 & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & \cdots & \cdots & \psi_m \\
\end{pmatrix}
\\
& =
\begin{pmatrix}
\sum_{j=1}^k l_{1j}l_{1j} & \sum_{j=1}^k l_{1j}l_{2j} & \cdots & \sum_{j=1}^k l_{1j}l_{mj} \\
\sum_{j=1}^k l_{2j}l_{1j} & \sum_{j=1}^k l_{2j}l_{2j} & \cdots & \sum_{j=1}^k l_{2j}l_{mj} \\
\vdots & \cdots & \ddots & \vdots \\
\sum_{j=1}^k l_{mj}l_{1j} & \sum_{j=1}^k l_{mj}l_{2j} & \cdots & \sum_{j=1}^k l_{mj}l_{mj} \\
\end{pmatrix}
+
\begin{pmatrix}
\psi_1 & 0 & \cdots & 0 \\
0 & \psi_2 & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & \cdots & \cdots & \psi_m \\
\end{pmatrix}
\\
& =
\begin{pmatrix}
\sum_{j=1}^k l_{1j}^2 + \psi_1 & \sum_{j=1}^k l_{1j}l_{2j} & \cdots & \sum_{j=1}^k l_{1j}l_{mj} \\
\sum_{j=1}^k l_{2j}l_{1j} & \sum_{j=1}^k l_{2j}^2 + \psi_2 & \cdots & \sum_{j=1}^k l_{2j}l_{mj} \\
\vdots & \cdots & \ddots & \vdots \\
\sum_{j=1}^k l_{mj}l_{1j} & \sum_{j=1}^k l_{mj}l_{2j} & \cdots & \sum_{j=1}^k l_{mj}^2 + \psi_m \\
\end{pmatrix}.
\end{split}
\end{align}
Für den $i$ten Diagonaleintrag von $\mathbb{C}(\ups)$ aber gilt dann bekanntlich
$\mathbb{C}(\ups_i,\ups_i) = \mathbb{V}(\ups_i)$.
:::
Die Terme in der Varianzdarstellung der Datenkomponenten von @thm-varianzzerlegung-der-efa-datenkomponenten
erhalten im Kontext der Faktoranalyse spezielle Bezeichnungen.
:::{#def-kommunalität-spezifität}
## Kommunalität und Spezifität
Gegeben sei ein EFA-Modell
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_k,\Psi).
\end{equation}
Dann werden in
\begin{equation}
\mathbb{V}(\ups_i) = \sum_{j=1}^k l_{ij}^2 + \psi_i
\end{equation}
* $h_i^2 := \sum_{j=1}^k l_{ij}^2$ die *Kommunalität von $\ups_i$*
* $\psi_i$ die *Spezifität von $\ups_i$*
genannt.
:::
Die *Kommunalität* einer Datenkomponente $\ups_i$ ist also der Varianzanteil von $\ups_i$,
der durch die Faktorladungen erklärt wird. Die Spezifität einer Datenkomponente
$\ups_i$ dagegen ist der Varianzanteil von $\ups_i$, der nicht durch die Faktorladungen
erklärt wird und damit spezifisch für diese Datenkomponente ist. Mnemonisch gilt
für jede Datenkomponente eines EFA-Modells also
\begin{equation}
\mbox{ Varianz } = \mbox{ Kommunalität } + \mbox{ Spezifität}.
\end{equation}
Auch die Summe der Varianzen der Datenkomponenten eines EFA-Modells erhält eine
eigene Bezeichnung.
:::{#def-gesamtvarianz}
## Gesamtvarianz
Gegeben sei ein EFA-Modell
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_k,\Psi).
\end{equation}
Dann wird
\begin{equation}
\mathbb{G} := \sum_{i=1}^m \mathbb{V}(\ups_i) = \sum_{i=1}^m \sum_{j=1}^k l_{ij}^2 + \sum_{i=1}^m \psi_i
\end{equation}
die *Gesamtvarianz von $\ups$* genannt.
:::
Die Gesamtvarianz des beobachtbaren Datenvektors ist also definiert als die Summe
der Varianzen der Datenkomponenten und entspricht damit der Spur der marginalen
Datenkovarianzmatrix. Für die Gesamtvarianz gilt mnemonisch also
\begin{equation}
\mbox{ Gesamtvarianz } = \mbox{ Summe der Kommunalitäten } + \mbox{ Summe der Spezifitäten. }
\end{equation}
Wie wir später sehen werden ist die entsprechende Zerlegung der Gesamtstichprobenvarianz die
Grundlage der Evaluation der Modellgüte einer explorativen Faktorenanalyse.
### Nichtidentifizierbarkeit {-}
Eine fundamentale Eigenschaft des EFA-Modells ist seine *Nichtidentifizierbarkeit*.
Damit wird ausgedrückt, dass verschiedene Kombinationen von Faktorwerten und
Faktorladungsmatrizen in der gleichen marginale Datenkovarianzmatrix resultieren
und somit anhand einer Datenkovarianzmatrix bzw. ihrem Stichprobenäquivalent nicht
eindeutig identizifiert werden können. Um diese Eigenschaft formal zu beschreiben,
definieren wir zunächst den Begriff der orthogonalen Transformation eines EFA-Modells
:::{#def-orthogonale-transformation-eines-efa-modells}
## Orthogonale Transformation eines EFA-Modells
Gegeben sei ein EFA-Modell
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ mit } \eps \sim (0_m,\Psi)
\end{equation}
und es sei $Q \in \mathbb{R}^{k \times k}$ eine orthogonale Matrix. Dann nennen wir
\begin{equation}
\tilde{\ups} = \tilde{L}\tilde{\xi} + \eps \mbox{ mit } \tilde{L} := LQ \mbox{ und } \tilde{\xi} := Q^T\xi
\end{equation}
eine *orthogonale Transformation des EFA-Modells*.
:::
Die orthogonale Transformation eines EFA-Modells lässt den Datenvektor und seine
Kovarianzmatrix unberührt. Dies ist die Aussage folgenden Theorems.
:::{#thm-nichtidentifizierbarkeit-und-kovarianzinvarianz-der-efa}
## Nichtidentifizierbarkeit und Kovarianzinvarianz der EFA
Gegeben sei ein EFA-Modell
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ mit } \eps \sim (0_m,\Psi)
\end{equation}
sowie eine seiner orthogonale Transformationen
\begin{equation}
\tilde{\ups} = \tilde{L}\tilde{\xi} + \eps \mbox{ mit } \tilde{L} := LQ \mbox{ und } \tilde{\xi} := Q^T\xi
\end{equation}
für eine orthogonale Matrix $Q \in \mathbb{R}^{k \times k}$. Dann gelten
\begin{equation}
\ups = \tilde{\ups} \mbox{ und } \mathbb{C}(\tilde{\ups}) = \mathbb{C}(\ups)
\end{equation}
:::
:::{.proof}
Es gilt zum einen
\begin{equation}
\tilde{\ups} = \tilde{L}\tilde{\xi} + \eps = LQQ^T\xi + \eps = LI_k \xi + \eps = L\xi + \eps = \ups.
\end{equation}
Es gilt zum anderen
\begin{equation}
\mathbb{C}(\tilde{\ups}) = LQ(LQ)^T + \Psi = LQQ^TL^T + \Psi = LI_kL^T + \Psi = LL^T + \Psi = \mathbb{C}(\ups).
\end{equation}
:::
Mit
\begin{equation}
\ups = L\xi + \eps = \tilde{L}\tilde{\xi} + \eps
\end{equation}
folgt also unmittelbar, dass für einen festen Wert von $\ups$ die Faktorladungsmatrix $L$
und der Faktorvektorwert von $\xi$ nicht eindeutig bestimmt sind. Verschiedene
Faktorladungsmatrizen und Faktorwerte können also die gleichen Daten erklären und aus
einer gegebenen Stichprobenkovarianzmatrix kann nicht eindeutig auf $L$ und $\xi$
geschlossen werden. Weiterhin folgt mit
\begin{equation}
\mathbb{C}({\ups}) = LL^T + \Psi = \tilde{L}\tilde{L}^T + \Psi
\end{equation}
aber auch, dass sich die Gesamtvarianz und die Kommunalitäten bei orthogonaler
Transformation nicht ändern.
Fundamental ist die Nichtidentifizierbarkeit des EFA-Modells dadurch bedingt, dass
nach Annahme weder die Faktorladungsmatrix noch die Werte der Faktoren bekannt sind.
Dies steht im Gegensatz zum Allgemeinen Linearen Modell, bei der mit der Designmatrix das Analogon
zur Faktorladungsmatrix bekannt ist und lediglich die Beta-
und Varianzparameter identifiziert werden müssen und können. Im Kontext der
konfirmatorischen Faktoranalyse wird die Identifizierbarkeit der Parameter der
Faktorenanalyse durch eine Reihe von Nebenbedingungen gewährleistet. Es ist eine
Besonderheit der exploratorischen Faktorenanalyse, dass ihre Nichtidentifizierbarkeit
in der Anwendung nicht als fundamentale Einschränkung, sondern im Sinne der
Faktorrotation als wertvolles Merkmal aufgefasst wird.
## Modellschätzung {#sec-modellschaetzung}
\hl{$k$ immer fest vorgegeben!}
### Hauptkomponentenschätzung {#sec-hauptkomponentenschätzung}
Wir wollen zunächst mit der *Hauptkomponentenschätzung* ein basales Verfahren zur
Schätzung der Parameter eines EFA-Modells diskutieren. Grundlegende Motivation ist dabei
die Approximation der Stichprobenkovarianzmatrix eines durch ein EFA-Modell generierten
Datensatzes anhand von @thm-marginale-datenkovarianzmatrix-der-explorativen-faktorenanalyse durch
\begin{equation}
C \approx \hat{L}\hat{L}^T + \hat{\Psi}.
\end{equation}
Die Hauptkomponentenschätzung vernachlässigt dabei zunächst $\hat{\Psi}$ und
nutzt die Orthonormalzerlegung
\begin{equation}
C = Q\Lambda Q^T = Q\Lambda^{1/2}\Lambda^{1/2}Q^T = \left(Q\Lambda^{1/2}\right)\left(Q\Lambda^{1/2}\right)^T
\end{equation}
zur Darstellung von $C$. Die Hauptkomponentenschätzung vernachlässigt dann
die $k + 1,...,m$ Spalten von $Q$ und $\Lambda$ und setzt
\begin{equation}
\hat{L}\hat{L}^T = Q_k\Lambda_k^{1/2}\left(Q_k\Lambda_k^{1/2}\right)^T \mbox{ mit } \hat{L} \in \mathbb{R}^{m \times k}.
\end{equation}
Für die Diagonalelemente $c_{ii}$, $\hat{h}_i^2$ und $\hat{\psi}_{i}$ von
$C, \hat{L}\hat{L}^T$ bzw. $\hat{\Psi}$ folgt dann, dass
\begin{equation}
c_{ii} = \sum_{j=1}^k \hat{l}_{ij}^2 + \hat{\psi}_i \Leftrightarrow \hat{\psi}_i = c_{ii} - \sum_{j=1}^k \hat{l}_{ij}^2
\end{equation}
worauf sich die entsprechenden Spezifitätsschätzer bei Hauptkomponentenschätzung gründen.
Wir fassen das skizzierte Vorgehen in folgenden Definitionen zusammen.
:::{#def-hauptkomponentenschätzer-kter-ordnung-von-l-und-psi}
## Hauptkomponentenschätzer $k$ter Ordnung von $L$ und $\Psi$
Gegeben sei ein Datensatz $Y \in \mathbb{R}^{m \times n}$ von $n$ unabhängigen Beobachtungen
eines EFA-Modells
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_m,\Psi)
\end{equation}
$C \in \mathbb{R}^{m \times m}$ sei die Stichprobenkovarianzmatrix von $Y$ und
\begin{equation}
C = Q\Lambda Q^T
\end{equation}
sei ihre Orthonormalzerlegung mit spaltenweise der Größe nach sortierten Eigenwerten
und zugehörigen Eigenvektoren. Dann sind die *Hauptkomponentenschätzer $k$ter Ordnung von $L$ und $\Psi$*
definiert als
\begin{equation}
\hat{L} := Q_k\Lambda_k^{1/2} \mbox{ und } \hat{\Psi} := \mbox{diag}\left(\hat{\psi}_1, ...,\hat{\psi}_m\right)
\end{equation}
wobei $\Lambda_k$ und $Q_k$ die ersten $k$ Spalten von $\Lambda \in \mathbb{R}^{m \times m}$ und
$Q \in \mathbb{R}^{m \times m}$ und für $i = 1,...,m$
\begin{equation}
\hat{\psi}_i := c_{ii} - \sum_{j = 1}^k \hat{l}_{ij}^2
\end{equation}
mit den Diagonaleinträgen $c_{ii}$ von $C$ sind.
:::
Die Selektion der ersten $k$ Spalten von $C$ und $\Lambda$ in
@def-hauptkomponentenschätzer-kter-ordnung-von-l-und-psi impliziert ein
EFA-Modell mit $k$ Faktoren. Vor dem Hintergrund der Bezeichnungen von
@def-kommunalität-spezifität und @def-gesamtvarianz ergeben sich auf Grundlage
von @def-hauptkomponentenschätzer-kter-ordnung-von-l-und-psi folgende weitere Schätzer.
:::{#def-varianz-kommunalitäts-und-gesamtvarianzschätzer}
## Varianz-, Kommunalitäts-, Spezifitäts- und Gesamtvarianzschätzer
Für einen Datensatz $Y \in \mathbb{R}^{m \times n}$ von $n$ unabhängigen Beobachtungen
eines EFA-Modells
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_m,\Psi).
\end{equation}
und ein festes $k < m$ seien $\hat{L} = (\hat{l}_{ij})_{1 \le i \le m, 1 \le j \le k} \in \mathbb{R}^{m \times k}$ und
$\hat{\Psi} = \mbox{diag}(\hat{\psi}_1,...,\hat{\psi}_m) \in \mathbb{R}^{m \times m}$
die auf der Stichprobenkovarianzmatrix $C = (c_{ij})_{1\le i,j\le m}$ basierenden
Hauptkomponentenschätzer $k$ter Ordnung eines EFA-Modells. Dann ergeben sich für $i = 1,...,m$,
* $c_{ii}$ als Schätzer von $\mathbb{V}(\ups_i)$ (*Varianzschätzer*) ,
* $\hat{h}_i^2 := \sum_{j=1}^k \hat{l}_{ij}^2$ als Schätzer von $h_i^2$ (*Kommunalitätsschätzer*) ,
* $\hat{\psi}_i$ als Schätzer von $\psi_i$ (*Spezifitätsschätzer*) und
* $G = \mbox{tr}(C) = \sum_{i=1}^m c_{ii}$ als Schätzer von $\mathbb{G}$ (*Gesamtvarianzschätzer*).
:::
Folgender **R** Code demonstriert die Hauptkomponentenschätzung eines EFA-Modells
mit $k := 2$ für den Datensatz von Anwendungsbeispiel (1).
\tiny
```{r, echo = T}
YT = read.csv("./_data/803-explorative-faktorenanalyse.csv") # Y^T \in \mathbb{R}^{n x m}
Y = as.matrix(t(YT)) # Y \in \mathbb{R}^{m x n}
m = nrow(Y) # Datendimension
n = ncol(Y) # Datenpunktanzahl
k = 2 # Faktoranzahl
I_n = diag(n) # Einheitsmatrix I_n
J_n = matrix(rep(1,n^2), nrow = n) # 1_{nn}
C = (1/(n-1))*(Y %*% (I_n-(1/n)*J_n) %*% t(Y)) # Stichprobenkovarianzmatrix
EA = eigen(C) # Eigenanalyse von R
lambda_k = EA$values[1:k] # k größte Eigenwerte von R
Q_k = EA$vectors[,1:k] # k zugehörige Eigenvektoren von R
L_hat = Q_k %*% diag(sqrt(lambda_k)) # Faktorladungsmatrixschätzer
Psi_hat = diag(diag(C) - diag(L_hat %*% t(L_hat))) # Kovarianzmatrix des Beobachtungsfehlersschätzer
V_i_hat = diag(C) # Varianzschätzer
h2_i_hat = rowSums(L_hat^2) # Kommunalitätsschätzer
psi_i_hat = diag(Psi_hat) # Spezifitätsschätzer
G_hat = sum(diag(C)) # Gesamtvarianzschätzer
```
\normalsize
Es ergeben sich für $\hat{L}$ und $\hat{\Psi}$
\footnotesize
```{r, echo = F}
cat("L_hat = \n")
print(round(L_hat,2))
cat("\n")
cat("Psi_hat = \n")
print(round(Psi_hat,2))
```
\normalsize
und für die Varianz, Kommunalitäts, Spezifitäts und Gesamtvarianzschätzer
\footnotesize
```{r, echo = F}
cat("V_i_hat =", round(V_i_hat,2),
"\nh2_i_hat =", round(h2_i_hat,2),
"\npsi_i_hat =", round(psi_i_hat,2),
"\nG_hat =", round(G_hat,2))
```
\normalsize
Das geschätzte EFA-Modell hat also die Form
\begin{equation}
\ups = \hat{L}\xi + \eps
\Leftrightarrow
\begin{pmatrix}
\ups_1 \\
\ups_2 \\
\ups_3 \\
\ups_4 \\
\ups_5 \\
\end{pmatrix}
=
\begin{pmatrix*}[r]
-3.81 & 0.16 \\
-2.54 & 1.35 \\
-3.89 & 0.11 \\
-0.53 & -1.22 \\
-1.66 & -2.32
\end{pmatrix*}
\begin{pmatrix}
\xi_1 \\
\xi_2
\end{pmatrix}
+
\begin{pmatrix}
\eps_1 \\
\eps_2 \\
\eps_3 \\
\eps_4 \\
\eps_5 \\
\end{pmatrix}
\end{equation}
mit
\begin{equation}
\xi \sim (0_2, I_2)\mbox{ und } \eps \sim (0_5, \hat{\Psi}),
\end{equation}
und
\begin{equation}
\hat{\Psi}
=
\begin{pmatrix}
0.04 & 0 & 0 & 0 & 0 \\
0 & 0.26 & 0 & 0 & 0 \\
0 & 0 & 0.12 & 0 & 0 \\
0 & 0 & 0 & 0.46 & 0 \\
0 & 0 & 0 & 0 & 0.08 \\
\end{pmatrix}.
\end{equation}
## Modellvergleich {#sec-modellvergleich}
Zentrales Ziel des EFA Modellvergleichs ist es, eine möglichst sinnvolle Zahl
$k$ von Faktoren zur Modellierung eines gegebenen Datensatzes zu bestimmen. Dabei
ist wie immer im Kontext von Modellvergleichen üblich, die gundlegende Absicht
möglichst viel Datenvariabilität mit möglichst geringer Modellkomplexität, d.h.
in diesem Fall mit möglichst wenigen Faktoren zu erklären. Quantitative Grundlage
dafür ist die Zerlegung der *Gesamtstichprobenvarianz* $G$ anhand von
\begin{equation}
G = F + R
\end{equation}
in eine *Faktorenbasierte Stichprobenvarianz* $F$ und eine *Beobachtungsfehlerbasierte Stichprobenvarianz* $R$.
Man wählt die Anzahl $k$ der Faktoren dann so, dass $k$ möglichst klein, aber
$F/R$ möglichst groß ist. Traditionell gibt es im Bereich der EFA
zu diesem Zweck eine Reihe von Heuristiken. Wir zeigen hier zunächst die Validität
obiger Varianzzerlegung und diskutieren dann Möglichkeiten zur Wahl von $k$.
:::{#def-efa-stichprobenvarianzzerlegung}
## EFA Stichprobenvarianzzerlegung
$Y \in \mathbb{R}^{m \times n}$ sei ein Datensatz von $n$ unabhängigen
Beobachtungen eines EFA-Modells
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_m,\Psi).
\end{equation}
$C \in \mathbb{R}^{m \times m}$ sei die Stichprobenkovarianzmatrix von $Y$
und $\hat{L}\in \mathbb{R}^{m \times k}$ und $\hat{\Psi}\in \mathbb{R}^{m \times m}$
seien die durch Orthonormalzerlegung von $C$ und Betrachtung der $k < m$ größten
Eigenwerte $\lambda_1,...,\lambda_k$ und zugehörigen Eigenvektoren gewonnenen
Hauptkomponentenschätzer $k$ter Ordnung, so dass
\begin{equation}
C \approx \hat{L}\hat{L}^T + \hat{\Psi}.
\end{equation}
Dann wird
* die Summe der Diagonalemente von $C$ als *Gesamtstichprobenvarianz*,
* die Summe der Diagonalelemente von $\hat{L}\hat{L}^T$ als *faktorbasierte Stichprobenvarianz*,
* die Summe der Diagonalelemente von $\hat{\Psi}$ als *fehlerbasierte Stichprobenvarianz*
bezeichnet
:::
:::{#thm-efa-stichprobenvarianzzerlegung}
## EFA Stichprobenvarianzzerlegung
Für einen Datensatz $Y \in \mathbb{R}^{m \times n}$ von $n$ unabhängigen Beobachtungen eines EFA-Modells
\begin{equation}
\ups = L\xi + \eps \mbox{ mit } \xi \sim (0_k,I_k) \mbox{ und } \eps \sim (0_m,\Psi).
\end{equation}
seien
* $C = (c_{ij})_{1 \le i,j \le m} \in \mathbb{R}^{m \times m}$ die Stichprobenkovarianzmatrix,
* $\hat{L} = (\hat{l}_{ij})_{1 \le i \le m, 1 \le j \le k} \in \mathbb{R}^{m \times k}$ der Hauptkomponentenschätzer $k$ter Ordnung von $L$,
* $\hat{\Psi} = \mbox{diag}(\hat{\psi}_i,..., \hat{\psi}_m) \in \mathbb{R}^{m \times m}$ der Hauptkomponentenschätzer $k$ter Ordnung von $\Psi$,
sowie
* $G := \sum_{i=1}^m c_{ii}$ die Gesamtstichprobenvarianz,
* $F := \sum_{i=1}^m \sum_{j=1}^k \hat{l}_{ij}^2$ die Faktorbasierte Stichprobenvarianz,
* $R := \sum_{i=1}^m \hat{\psi}_i$ die Beobachtungsfehlerbasierte Stichprobenvarianz.
Dann gilt
\begin{equation}
G = F + R.
\end{equation}
Außerdem gilt mit den Eigenwerten $\lambda_1,...,\lambda_k$ von $C$, dass
\begin{equation}
F = \sum_{j=1}^k \lambda_j \mbox{, wobei } \lambda_j = \sum_{i=1}^m \hat{l}_{ij}^2
\end{equation}
für $j = 1,...,k$ der Anteil des $j$ten Faktors an $F$ ist.
:::
:::{.proof}
Wir erinnern zunächst daran, dass die Diagonalelemente von $\hat{L}\hat{L}^T$ durch
\begin{equation}
\sum_{j=1}^k \hat{l}_{ij}^2
\end{equation}
gegeben sind, wovon man sich durch Betrachtung der Einträge von $\hat{L}\hat{L}^T$ überzeugt:
\begin{align}
\begin{split}
\hat{L}\hat{L}^T
=
\begin{pmatrix}
\hat{l}_{11} & \cdots & \hat{l}_{1k} \\
\hat{l}_{21} & \cdots & \hat{l}_{2k} \\
\vdots & \ddots & \vdots \\
\hat{l}_{m1} & \cdots & \hat{l}_{mk} \\
\end{pmatrix}
\begin{pmatrix}
\hat{l}_{11} & \cdots & \hat{l}_{m1} \\
\hat{l}_{12} & \cdots & \hat{l}_{m2} \\
\vdots & \ddots & \vdots \\
\hat{l}_{1k} & \cdots & \hat{l}_{mk} \\
\end{pmatrix}
=
\begin{pmatrix}
\sum_{j=1}^k l_{1j}^2 & \sum_{j=1}^k l_{1j}l_{2j} & \cdots & \sum_{j=1}^k l_{1j}l_{mj} \\
\sum_{j=1}^k l_{2j}l_{1j} & \sum_{j=1}^k l_{2j}^2 & \cdots & \sum_{j=1}^k l_{2j}l_{mj} \\
\vdots & \cdots & \ddots & \vdots \\
\sum_{j=1}^k l_{mj}l_{1j} & \sum_{j=1}^k l_{mj}l_{2j} & \cdots & \sum_{j=1}^k l_{mj}^2 \\
\end{pmatrix}
\end{split}
\end{align}
Die Identität von $G$ und $F + R$ folgt dann direkt aus der Identität der Diagonalelemente
von $C$, $\hat{L}\hat{L}^T$ und $\hat{\Psi}$, die im Rahmen der Hauptkomponentenschätzung
mithilfe von
\begin{equation}
\hat{\psi}_i := c_{ii} - \sum_{j = 1}^k \hat{l}_{ij}^2 \mbox{ für } i = 1,...,m
\end{equation}
konstruiert wird. Um als nächstes
\begin{equation}
F = \sum_{j=1}^k \lambda_j
\end{equation}
zu zeigen halten zunächst fest, dass mit der Definition des Hauptkomponentenschätzer $\hat{L}$
die Summe der quadrierten Einträge in der $j$ten Spalte von $\hat{L}$ gleich der
Summe der quadrierten Einträge in der $j$ten Spalte von $Q_k\Lambda_k^{1/2}$ ist.
Dies mag man sich zum Beispiel für $m = 5$ und $k = 2$ verdeutlichen:
\begin{align}
\begin{split}
\hat{L} = Q_k\Lambda_k^{1/2} \Leftrightarrow
\begin{pmatrix}
\hat{l}_{11} & \hat{l}_{12} \\
\hat{l}_{21} & \hat{l}_{22} \\
\hat{l}_{31} & \hat{l}_{32} \\
\hat{l}_{41} & \hat{l}_{42} \\
\hat{l}_{51} & \hat{l}_{52} \\
\end{pmatrix}
& =
\begin{pmatrix}
q_{11} & q_{12} \\
q_{21} & q_{22} \\
q_{31} & q_{32} \\
q_{41} & q_{42} \\
q_{51} & q_{52} \\
\end{pmatrix}
\begin{pmatrix}
\sqrt{\lambda_{1}} & 0 \\
0 & \sqrt{\lambda_{2}} \\
\end{pmatrix}
=
\begin{pmatrix}
\sqrt{\lambda_{1}}q_{11} & \sqrt{\lambda_{2}}q_{12} \\
\sqrt{\lambda_{1}}q_{21} & \sqrt{\lambda_{2}}q_{22} \\
\sqrt{\lambda_{1}}q_{31} & \sqrt{\lambda_{2}}q_{32} \\
\sqrt{\lambda_{1}}q_{41} & \sqrt{\lambda_{2}}q_{42} \\
\sqrt{\lambda_{1}}q_{51} & \sqrt{\lambda_{2}}q_{52} \\
\end{pmatrix}
\end{split}
\end{align}
Weiterhin halten wir fest, dass, wenn $q_j$ für $j = 1,..,k$ die $j$te Spalte
von $Q_k$ bezeichnet aufgrund der Orthonormalität von $Q$ folgt, dass
\begin{equation}
q_j^Tq_j = \sum_{i = 1}^m q_{ij}^2 = 1.
\end{equation}
Dann ergibt sich für die Summe der Diagonalelemente von $\hat{L}\hat{L}^T$ aber
\begin{equation}
F
= \sum_{i=1}^m \sum_{j=1}^k \hat{l}_{ij}^2
= \sum_{j=1}^k \sum_{i=1}^m \hat{l}_{ij}^2
= \sum_{j=1}^k \sum_{i=1}^m \left(\sqrt{\lambda}_jq_{ij}\right)^2
= \sum_{j=1}^k \lambda_j\sum_{i=1}^m q_{ij}^2
= \sum_{j=1}^k \lambda_j
\end{equation}
Die Tatsache, dass der $j$te Eigenwert $\lambda_j$ von $C$ dabei der Anteil der durch
den $j$ten Faktor erklärten Gesamtstichprobenvarianz ist ergibt sich dabei durch
die Einsicht, dass der Beitrag des $j$ten Faktors in der $j$ten Spalte von
$\hat{L}$ enkodiert ist und obige Gleichungskette impliziert, dass
\begin{equation}
\sum_{i=1}^m \hat{l}_{ij}^2 = \lambda_j \mbox{ für } j = 1,...,k.
\end{equation}
:::
Untenstehender **R** Code evaluiert die entsprechenden Stichprobenvarianzkomponenten
für den Beispieldatensatz aus Anwendungsbeispiel (1) für $k = 2$.
\tiny
```{r, echo = T}
# EFA mit Hauptkomponentenschätzung für k = 2
YT = read.csv("./_data/803-explorative-faktorenanalyse.csv") # Y^T \in \mathbb{R}^{n x m}
Y = as.matrix(t(YT)) # Y \in \mathbb{R}^{m x n}
m = nrow(Y) # Datendimension
n = ncol(Y) # Datenpunktanzahl
k = 2 # Faktoranzahl
I_n = diag(n) # Einheitsmatrix I_n
J_n = matrix(rep(1,n^2), nrow = n) # 1_{nn}
C = (1/(n-1))*(Y %*% (I_n-(1/n)*J_n) %*% t(Y)) # Stichprobenkovarianzmatrix
EA = eigen(C) # Eigenanalyse von R
lambda_k = EA$values[1:k] # k größte Eigenwerte von R
Q_k = EA$vectors[,1:k] # k zugehörige Eigenvektoren von R
L_hat = Q_k %*% diag(sqrt(lambda_k)) # Faktorladungsmatrixschätzer
Psi_hat = diag(diag(C) - diag(L_hat %*% t(L_hat))) # Beobachtungsfehlerkovarianzmatrixschätzer
GG = sum(diag(C)) # Gesamtstichprobenvarianz
FF = sum(diag(L_hat %*% t(L_hat))) # Faktorenbasierte Stichprobenvarianz
RR = sum(diag(Psi_hat)) # Beobachtungsfehlerbasierter Stichprobenvarianz
FF_lambda = sum(lambda_k) # Summe der Eigenwerte \lambda_1,...,\lambda_k
```
```{r, echo = F}
cat("G =" , round(GG,3),
"\nF =", round(FF,3),
"\nR =", round(RR,3),
"\nF+R =", round(FF + RR,3),
"\n")
```
```{r, echo = F}
cat("Faktorbasierte Stichprobenvarianz F =" , round(FF,3),
"\nSumme der Eigenwerte lambda_1,...,lambda_k =", round(FF_lambda,3))
```
\normalsize
Intuitiv wählt man die Anzahl an Faktoren $k$ nun so, dass ein vorgegebener Anteil
der Gesamtstichprobenvarianz durch das Modell erklärt wird. Dazu vergenwärtigen wir uns
zunächst noch einmal obige Einsichten:
* Der durch den $j$ten Faktor erklärte Anteil an $G$ ist $\lambda_j$.
* Der durch den $j$ten Faktor erklärte relative Anteil an $G$ ist $\lambda_j/G$.
* Der durch die $j = 1,...,k$ Faktoren erklärte relative Anteil an $G$ ist $\sum_{j=1}^k\lambda_j/G$.
Es macht also Sinn, sich $\lambda_j, \lambda_j/G$ und $\sum_{j=1}^k\lambda_j/G$
zu visualisieren und dann $k$ so zu wählen, dass $k$ möglichst klein und $\sum_{j=1}^k\lambda_j/G$
möglichst groß ist. Die Visualisierung der $\lambda_j$ wird in diesem Kontext
*Scree-Plot* genannt, inspiriert von dem geologischen Begriff der *Schutthalde* (engl. Scree),
also einem fächerförmigen Körper aus Gesteinsschutt am Fuß von Felswänden. In ähnlicher
Form wird man meist einige wenige hohe Eigenwert finden, die entsprechend die steile
Felswand abbilden und weiterhin mehrere geringe Eigenwerte, die entsprechend den flach
auslaufenden Teil der Schutthalde darstellen. @fig-modellevaluation-k zeigt den
Scree-Plot basierend auf den Hauptkomponentenschätzern für den Beispieldatensatz
aus Anwendungsbeispiel (1). @fig-modellevaluation-k A zeigt die typische Scree-Struktur
der Eigenwerte, die ersten beiden Eigenwerte sind recht hoch, die weiteren haben
Werte nahe Null. @fig-modellevaluation-k B stellt die Eigenwerte aus A als
relative Anteile an der Gesamtstichprobenvarianz $G$ dar. @fig-modellevaluation-k C
schließlich zeigt die kumulative Erklärung von Gesamtstichprobenvarianz durch
die Beiträge der Eigenwerte. Insbesondere können mit $k = 1$ können 80% der
Gesamtstichprobenvarianz erklärt werden, die lässt sich bei $k = 2$ auf
98% der Gesamtstichprobenvarianz steigern. Der weitere Zuwachs auf 99% durch
$k = 3$ fällt dann eher gering aus. Insgesamt betrachtet scheint $k = 2$ also
eine sinnvolle Wahl zur Aufklärung von möglichst viel Gesamtstichprobenvarianz
bei gleichzeitig eher geringer Anzahl an Faktoren.
```{r, echo = F}
# EFA mit Hauptkomponentenschätzung für k = 5
YT = read.csv("./_data/803-explorative-faktorenanalyse.csv") # Y^T \in \mathbb{R}^{n x m}
Y = as.matrix(t(YT)) # Y \in \mathbb{R}^{m x n}
m = nrow(Y) # Datendimension
n = ncol(Y) # Datenpunktanzahl
k = 5 # Faktoranzahl
I_n = diag(n) # Einheitsmatrix I_n
J_n = matrix(rep(1,n^2), nrow = n) # 1_{nn}
C = (1/(n-1))*(Y %*% (I_n-(1/n)*J_n) %*% t(Y)) # Stichprobenkovarianzmatrix
EA = eigen(C) # Eigenanalyse von R
lambda_k = EA$values[1:k] # k größte Eigenwerte von R
Q_k = EA$vectors[,1:k] # k zugehörige Eigenvektoren von R
L_hat = Q_k %*% diag(sqrt(lambda_k)) # Faktorladungsmatrixschätzer
Psi_hat = diag(diag(C) - diag(L_hat %*% t(L_hat))) # Beobachtungsfehlerkovarianzmatrixschätzer
G = sum(diag(C)) # Gesamtstichprobenvarianz
```
```{r, eval = F, echo = F}
library(latex2exp)
pdf(
file = "./_figures/803-modellevaluation-k.pdf",
width = 10,
height = 4)
par(
family = "sans",
mfcol = c(1,3),
pty = "s",
bty = "l",
lwd = 1,
las = 1,
mgp = c(3,1,0),
xaxs = "i",
yaxs = "i",
font.main = 1,
cex = 1,
cex.main = 1.2,
mar = c(2,4,3,2)) # bottom, left, top, right margin
plot(
1:5,
lambda_k,
type = "b",
ylim = c(-2,45),
xlim = c(.5,5.5),
ylab = "",
xlab = "j",
main = TeX("$\\lambda_j$"))
mtext(LETTERS[1], adj=1, line=2, cex = 1.8, at = -.5)
plot(
1:5,
lambda_k/GG,
type = "b",
ylim = c(-.1,1),
xlim = c(.5,5.5),
ylab = "",
xlab = "j",
main = TeX("$\\lambda_j/G$"))
mtext(LETTERS[2], adj=1, line=2, cex = 1.8, at = -.5)
plot(
1:5,
cumsum(lambda_k)/GG,
type = "b",
ylim = c(.75,1),
xlim = c(.5,5.5),
ylab = "",
xlab = "k",
main = TeX("$\\sum_{i=1}^k \\lambda_j/G$"),
xpd = TRUE)
mtext(LETTERS[3], adj=1, line=2, cex = 1.8, at = -.5)
dev.off()
```
![Scree-Plot basierend auf den Hauptkomponentenschätzern des Beispieldatensatzes](./_figures/803-modellevaluation-k.pdf){#fig-modellevaluation-k fig-align="center" width=100%}
## Modellinterpretation {#sec-modellinterpretation}
Rotationsverfahren
<!-- Per Datenkomponente sind Faktorladungen gewünscht, die möglichst leicht eine eindeutige Faktorzuordnung erlauben
Statt der geschätzten Faktorladungsmatrix $\hat{L}$ wäre also eine Faktorladungsmatrix wie $\hat{L}^*$ gewünscht.
\begin{equation}
\hat{L}
=
\begin{pmatrix*}[r]
-3.81 & 0.16 \\
-2.54 & 1.35 \\
-3.89 & 0.11 \\
-0.53 & -1.22 \\
-1.66 & -2.32
\end{pmatrix*}
\quad \Rightarrow\quad
\hat{L}^*
=
\begin{pmatrix}
1.00 & 0.00 \\
1.00 & 0.00 \\
1.00 & 0.00 \\
0.00 & 1.00 \\
0.00 & 1.00
\end{pmatrix}
\end{equation}
Eindeutige Zuordnungen von Datenkomponenten zu Faktoren induzieren dann Cluster
von Datenkomponenten, "die auf jeweils einen Faktor laden". Eine entsprechend modifizierte
Faktorladungsmatrix $\hat{L}^*$ nennt man auch "Einfachstruktur" und man hofft dann,
durch Inspektion der Cluster zu eine inhaltlichen Interpretation der Faktoren inspiriert zu werden.
Für eine Standardisierung der Einträge von $\hat{L}$ gehen wir dabei zunächst zu
Hauptkomponentenschätzung auf Grundlage der Stichprobenkorrelationsmatrix über.