Packages
Für das Lösen der Aufgaben müssen die R-Pakete likert, lavaan und psych mit folgenden Befehlen geladen werden:

library(likert)
library(psych)
library(lavaan)

Datensatz

Die Daten von Holzinger und Swineford aus dem Jahr 1939 werden in vielen Lehrmitteln als Illustrationsbeispiel für Faktorenanalysen verwendet. Sie umfassen neun manifeste Variablen zur Messung von psychischen Leistungsfähigkeiten. In R können die Daten mit dem folgenden Befehl geladen werden:

data(HolzingerSwineford1939)

Bei der Stichprobe handelt es sich um 301 Siebt- oder Achtklässler von zwei Schulen. Die neun manifesten Variablen zu psychischen Leistungsfähigkeiten können in folgende drei Subdimensionen unterteilt werden:

  • x1, x2, x3: Visualisierung (Visual perception, Cubes, Lozenges)
  • x4, x5, x6: Verbale Intelligenz (Paragraph comprehension, Sentence completion, Word meaning)
  • x7, x8, x9: Geschwindigkeit (Speeded addition, Speeded counting of dots, Speeded discrimination straight and curved capitals)

Die Werte der manifesten Variablen variieren zwischen 0 und 10. Zusätzlich zu den neun manifesten Variablen zu psychischen Leistungsfähigkeiten umfassen die Daten die Variablen Geschlecht, Alter, Schule und Schulstufe.

Übung 1

Aufgabe

Legen Sie zur Vereinfachung der Analyse mit R ein neues data.frame an, welches nur die neun Variablen x1, x2, x3, x4, x5, x6, x7, x8 und x9 beinhaltet.


Lösung

Legen Sie zur Vereinfachung der Analyse mit R ein neues data.frame an, welches nur die neun Variablen x1, x2, x3, x4, x5, x6, x7, x8 und x9 beinhaltet.

dat.HS1939 <- HolzingerSwineford1939[, c("x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9")]
head(dat.HS1939)
##         x1   x2    x3       x4   x5        x6       x7   x8       x9
## 1 3.333333 7.75 0.375 2.333333 5.75 1.2857143 3.391304 5.75 6.361111
## 2 5.333333 5.25 2.125 1.666667 3.00 1.2857143 3.782609 6.25 7.916667
## 3 4.500000 5.25 1.875 1.000000 1.75 0.4285714 3.260870 3.90 4.416667
## 4 5.333333 7.75 3.000 2.666667 4.50 2.4285714 3.000000 5.30 4.861111
## 5 4.833333 4.75 0.875 2.666667 4.00 2.5714286 3.695652 6.30 5.916667
## 6 5.333333 5.00 2.250 1.000000 3.00 0.8571429 4.347826 6.65 7.500000

Übung 2

Aufgabe

Betrachten Sie die univariate Verteilung der neun manifesten Variablen, sowie die deren paarweisen Beziehungen. Welcher Korrelationskoeffizient erscheint Ihnen für diese Anwendung am geeignetsten? Ist die Unterteilung der Subdimensionen in den Daten ersichtlich?

Hinweis: Verwenden Sie die Funktion pairs.panels() des Pakets psych.


Lösung

Betrachten Sie die univariate Verteilung der neun manifesten Variablen, sowie die deren paarweisen Beziehungen. Welcher Korrelationskoeffizient erscheint Ihnen für diese Anwendung am geeignetsten? Ist die Unterteilung der Subdimensionen in den Daten ersichtlich?

psych::pairs.panels(dat.HS1939)

Univariate Verteilungen: Die Werte streuen ungefähr symmetrisch um den Mittelwert. Die Verteilungen der Variablen x3 und x4 sind etwas inhomogen. Es gibt keine sogenannte Boden- oder Deckeneffekte.

Paarweise Beziehungen: Die Variablen x4, x5 und x6 der Subdimension verbale Intelligenz weisen die stärksten paarweisen Beziehungen aus. In den Streudiagrammen und bei den Pearson-Stichprobenkorrelationen ist erkennbar, dass Variablen innerhalb der Subdimensionen stärker korrelieren. Die Zusammenhänge sind nicht immer linear, siehe beispielsweise das Streudiagramm für x5 und x6. Folglich scheint der Spearman-Korrelationskoeffizient die geeignetste Wahl. Der Pearson-Korrelationskoeffizient ist aber ebenfalls vertretbar.


