...

Explorative Faktorenanalyse in R

Die explorative Faktorenanalyse (EFA) ist eine der wichtigsten Techniken in der Psychologie und den Sozialwissenschaften, um latente Konstrukte in Daten zu identifizieren. Sie hilft, die Struktur von Fragebögen oder Tests zu verstehen und irrelevante Items zu eliminieren. In diesem Blogpost zeige ich Dir, wie Du eine EFA in R durchführst, inklusive Datenaufbereitung, Faktorenextraktion, Rotation und Interpretation der Ergebnisse. Darüber hinaus gehen wir auf die methodischen Hintergründe ein und zeigen weitere Anwendungsbeispiele in verschiedenen Forschungsfeldern.

📌 Definition: Eine explorative Faktorenanalyse ist eine statistische Methode, um zugrundeliegende latente Variablen (Faktoren) aus einer großen Anzahl beobachteter Variablen zu extrahieren. Sie wird hauptsächlich zur Strukturfindung eingesetzt und unterscheidet sich von der konfirmatorischen Faktorenanalyse (CFA), die Hypothesen testet.

Datenaufbereitung für die EFA

Bevor wir eine Faktorenanalyse durchführen, müssen wir sicherstellen, dass die Daten die notwendigen Voraussetzungen erfüllen:

Fehlende Werte behandeln

Fehlende Werte können die Analyse verzerren und zu falschen Schlussfolgerungen führen. Eine einfache Methode ist die Imputation mit dem Mittelwert, die jedoch Verzerrungen hervorrufen kann. Eine fortgeschrittene Technik ist die Multiple Imputation, bei der fehlende Werte mehrfach simuliert und die Ergebnisse gemittelt werden. Diese Methode basiert auf Wahrscheinlichkeitsmodellen und ist besonders nützlich, wenn viele Werte fehlen. Allerdings erfordert sie eine sorgfältige Modellwahl und ist eine weiterführende Methode, die über einfache Imputationsstrategien hinausgeht.

library(mice)
data <- mice(data, method = 'pmm', m = 5)
data <- complete(data)

Bartlett-Test auf Sphärizität

Prüft, ob die Korrelationsmatrix einer Identitätsmatrix entspricht. Ist das der Fall, sind die Variablen unkorreliert, was gegen eine Faktorenanalyse spricht. Ein signifikanter Bartlett-Test zeigt an, dass die Korrelationen in der Matrix ausreichend stark sind, um eine Faktorenanalyse sinnvoll durchzuführen.

library(psych)
cortest.bartlett(cor(data), n = nrow(data))

Kaiser-Meyer-Olkin (KMO)-Test

Bewertet die Eignung der Daten für die Faktorenanalyse, indem er misst, wie gut jede Variable durch die extrahierten Faktoren repräsentiert wird. Der KMO-Wert liegt zwischen 0 und 1. Ein Wert über 0.8 gilt als hervorragend, 0.7 als gut und unter 0.5 als ungeeignet für eine Faktorenanalyse. Der Test basiert auf der Berechnung von partiellen Korrelationen: Wenn die partiellen Korrelationen klein sind, bedeutet dies, dass die Faktorenanalyse sinnvoll ist, da die gemeinsamen Varianzen zwischen den Variablen hoch sind. Der KMO-Test ist eine weiterführende Methode zur Bewertung der Datenqualität.

KMO(r = cor(data))

Skalenniveau prüfen

Die EFA setzt voraus, dass die Variablen intervallskaliert sind.

Multikollinearität vermeiden

Eine hohe Korrelation zwischen Variablen kann zu Verzerrungen führen. Die Berechnung der Determinante der Korrelationsmatrix hilft, Multikollinearität zu erkennen:

det(cor(data))

Faktorenextraktion

Die gängigsten Methoden zur Faktorenextraktion sind Hauptkomponentenanalyse, Hauptachsenfaktorenanalyse und die Maximum-Likelihood-Faktorenanalyse.

Hauptkomponentenanalyse (PCA)

