Wie führt man eine Faktorenanalyse in R durch?
In diesem Beitrag
- Faktorenanalyse oder PCA – was ist der Unterschied?
- Voraussetzungen prüfen
- Benötigte R-Pakete
- Faktoranzahl bestimmen
- Die Faktorenanalyse mit fa() durchführen
- Output lesen und interpretieren
- Rotation: Welche Methode wählen?
- Wann ist eine konfirmatorische Faktorenanalyse sinnvoll?
- Faktorenanalyse in der Abschlussarbeit dokumentieren
Faktorenanalyse oder PCA – was ist der Unterschied?
Die explorative Faktorenanalyse (EFA) sucht nach latenten Variablen, die die beobachteten Korrelationen zwischen Items erklären. Sie geht davon aus, dass hinter den messbaren Variablen nicht direkt messbare Konstrukte stehen – etwa Intelligenz, Persönlichkeitseigenschaften oder Arbeitszufriedenheit.
Die Hauptkomponentenanalyse (PCA) tut etwas anderes: Sie modelliert die beobachteten Variablen selbst und versucht, deren Varianz möglichst effizient in wenigen Komponenten zusammenzufassen. Beide Verfahren liefern in der Praxis bei vielen Variablen ähnlich aussehende Lösungen – die zugrundeliegenden Modelle sind jedoch theoretisch grundverschieden und sollten im Methodenteil einer Abschlussarbeit nicht synonym beschrieben werden.
principal() (PCA) und fa() (EFA) aus dem psych-Paket. Wenn Sie latente Konstrukte untersuchen möchten – etwa Skalen aus einem Fragebogen –, ist fa() die richtige Wahl.Für die meisten Fragestellungen in Psychologie, Sozialwissenschaften und Medizin, in denen Fragebogenskalen validiert oder Konstrukte operationalisiert werden sollen, ist die EFA das passende Verfahren.
Voraussetzungen prüfen
Bevor Sie den ersten fa()-Aufruf starten, sollten Sie prüfen, ob Ihre Daten überhaupt für eine Faktorenanalyse geeignet sind. Das ist kein bürokratischer Formalismus – es schützt Sie davor, inhaltlich sinnlose Faktoren zu interpretieren.
Stichprobengröße
Als Faustregel gilt: mindestens 5 bis 10 Beobachtungen pro Variable, in der Praxis aber lieber mehr. Bei kleinen Stichproben sind die Ladungsschätzungen instabil. Mit unter 100 Fällen sollten Sie die Ergebnisse besonders kritisch einordnen.
Skalenniveau und Korrelationen
Die klassische EFA arbeitet mit metrischen Variablen und Pearson-Korrelationen. Bei ordinalen Likert-Items empfiehlt sich der Einsatz polychorischer Korrelationen – dazu später mehr.
Außerdem müssen die Variablen ausreichend miteinander korrelieren. Zwei Standardtests helfen dabei:
- Kaiser-Meyer-Olkin-Kriterium (KMO): Werte über 0,70 gelten als akzeptabel, über 0,80 als gut. Werte unter 0,60 sprechen gegen eine Faktorenanalyse.
- Bartlett-Test auf Sphärizität: Der Test sollte signifikant sein (p < 0,05), was bedeutet, dass die Korrelationsmatrix nicht der Einheitsmatrix entspricht.
In R erhalten Sie beides mit dem psych-Paket:
library(psych)
# KMO-Kriterium
KMO(daten)
# Bartlett-Test
cortest.bartlett(daten)
Benötigte R-Pakete
Für eine vollständige explorative Faktorenanalyse benötigen Sie in erster Linie das Paket psych. Es ist das meistgenutzte Paket für psychometrische Analysen in R und deckt den gesamten Prozess ab – von der Korrelationsmatrix über die Bestimmung der Faktoranzahl bis zur rotierten Lösung.
# Installation (nur einmalig nötig)
install.packages("psych")
# Laden
library(psych)
# Optional: für polychorische Korrelationen bei ordinalen Daten
install.packages("GPArotation") # wird für Rotationen benötigt
library(GPArotation)
Einen Überblick über weitere nützliche Pakete für statistische Auswertungen finden Sie im Beitrag zu den wichtigsten R-Paketen für empirische Analysen.
Faktoranzahl bestimmen
Wie viele Faktoren soll die Lösung haben? Das ist die methodisch schwierigste Entscheidung bei der EFA – und eine, die Sie im Methodenteil Ihrer Arbeit explizit begründen müssen. Unreflektierte Standardeinstellungen führen dabei zu unterschiedlichen, teils widersprüchlichen Lösungen, weshalb es keine rein mechanische Antwort gibt.
Das Kaiser-Kriterium
Die einfachste Regel: Behalten Sie alle Faktoren mit einem Eigenwert größer als 1. Das Kaiser-Kriterium ist weit verbreitet, aber für sich allein genommen wenig zuverlässig – es neigt dazu, zu viele Faktoren zu extrahieren.
Der Scree-Plot
Der Scree-Plot zeigt die Eigenwerte in absteigender Reihenfolge. Gesucht wird der „Knick“ in der Kurve – der Punkt, ab dem die Eigenwerte nur noch langsam fallen. Faktoren links des Knicks werden behalten.
# Scree-Plot erstellen
scree(daten, factors = TRUE, pc = FALSE)
Parallel Analysis (empfohlen)
Die Parallelanalyse gilt heute als methodischer Goldstandard. Sie vergleicht die empirischen Eigenwerte Ihrer Daten mit Eigenwerten, die aus Zufallsdaten gleicher Größe erzeugt werden. Behalten Sie nur die Faktoren, deren Eigenwerte die der Zufallsdaten übersteigen – das ist konsistenter als das alleinige Kaiser-Kriterium.
# Parallel Analysis
fa.parallel(daten,
fm = "minres", # Extraktionsmethode
fa = "fa", # nur Faktoren, nicht Komponenten
n.iter = 100) # Anzahl der Simulationsiterationen
Die Funktion gibt nfact zurück – die empfohlene Anzahl an Faktoren. Wichtig: Das Ergebnis ist ein Ausgangspunkt, kein blindlings zu übernehmender Wert. Bei großen Stichproben kann die Parallelanalyse Faktoren vorschlagen, die inhaltlich kaum interpretierbar sind.
cor = "poly", um polychorische Korrelationen zu verwenden. Das liefert bei Likert-Daten realistischere Eigenwerte als die Pearson-Korrelation.Die Faktorenanalyse mit fa() durchführen
Wenn Sie die Faktoranzahl festgelegt haben, führen Sie die eigentliche Analyse durch. Die zentrale Funktion ist fa() aus dem psych-Paket.
# Beispiel: EFA mit 3 Faktoren, oblique Rotation, ML-Extraktion
efa_ergebnis <- fa(r = daten,
nfactors = 3,
rotate = "oblimin", # oblique Rotation
fm = "ml", # Maximum Likelihood
scores = "regression")
# Ergebnisse ausgeben
print(efa_ergebnis, cut = 0.30, sort = TRUE)
Die wichtigsten Argumente im Überblick:
| Argument | Typische Werte | Bedeutung |
|---|---|---|
nfactors |
Ganzzahl (z. B. 3) | Anzahl zu extrahierender Faktoren |
rotate |
"oblimin", "varimax", "promax" |
Rotationsmethode |
fm |
"ml", "minres", "pa" |
Extraktionsmethode |
cor |
"cor", "poly", "tet" |
Korrelationstyp (relevant bei ordinalen Daten) |
scores |
"regression", "Bartlett" |
Methode zur Berechnung der Faktorwerte |
Output lesen und interpretieren
Der Output von fa() enthält mehrere Informationsblöcke. Die wichtigsten sind:
Faktorladungen
Die Faktorladungsmatrix zeigt, wie stark jede Variable auf jeden Faktor lädt. Ladungen über 0,40 (oder 0,30 bei explorativer Forschung) gelten als inhaltlich bedeutsam. Mit cut = 0.30 und sort = TRUE im print()-Aufruf werden kleine Ladungen unterdrückt und Items nach Faktoren gruppiert – das erleichtert die Interpretation erheblich.
Kommunalität h²
Die Kommunalität gibt an, welcher Anteil der Varianz einer Variable durch alle Faktoren gemeinsam erklärt wird. Niedrige Kommunalitäten (unter 0,30) deuten darauf hin, dass das Item schlecht in das Faktormodell passt.
Erklärte Varianz
Unter SS loadings und Proportion Var finden Sie, wie viel Varianz jeder Faktor erklärt. Die kumulierte erklärte Varianz aller Faktoren sollte idealerweise mindestens 50 % betragen.
Modellfit
Bei der ML-Extraktion (fm = "ml") gibt R zusätzlich einen Chi-Quadrat-Test sowie Fit-Indizes wie RMSEA und TLI aus. Ein RMSEA unter 0,08 gilt als akzeptabler Modellfit.
Rotation: Welche Methode wählen?
Rotation macht die Faktorlösung interpretierbarer, ohne den Gesamtfit zu verändern. Die Wahl zwischen orthogonaler und obliqer Rotation hat inhaltliche Konsequenzen.
- Orthogonale Rotation (z. B. Varimax): Die Faktoren sind per Definition unkorreliert. Sinnvoll, wenn Sie theoretisch davon ausgehen, dass die Konstrukte unabhängig sind – in der Praxis eine strenge Annahme.
- Oblique Rotation (z. B. Oblimin, Promax): Die Faktoren dürfen miteinander korrelieren. Für die meisten psychologischen und sozialwissenschaftlichen Konstrukte die realistischere Annahme.
Als Faustregel gilt: Beginnen Sie mit Oblimin. Wenn die Faktorkorrelatonen tatsächlich nahe null liegen, liefern orthogonale und oblique Lösungen ohnehin ähnliche Ergebnisse – Sie haben dann aber die restriktivere Annahme empirisch geprüft, anstatt sie blind vorauszusetzen.
Wann ist eine konfirmatorische Faktorenanalyse sinnvoll?
Die EFA ist ein exploratives Verfahren: Sie lässt die Daten die Faktorstruktur vorschlagen, ohne vorab eine konkrete Hypothese festzulegen. Wenn Sie hingegen eine theoretisch begründete Struktur testen möchten – etwa weil Sie ein etabliertes Konstrukt an einer neuen Stichprobe prüfen –, dann ist die konfirmatorische Faktorenanalyse (CFA) das richtige Instrument.
Für CFA in R hat sich das Paket lavaan als Standard etabliert. Die Funktion lautet cfa(), und die Modellspezifikation erfolgt über eine eigene Syntax:
library(lavaan)
# Modellspezifikation: zwei latente Faktoren
modell <- '
faktor1 =~ item1 + item2 + item3 + item4
faktor2 =~ item5 + item6 + item7 + item8
'
# CFA durchführen
cfa_ergebnis <- cfa(modell, data = daten)
# Ergebnisse ausgeben
summary(cfa_ergebnis, fit.measures = TRUE, standardized = TRUE)
EFA und CFA schließen sich nicht aus. In vielen Dissertationen und Masterarbeiten wird zunächst eine EFA an einem Teil der Stichprobe durchgeführt, und die resultierende Struktur anschließend mit einer CFA an der anderen Hälfte überprüft – dieses Vorgehen nennt sich Split-Sample-Validierung.
Faktorenanalyse in der Abschlussarbeit dokumentieren
Eine sauber durchgeführte Faktorenanalyse lässt sich nur dann angemessen beurteilen, wenn alle methodischen Entscheidungen transparent dokumentiert sind. Das klingt aufwendig, ist aber letztlich die Grundbedingung für eine nachvollziehbare Auswertung.
Dokumentations-Checkliste für die EFA im Methodenteil
- Begründung der Wahl EFA statt PCA
- Angabe der Stichprobengröße und Prüfung der Eignung (KMO, Bartlett)
- Beschreibung der Extraktionsmethode (z. B. ML, MinRes)
- Methode zur Faktoranzahlbestimmung (Parallelanalyse, Scree-Plot, Kaiser-Kriterium) mit Begründung
- Rotationsmethode und Begründung (orthogonal vs. oblique)
- Schwellenwert für bedeutsame Ladungen (z. B. ≥ 0,40)
- Umgang mit Quer- oder Doppelladungen
- Kommunalitäten und erklärte Gesamtvarianz
- Ggf. Modellfit-Indizes bei ML-Extraktion (RMSEA, TLI)
Denn die Faktorenanalyse ist kein Ein-Klick-Verfahren, sondern ein mehrstufiger Prozess mit dokumentationspflichtigen Entscheidungen zu Extraktion, Rotation, Faktoranzahl und Stichprobe. Genau diese Entscheidungen – nicht der Code selbst – sind das, was Gutachtende in Ihrer Abschlussarbeit lesen möchten.
Wenn Sie Ihre Ergebnisse anschließend aufbereiten möchten, finden Sie im Beitrag zum Export von R-Ergebnissen für Abschlussarbeiten praktische Hinweise zur Darstellung in Tabellen und Abbildungen.
Wer sich unsicher ist, ob die gewählte Methodik den Anforderungen der eigenen Hochschule entspricht, kann sich bei der methodischen Begleitung durch QuantExpert individuell beraten lassen – von der Planung der Analyse bis zur Interpretation der Faktorlösung.