Übung 3

Aufgabe

Ermitteln Sie die geeignete Anzahl latente Variablen für die neun manifesten Variablen unter Verwendung des Scree-Plots. Verwenden Sie für die dafür benötigte Stichprobenkorrelationsmatrix den Pearson-Korrelationskoeffizient.

Hinweis: Verwenden Sie für den Scree-Plot die Funktion scree() des Pakets psych. Setzen Sie dabei das Argument factors = "none" (diese Option wurde in der Vorlesung nicht besprochen). Übergeben Sie der Funktion scree() als erstes Argument die zuvor berechnete Stichprobenkorrelationsmatrix.


Lösung

Ermitteln Sie die geeignete Anzahl latente Variablen für die neun manifesten Variablen unter Verwendung des Scree-Plots. Verwenden Sie für die dafür benötigte Stichprobenkorrelationsmatrix den Pearson-Korrelationskoeffizient.

  1. Berechnen der Stichprobenkorrelationsmatrix
cor.HS1939 <- cor(x = dat.HS1939, method = "pearson")
cor.HS1939
##            x1          x2         x3        x4         x5        x6          x7
## x1 1.00000000  0.29734551 0.44066800 0.3727063 0.29344369 0.3567702  0.06686392
## x2 0.29734551  1.00000000 0.33984898 0.1529302 0.13938749 0.1925319 -0.07566892
## x3 0.44066800  0.33984898 1.00000000 0.1586396 0.07719823 0.1976610  0.07193105
## x4 0.37270627  0.15293019 0.15863957 1.0000000 0.73317017 0.7044802  0.17382912
## x5 0.29344369  0.13938749 0.07719823 0.7331702 1.00000000 0.7199555  0.10204475
## x6 0.35677019  0.19253190 0.19766102 0.7044802 0.71995554 1.0000000  0.12110170
## x7 0.06686392 -0.07566892 0.07193105 0.1738291 0.10204475 0.1211017  1.00000000
## x8 0.22392677  0.09227923 0.18601263 0.1068984 0.13866998 0.1496113  0.48675793
## x9 0.39034041  0.20604057 0.32865061 0.2078483 0.22746642 0.2141617  0.34064572
##            x8        x9
## x1 0.22392677 0.3903404
## x2 0.09227923 0.2060406
## x3 0.18601263 0.3286506
## x4 0.10689838 0.2078483
## x5 0.13866998 0.2274664
## x6 0.14961132 0.2141617
## x7 0.48675793 0.3406457
## x8 1.00000000 0.4490154
## x9 0.44901545 1.0000000


  1. Erstellen des Scree-Plots
psych::scree(rx = cor.HS1939, factors = FALSE)

Der Scree-Plot weist auf eine Lösung von 3 latenten Variablen hin. Die ersten drei Eigenwerte sind grösser als 1, und die Eigenwerte flachen ab der vierten Komponente ab (sogenannter “Ellbogen”). Diskutierbar wäre auch eine Lösung mit 2 latenten Variablen, da die Reduktion der Eigenwerte zwischen der zweiten und dritten Komponenten sehr schwach ist.


Übung 4

Aufgabe

Passen Sie ein exploratives Faktorenmodell basierend auf der Pearson-Korrelation und 3 latenten Variablen an. Betrachten Sie dafür nichtrotierte Ladungen: Sind diese konsistent mit der inhaltlichen Trennung der manifesten Variablen in die 3 Subdimensionen?

Hinweis: Verwenden Sie für die Anpassung des explorativen Faktorenmodells die Funktion fa() des Pakets psych. Übergeben sie der Funktion als erstes Argument die Pearson-Korrelationsmatrix. Für die Festlegung der Anzahl latenter Variablen muss das Argument nfactors angepasst werden. Setzen Sie das Argument rotate auf FALSE, um nichtrotierte Ladungen zu erhalten. Die Ladungen können mittels resultat$loadings extrahiert werden, wobei hier resultat als Platzhalter für den Namen des angepassten Faktorenmodells steht.