Die PCA ist ein Verfahren zur Reduktion der Dimensionalität von Daten, indem sie die ursprünglichen Variablen in eine neue Menge unkorrelierter Variablen, die sogenannten Hauptkomponenten, transformiert. Diese Hauptkomponenten sind lineare Kombinationen der ursprünglichen Variablen und erfassen den maximalen Anteil der Gesamtvarianz der Daten. Die erste Hauptkomponente enthält die meiste Varianz, die zweite die zweitmeiste und so weiter. Dieses Verfahren wird häufig verwendet, um Datensätze mit vielen Variablen zu vereinfachen und visuell sowie rechnerisch handhabbarer zu machen, ohne wesentliche Informationen zu verlieren.

Hauptachsenfaktorenanalyse (PAF)

Die PAF ist eine Methode der Faktorenextraktion, die speziell zur Identifikation latenter Konstrukte eingesetzt wird. Sie basiert auf der Annahme, dass beobachtete Variablen durch eine Kombination von latenten Faktoren und zufälligen Messfehlern beeinflusst werden. Im Gegensatz zur Hauptkomponentenanalyse, die die gesamte Varianz der Variablen berücksichtigt, analysiert die PAF nur die gemeinsame Varianz (kommunale Varianz) der Variablen. Dabei werden iterative Verfahren genutzt, um Faktorladungen zu schätzen und die Fehlervarianz von der Gesamtvarianz zu trennen. Dies macht die PAF besonders geeignet für psychologische und sozialwissenschaftliche Fragestellungen, bei denen latente Konstrukte eine zentrale Rolle spielen.

Maximum-Likelihood-Faktorenanalyse

Dieses Verfahren basiert auf der Maximum-Likelihood-Schätzung, um die Faktorlösung zu optimieren. Es ermöglicht nicht nur die Schätzung der Faktorladungen, sondern auch statistische Tests darüber, ob die gewählte Anzahl an Faktoren angemessen ist. Dazu gehören Tests auf Modellgüte, wie der Likelihood-Ratio-Test, der prüft, ob eine Faktorlösung mit weniger Faktoren signifikant schlechter ist als eine umfassendere Lösung. Die Methode setzt voraus, dass die Daten multivariat normalverteilt sind, was in der Praxis oft nur näherungsweise zutrifft. Sie ist besonders nützlich in inferenzstatistischen Kontexten, in denen eine formale Hypothesentestung gewünscht ist, erfordert aber im Vergleich zu einfacheren Methoden wie der Hauptachsenfaktorenanalyse (PAF) eine sorgfältigere Prüfung der Annahmen.

Hier eine PAF mit dem psych-Paket:

fa_model <- fa(data, nfactors = 3, fm = "pa", rotate = "none")
print(fa_model)

📌 Definition: Faktorenextraktion ist der mathematische Prozess, der latente Variablen aus Korrelationsmustern der beobachteten Variablen identifiziert.

Ein alternatives Verfahren ist die parallele Analyse, um die Anzahl der Faktoren zu bestimmen. Diese Methode vergleicht die Eigenwerte (ein Maß für die von einem Faktor erklärte Varianz in den Daten) der empirischen Daten mit denen zufällig generierter Datensätze gleicher Größe. Faktoren werden beibehalten, wenn ihre Eigenwerte größer sind als die zufällig erzeugten Werte. Dadurch vermeidet die parallele Analyse eine Über- oder Unterschätzung der Anzahl der Faktoren, was insbesondere in psychometrischen Studien von Bedeutung ist. Während die Kaiser-Kriterium-Regel (Eigenwert > 1) und der Scree-Test oft genutzt werden, liefert die parallele Analyse eine robustere, statistisch fundierte Entscheidungsgrundlage.

fa.parallel(data, fa = "fa")

Faktorrotation

Da rohe Faktoren oft schwer interpretierbar sind, wenden wir eine Rotation an. Die zwei Haupttypen sind die orthogonale und die oblique Rotation.

