Pfadanalyse mit R lavaan
11. Mehrebenen-Pfadanalyse

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

Dieses ist eine Begleitseite zum Video-Tutorial über die Schätzung eines Mehrebenen-Pfadmodells

(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)

head(popular2, 5)

# Schätzung mit Mehrebenenanalyse (lme4-Package)

library(lme4)

fixed_slopes <- lmer(popular ~ 1 + sex + extrav + texp + (1|class),
data=popular2, REML=F)
summary(fixed_slopes)

# Schätzung mit Mehrebenen-Pfadanalyse

hlm_model <- '
level: 1
popular ~ extrav + sex
level: 2
popular ~ texp
'

hlm_fit <- sem(model = hlm_model, data = popular2, cluster = "class")

summary(hlm_fit, fit.measures = TRUE)

# Nicht möglich: Level 2 Prädiktor auf Level 1

hlm_model2 <- '
level: 1
popular ~ extrav + sex + texp # geht nicht!!!
level: 2
popular ~ texp
'

hlm_fit2 <- sem(model = hlm_model2, data = popular2, cluster = "class")

# Möglich: Level 1 Prädiktoren auf Level 2

hlm_model3 <- '
level: 1
popular ~ extrav + sex
level: 2
popular ~ texp + extrav
'

hlm_fit3 <- sem(model = hlm_model3, data = popular2, cluster = "class")

summary(hlm_fit3, fit.measures = TRUE)

# Möglich: Cross-Level-Interaktionen

# Mit HLM-Programm

cross_level <- lmer(popular ~ 1 + sex + extrav * texp + (1|class),
data=popular2, REML=F)
summary(cross_level)

# Mit lavaan

popular2$int <- popular2$texp * popular2$extrav

hlm_model4 <- '
level: 1
popular ~ extrav + sex + int
level: 2
popular ~ texp
'

hlm_fit4 <- sem(model = hlm_model4, data = popular2, cluster = "class")

summary(hlm_fit4, fit.measures = TRUE)

# Modell mit Mediator (2-1-1 Mediation)

hlm_model5 <- '
level: 1
popular ~ extrav
level: 2
extrav ~ a * texp
popular ~ cs * texp + b * extrav

# indirekte, direkte, totale Effekte
ab := a * b
c := ab + cs '

hlm_fit5 <- sem(model = hlm_model5, data = popular2, cluster = "class")

summary(hlm_fit5, fit.measures = TRUE)

# robuste Schätzung:
hlm_fit5 <- sem(model = hlm_model5, data = popular2, se = "robust.huber.white", cluster = "class")