Alternativ können Sie die Ladungen mittels der Plot-Funktion fa.diagram des Pakets psych darstellen. Damit alle Ladungen dargestellt werden die grösser als 0.2 betragen, verwendet man die Argumente cut = 0.2 und simple = FALSE.


Lösung

Passen Sie ein exploratives Faktorenmodell basierend auf der Pearson-Korrelation und 3 latenten Variablen an. Betrachten Sie dafür nichtrotierte Ladungen: Sind diese konsistent mit der inhaltlichen Trennung der manifesten Variablen in die 3 Subdimensionen?

Faktorenmodell:

efm.HS1939 <- psych::fa(r = cor.HS1939, nfactors = 3, rotate = "none")
print(efm.HS1939$loadings, cutoff = 0.2)
## 
## Loadings:
##    MR1    MR2    MR3   
## x1  0.576         0.342
## x2  0.308         0.388
## x3  0.400  0.309  0.444
## x4  0.769 -0.355       
## x5  0.751 -0.404       
## x6  0.763 -0.327       
## x7  0.308  0.433 -0.486
## x8  0.394  0.541 -0.270
## x9  0.505  0.453       
## 
##                  MR1   MR2   MR3
## SS loadings    2.827 1.215 0.816
## Proportion Var 0.314 0.135 0.091
## Cumulative Var 0.314 0.449 0.540

Illustration:

psych::fa.diagram(fa.results = efm.HS1939, cut = 0.2, simple = FALSE, adj = 2)

Die nichtrotierten Ladungen sind nicht konsistent mit der inhaltlichen Trennung der manifesten Variablen in Subdimensionen. Die erste latente Variable MR1 ladet relativ stark auf alle manifesten Variablen, am stärksten auf die Variablen x4. x5 und x6 der Subdimension Visualisierung. Die stärksten Ladungen der latenten Variablen MR2 bzw. MR3 verteilen sich ebenfalls auf manifeste Variablen aller drei Subdimensionen. Einige Ladungen von MR2 und MR3 sind negativ.

Achtung: Offenbar gibt es je nach Version des Pakets Abweichungen bei den Bezeichnungen der latenten Variablen. Interpretieren Sie dann die Resultate sinngemäss.


Übung 5

Aufgabe

Wiederholen Sie die Anpassung des explorativen Faktorenmodells, indem Sie die orthogonale Faktorenrotation varimax verwenden. Betrachten Sie die resultierenden Ladungen. Sind diese nun konsistent mit der inhaltlichen Trennung der manifesten Variablen?

Hinweis: Setzen sie das Argument rotate auf "varimax".


Lösung

Wiederholen Sie die Anpassung des explorativen Faktorenmodells, indem Sie die orthogonale Faktorenrotation varimax verwenden. Betrachten Sie die resultierenden Ladungen. Sind diese nun konsistent mit der inhaltlichen Trennung der manifesten Variablen?

efm.HS1939.varimax <- psych::fa(r = cor.HS1939, nfactors = 3, rotate = "varimax")
print(efm.HS1939.varimax$loadings, cutoff = 0.2)
## 
## Loadings:
##    MR1    MR3    MR2   
## x1  0.279  0.613       
## x2         0.494       
## x3         0.660       
## x4  0.832              
## x5  0.859              
## x6  0.799  0.214       
## x7                0.709
## x8                0.699
## x9         0.415  0.521
## 
##                  MR1   MR3   MR2
## SS loadings    2.187 1.342 1.329
## Proportion Var 0.243 0.149 0.148
## Cumulative Var 0.243 0.392 0.540

Die inhaltliche Trennung der manifesten Variablen in Subdimensionen ist nun in den Ladungen abgebildet. Die stärksten Ladungen auf x1, x2 und x3 stammen von der latenten Variablen MR3, auf x4, x5 und x6 von MR1 und auf x7, x8 und x9 von MR2. Andererseits gibt es sogenannte Querladungen. Dabei fällt insbesondere die relativ starke Querladung von 0.415 der latenten Variablen MR3 auf x9 auf.

Achtung: Offenbar gibt es je nach Version des Pakets Abweichungen bei den Bezeichnungen der latenten Variablen. Interpretieren Sie dann die Resultate sinngemäss.


Übung 6

Aufgabe