📌 Definition: Eine Faktorrotation verbessert die Interpretierbarkeit der Faktoren, indem sie die Ladungen so transformiert, dass jede Variable stark mit einem Faktor korreliert.

Orthogonale Rotation (Varimax)

Diese Methode der Faktorrotation sorgt dafür, dass die extrahierten Faktoren unkorreliert bleiben, also unabhängig voneinander sind. Ziel ist es, die Faktorladungen so zu transformieren, dass jede Variable möglichst stark auf einen einzigen Faktor lädt und möglichst geringe Ladungen auf andere Faktoren aufweist. Dadurch wird die Interpretierbarkeit verbessert, da jede Variable klar einem bestimmten Faktor zugeordnet werden kann. Die Varimax-Rotation gehört zu den am häufigsten verwendeten orthogonalen Rotationen und basiert auf der Maximierung der Varianz der quadrierten Ladungen innerhalb jedes Faktors. Dies bedeutet, dass hohe Ladungen noch höher und niedrige Ladungen noch niedriger werden, was eine klarere Struktur der Daten ermöglicht. Allerdings hat diese Methode die Einschränkung, dass sie davon ausgeht, dass die zugrundeliegenden Faktoren tatsächlich unkorreliert sind, was in der Praxis nicht immer der Fall ist.

Oblique Rotation (Oblimin)

Diese Methode erlaubt es, dass sich Faktoren gegenseitig beeinflussen können, was in vielen realen psychologischen und sozialwissenschaftlichen Datensätzen plausibler ist als die Annahme vollständiger Unabhängigkeit (wie bei Varimax). Oblimin maximiert die Einfachstruktur der Faktorladungen und ermöglicht eine bessere Interpretation der Faktoren, wenn sie nicht völlig unkorreliert sind. Der Grad der Korrelation zwischen den Faktoren kann dabei mit dem sogenannten Delta-Parameter beeinflusst werden. Ein niedriger Delta-Wert (z. B. 0) führt zu einer stärkeren Unabhängigkeit der Faktoren, während ein höherer Delta-Wert eine stärkere Korrelation erlaubt. Diese Methode ist besonders hilfreich, wenn man davon ausgeht, dass die zugrundeliegenden latenten Variablen in einem inhaltlichen Zusammenhang stehen, wie es oft in psychologischen Konstrukten der Fall ist.

Hier ein Beispiel für eine oblique Rotation:

fa_model_rot <- fa(data, nfactors = 3, fm = "pa", rotate = "oblimin")
print(fa_model_rot)

Interpretation der Faktoren

Nach der Rotation interpretieren wir die Faktoren anhand der Faktorladungen:

  • Ladungen > |0.5|: Starke Assoziation mit einem Faktor.
  • Ladungen zwischen |0.3| und |0.5|: Moderate Assoziation.
  • Ladungen < |0.3|: Unwichtige Items.

Ein Scree-Plot hilft zu bestimmen, wie viele Faktoren behalten werden:

fa.parallel(data, fa = "fa")

Zusätzlich kann ein Biplot hilfreich sein:

fa.diagram(fa_model_rot)

Anwendungsbeispiele

Beispiel aus der Psychologie

Ein Fragebogen zur Arbeitszufriedenheit wird mit einer EFA analysiert. Es ergeben sich zwei Faktoren:

  • Faktor 1: Zufriedenheit mit der Arbeit
  • Faktor 2: Zufriedenheit mit dem Gehalt

Beispiel aus der Wirtschaft

Eine Kundenumfrage zu Produktzufriedenheit zeigt folgende Faktoren:

  • Faktor 1: Produktqualität
  • Faktor 2: Kundenservice

Fazit

Die explorative Faktorenanalyse ist ein mächtiges Werkzeug zur Erkundung latenter Strukturen in Daten. Mit R kannst Du sie effizient umsetzen und visuell interpretieren.

Wichtige Punkte:

  1. Daten vorbereiten und prüfen.
  2. Geeignete Extraktionsmethode wählen.
  3. Rotation zur besseren Interpretation nutzen.
  4. Faktorladungen und Visualisierungen verwenden.