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