Wiederholen Sie nochmals die Anpassung des explorativen Faktorenmodells, indem Sie die nichtorthogonale Faktorenrotation oblimin verwenden. Warum könnte eine nichtorthogonale Faktorenrotation helfen? Betrachten Sie die resultierenden Ladungen. Sind diese nun konsistent mit der inhaltlichen Trennung der manifesten Variablen?

Hinweis: Setzen sie das Argument rotate auf "oblimin".


Lösung

Wiederholen Sie nochmals die Anpassung des explorativen Faktorenmodells, indem Sie die nichtorthogonale Faktorenrotation oblimin verwenden. Warum könnte eine nichtorthogonale Faktorenrotation helfen? Betrachten Sie die resultierenden Ladungen. Sind diese nun konsistent mit der inhaltlichen Trennung der manifesten Variablen?

efm.HS1939.oblimin <- psych::fa(r = cor.HS1939, nfactors = 3, rotate = "oblimin")
print(efm.HS1939.oblimin$loadings, cutoff = 0.2)
## 
## Loadings:
##    MR1    MR3    MR2   
## x1         0.592       
## x2         0.509       
## x3         0.686       
## x4  0.846              
## x5  0.886              
## x6  0.805              
## x7                0.737
## x8                0.686
## x9         0.382  0.456
## 
##                  MR1   MR3   MR2
## SS loadings    2.197 1.275 1.239
## Proportion Var 0.244 0.142 0.138
## Cumulative Var 0.244 0.386 0.523

Die inhaltliche Trennung der manifesten Variablen in Subdimensionen ist wiederum in den Ladungen abgebildet. Im Vergleich zu den Ladungen mit der varimax Faktorenrotation sind die Querladungen deutlich tiefer. Allerdings ist die Differenz zwischen den Ladungen auf x9 kleiner als 0.2, und deshalb sollte gemäss Daumenregel der Vorlesung diese manifeste Variable von der Analyse ausgeschlossen werden.

Achtung: Offenbar gibt es je nach Version des Pakets Abweichungen bei den Bezeichnungen der latenten Variablen. Interpretieren Sie dann die Resultate sinngemäss.


Übung 7

Aufgabe

Betrachten Sie die Kommunalitäten des angepassten explorativen Faktorenmodells. Beachten Sie, dass Kommunalitäten unabhängig von der verwendeten Faktorenrotation gleich bleiben. Bei welchen Variablen wird der Haupteil der Gesamtvarianz durch die latenten Variablen erklärt? Welche Variablen werden am schlechtesten repräsentiert?

Hinweis: die Kommunalitäten können mittels resultat$communalities extrahiert werden, wobei hier resultat als Platzhalter für den Namen angepassten Faktorenmodells steht.


Lösung

Betrachten Sie die Kommunalitäten des angepassten explorativen Faktorenmodells. Beachten Sie, dass Kommunalitäten unabhängig von der verwendeten Faktorenrotation gleich bleiben. Bei welchen Variablen wird der Haupteil der Gesamtvarianz durch die latenten Variablen erklärt? Welche Variablen werden am schlechtesten repräsentiert?

print(x = efm.HS1939.oblimin$communalities)
##        x1        x2        x3        x4        x5        x6        x7        x8 
## 0.4767563 0.2552282 0.4534504 0.7279282 0.7537252 0.6913468 0.5185572 0.5201777 
##        x9 
## 0.4604671

Bei den Variablen x4, x5, x6, x7 und x8 liegt die Kommunalität über 50%, d.h. dass der Hauptteil der Gesamtvarianz durch die latenten Variablen erklärt wird. Besonders schlecht repräsentiert wird die Variable x2, die entsprechende Kommunalität beträgt lediglich 0.255.


Übung 8

Aufgabe

Aus der Vorlesung kennen Sie Daumenregeln dafür, wie auf Basis der Ladungen manifeste Variablen von der Analyse ausgeschlossen werden könnten. Gibt es beim angepassten Modell mit der oblimin Faktorenrotation manifeste Variablen, für welche ein Ausschluss unbedingt nötig wäre oder zumindest diskutiert werden sollte?


Lösung

Bei allen manifesten Variablen ist die stärkste Ladung grösser als 0.4. Die Ladungen sind also alle gross genug. Die eine Querladung spricht dafür, x9 von der Analyse auszuschliessen (siehe Übung 7).