Strukturgleichungsmodelle und Pfadanalysen in R mit lavaan: Ein praxisnaher Einstieg

Strukturgleichungsmodelle (SEM) sind ein mächtiges Werkzeug, um komplexe Zusammenhänge zwischen beobachtbaren und latenten Variablen zu analysieren. Das R-Paket lavaan (latent variable analysis) bietet eine benutzerfreundliche und zugleich leistungsstarke Umgebung für SEM in R. In diesem Beitrag zeige ich dir, wie du mit lavaan durchstartest – von der Installation bis zur Modellinterpretation.

Warum lavaan?

Im Vergleich zu kommerziellen Tools wie AMOS oder Mplus ist lavaan:

  • Kostenlos und Open Source: Ideal für Forschung und Lehre.
  • Intuitiv: Die Syntax erinnert an R-Formeln oder Mplus.
  • Flexibel: Unterstützt CFA, SEM, Wachstumsmodelle, Mediationsanalysen und mehr.
  • Reproduzierbar: Perfekt integrierbar in R-Workflows, inklusive tidyverse und ggplot2.

Installation

Stelle sicher, dass du eine aktuelle R-Version (≥ 4.0.0) installiert hast. Dann kannst du lavaan direkt aus dem CRAN-Repository installieren:

install.packages("lavaan")
library(lavaan)

Ein erster Test mit einem Beispielmodell:

example(cfa)

Die lavaan-Syntax: Schnell erklärt

Modelle werden in lavaan als Zeichenketten definiert. Dabei stehen:

  • =~ für Messmodelle (z. B. latente Variablen),
  • ~ für Regressionsbeziehungen,
  • ~~ für Kovarianzen.

Ein einfaches Beispiel für eine konfirmatorische Faktorenanalyse (CFA):

HS.model <- '
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
'
fit <- cfa(HS.model, data = HolzingerSwineford1939)
summary(fit, fit.measures = TRUE)

Dieses Modell basiert auf dem bekannten Holzinger-Swineford-Datensatz. Die Funktion cfa() passt das Modell an die Daten an, und summary() liefert eine umfassende Ausgabe mit Schätzungen und Fit-Indizes.

Fit-Indizes verstehen

lavaan bietet verschiedene Fit-Maße, um die Güte der Modellanpassung zu beurteilen:

  • Chi-Quadrat-Test: Testet die Nullhypothese, dass das Modell perfekt passt.
  • CFI (Comparative Fit Index): Werte > 0.95 gelten als guter Fit.
  • RMSEA (Root Mean Square Error of Approximation): Werte < 0.06 deuten auf einen guten Fit hin.
  • SRMR (Standardized Root Mean Square Residual): Werte < 0.08 sind akzeptabel.

Diese Indizes helfen dir, die Passung deines Modells kritisch zu bewerten.

Erweiterte Modellierungsmöglichkeiten

lavaan unterstützt neben CFA auch:

  • Strukturgleichungsmodelle (SEM): Kombination von Mess- und Strukturmodellen.
  • Wachstumsmodelle: Analyse von Veränderungen über die Zeit.
  • Mediationsanalysen: Untersuchung indirekter Effekte.
  • Mehrgruppenvergleiche: Testen von Invarianz über Gruppen hinweg.
  • Umgang mit fehlenden Daten: z. B. mittels FIML (Full Information Maximum Likelihood).

Ein Beispiel für eine Mediationsanalyse:

model <- '
M ~ a*X
Y ~ b*M + c*X
ab := a*b
total := c + (a*b)
'
fit <- sem(model, data = myData)
summary(fit, standardized = TRUE)

Hierbei wird der indirekte Effekt ab und der totale Effekt total berechnet.

Visualisierung von Modellen

Für die grafische Darstellung von SEMs kannst du das Paket semPlot verwenden:

rKopierenBearbeiteninstall.packages("semPlot")
library(semPlot)
semPaths(fit, "std", layout = "tree", whatLabels = "std")

Dies erzeugt ein übersichtliches Pfaddiagramm deines Modells mit standardisierten Koeffizienten.

Fazit

lavaan ist ein leistungsfähiges und dennoch benutzerfreundliches Paket für Strukturgleichungsmodelle in R. Mit seiner klaren Syntax und der Integration in das R-Ökosystem eignet es sich hervorragend für Forschung und Lehre. Ob du nun einfache CFA-Modelle oder komplexe SEMs mit Mediations- und Moderationseffekten analysieren möchtest – lavaan bietet dir die nötigen Werkzeuge.

Weitere Informationen und das offizielle Tutorial findest du hier:

👉 lavaan Tutorial

Alles klar?

Ich hoffe, der Beitrag war für dich soweit verständlich. Wenn du weitere Fragen hast, nutze bitte hier die Möglichkeit, eine Frage an mich zu stellen!

Stelle Dominik eine Frage