Pfadanalyse mit R lavaan
2. Vergleich von Pfaden (Signifikanztest auf unterschiedliche Pfadgewichte)

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

Dieses ist eine Begleitseite zum Video-Tutorial über den Vergleich von Pfaden in der Pfadanalyse mit 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("simulationsdaten_pfadanalyse.csv", header = TRUE)

head(meine_daten)

# Modell

mein_modell <- '

# Gerichtete Effekte
MED ~ IV1 + IV2
DV1 ~ MED + IV1
DV2 ~ MED

# Kovarianzen
DV1 ~~ DV2 '

model_fit <- sem(data = meine_daten, model = mein_modell)

# Summary mit Fit-Indizes, denn vor einem Vergleich muss das Modell zu den
# Daten passen
summary(model_fit, fit.measures = TRUE)

#Visualisieren
library(tidySEM)
pfad_layout <- get_layout("IV1", "", "DV1",
"", "MED", "", "IV2", "", "DV2", rows = 3)
graph_sem(model = model_fit, layout = pfad_layout)

# Vergleich a-Pfade Gleichheitsrestriktion Vs. 1

mein_modell2 <- '

# Gerichtete Effekte
MED ~ gleich * IV1 + gleich * IV2
DV1 ~ MED + IV1
DV2 ~ MED

# Kovarianzen
DV1 ~~ DV2
'

model_fit2 <- sem(data = meine_daten, model = mein_modell2)

summary(model_fit2)

#Visualisieren
library(tidySEM)
pfad_layout <- get_layout("IV1", "", "DV1",
"", "MED", "", "IV2", "", "DV2", rows = 3)
graph_sem(model = model_fit2, layout = pfad_layout)

#Vergleich der beiden Modelle
lavTestLRT(model_fit, model_fit2)

# Vergleich a-Pfade Gleichheitsrestriktion Vs. 2

mein_modell3 <- '

# Gerichtete Effekte
MED ~ a1 * IV1 + a2 * IV2
DV1 ~ b1 * MED + c11 * IV1
DV2 ~ b2 * MED

# Kovarianzen
DV1 ~~ DV2

#Gleichheitsrestriktion
a1 == a2
'

model_fit3 <- sem(data = meine_daten, model = mein_modell3)

summary(model_fit3)

#Vergleich der beiden Modelle
lavTestLRT(model_fit, model_fit3)

# Vergleich a-Pfade Kontrast

mein_modell4 <- '

# Gerichtete Effekte
MED ~ a1 * IV1 + a2 * IV2
DV1 ~ b1 * MED + c11 * IV1
DV2 ~ b2 * MED

# Kovarianzen
DV1 ~~ DV2

#Kontrast
kontr_a2_a1 := a2 - a1
'

model_fit4 <- sem(data = meine_daten, model = mein_modell4)

summary(model_fit4)