Pfadanalyse mit R lavaan
5. Mediation

Arndt Regorz, Dipl. Kfm. & MSc. Psychologie, 18.01.2022

Dieses ist eine Begleitseite zum Video-Tutorial über Mediationsanalysen in Pfadmodellen mit R lavaan.



(Hinweis: Mit Anklicken des Videos wird ein Angebot des Anbieters YouTube genutzt.)

R-Code aus dem Video-Tutorial

Hier ist der gesamte Code aus dem Video-Tutorial:

library(lavaan)
meine_daten <- read.csv("simulation_med.csv", header = TRUE)

head(meine_daten)

# Basismodell ohne angelegte indirekte Effekte

model_med0 <- '
# Pfaddefinitionen
MED1 ~ a11 * UV1
MED2 ~ a12 * UV1 + a22 * UV2
AV1 ~ b11 * MED1 + b21 * MED2 + c11 * UV1
AV2 ~ b12 * MED1 + b22 * MED2

# Kovarianzen
AV1 ~~ AV2
MED1 ~~ MED2

'

# Schätzung
model_fit0 <- sem(data = meine_daten, model = model_med0)

# Ergebnis
summary(model_fit0, fit.measures = TRUE)

#Visualisieren
library(tidySEM)
pfad_layout <- get_layout("UV1", "", "AV1", "", "MED1", "", "", "", "", "","MED2", "",
"UV2", "", "AV2", rows = 5)
graph_sem(model = model_fit0, layout = pfad_layout)

# Modell mit indirekten Effekten

model_med <- '
# Pfaddefinitionen
MED1 ~ a11 * UV1
MED2 ~ a12 * UV1 + a22 * UV2
AV1 ~ b11 * MED1 + b21 * MED2 + c11 * UV1
AV2 ~ b12 * MED1 + b22 * MED2

# Kovarianzen
AV1 ~~ AV2
MED1 ~~ MED2

# Partielle indirekte Effekte
pie_111 := a11 * b11
pie_121 := a12 * b21
pie_112 := a11 * b12
pie_122 := a12 * b22
pie_221 := a22 * b21
pie_222 := a22 * b22

# Totale indirekte Effekte
tie_11 := pie_111 + pie_121
tie_12 := pie_112 + pie_122
tie_21 := pie_221
tie_22 := pie_222

# Totale Effekte
te_11 := tie_11 + c11
te_12 := tie_12
te_21 := tie_21
te_22 := tie_22
'

# Schätzung mit Bootstrapping
model_fit <- sem(data = meine_daten, model = model_med,
test="bollen.stine", se="bootstrap")

# Ergebnis mit Bootstrapping
summary(model_fit, fit.measures = TRUE)
parameterEstimates(model_fit, boot.ci.type = "bca.simple")

# Vergleich zweier indirekter Effekte 1: Gleichheitsrestriktion

model_med2 <- '
# Pfaddefinitionen
MED1 ~ a11 * UV1
MED2 ~ a12 * UV1 + a22 * UV2
AV1 ~ b11 * MED1 + b21 * MED2 + c11 * UV1
AV2 ~ b12 * MED1 + b22 * MED2

# Kovarianzen
AV1 ~~ AV2
MED1 ~~ MED2

# Partielle indirekte Effekte
pie_111 := a11 * b11
pie_121 := a12 * b21
pie_112 := a11 * b12
pie_122 := a12 * b22
pie_221 := a22 * b21
pie_222 := a22 * b22

# Totale indirekte Effekte
tie_11 := pie_111 + pie_121
tie_12 := pie_112 + pie_122
tie_21 := pie_221
tie_22 := pie_222

# Totale Effekte
te_11 := tie_11 + c11
te_12 := tie_12
te_21 := tie_21
te_22 := tie_22

#Gleichheitsrestriktion zwischen pie_111 und pie_121
pie_111 == pie_121
'

# Schätzung mit Gleichheitsrestriktion
model_fit2 <- sem(data = meine_daten, model = model_med2)

# Ergebnis mit Gleichheitsrestriktion
summary(model_fit2, fit.measures = TRUE)
parameterEstimates(model_fit2)

# LR-Test Modellvergleich mit und ohne Gleichheitsrestriktion
lavTestLRT(model_fit, model_fit2)

# Vergleich zweier indirekter Effekte 2: Kontraste

model_med3 <- '
# Pfaddefinitionen
MED1 ~ a11 * UV1
MED2 ~ a12 * UV1 + a22 * UV2
AV1 ~ b11 * MED1 + b21 * MED2 + c11 * UV1
AV2 ~ b12 * MED1 + b22 * MED2

# Kovarianzen
AV1 ~~ AV2
MED1 ~~ MED2

# Partielle indirekte Effekte
pie_111 := a11 * b11
pie_121 := a12 * b21
pie_112 := a11 * b12
pie_122 := a12 * b22
pie_221 := a22 * b21
pie_222 := a22 * b22

# Totale indirekte Effekte
tie_11 := pie_111 + pie_121
tie_12 := pie_112 + pie_122
tie_21 := pie_221
tie_22 := pie_222

# Totale Effekte
te_11 := tie_11 + c11
te_12 := tie_12
te_21 := tie_21
te_22 := tie_22

# Kontrast zwischen pie_111 und pie_121
kontrast_1_1 := pie_111 - pie_121
'

# Schätzung mit Bootstrapping
model_fit3 <- sem(data = meine_daten, model = model_med3,
test="bollen.stine", se="bootstrap")

# Ergebnis mit Bootstrapping
summary(model_fit3, fit.measures = TRUE)
parameterEstimates(model_fit3, boot.ci.type = "bca.simple")



Weitere Tutorials zur Pfadanalyse mit lavaan:

Pfadanalyse mit R / lavaan 1: Einführung

Pfadanalyse mit R / lavaan 2: Vergleich von zwei Pfaden

Pfadanalyse mit R / lavaan 3: Voraussetzungen und robuste Verfahren

Pfadanalyse mit R / lavaan 4: Moderation

Pfadanalyse mit R / lavaan 6: Cross-Lagged-Panel Modell