Konfirmatorische Faktorenanalyse (CFA) mit R lavaan
4. Bifaktormodell
Arndt Regorz, Dipl. Kfm. & MSc. Psychologie, 29.11.2022
Dieses ist eine Begleitseite zum Video-Tutorial über eine Bifaktor-Faktorenanalyse 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.
# Bifaktor CFA
library(lavaan)
# R-Code ist auch auf der Begleitseite zum Video verfügbar
head(HolzingerSwineford1939)
?HolzingerSwineford1939
# CFA Bifaktormodell
model_bif <- '
# Faktoren
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
# Restriktionen
visual ~~ 0 * textual
visual ~~ 0 * speed
visual ~~ 0 * g_f
textual ~~ 0 * speed
textual ~~ 0 * g_f
speed ~~ 0 * g_f'
fit_bif <- cfa(model_bif,
data = HolzingerSwineford1939)
summary(fit_bif, fit.measures =TRUE, standardized = TRUE)
# Alternative für unkorrelierte Faktoren (gleiches Ergebnis)
model_bif2 <- '
# Faktoren
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
'
fit_bif2 <- cfa(model_bif2,
data = HolzingerSwineford1939, orthogonal = TRUE)
summary(fit_bif2, fit.measures =TRUE, standardized = TRUE)
# Lösungsversuch 1: Anderer Modellidentifizierung
model_bif2a <- '
# Faktoren
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
'
fit_bif2a <- cfa(model_bif2a,
data = HolzingerSwineford1939, orthogonal = TRUE,
std.lv = TRUE)
summary(fit_bif2a, fit.measures =TRUE, standardized = TRUE)
# Lösungsversuch 2: Startwert für Ladung x1
model_bif2b <- '
# Faktoren
visual =~ start(1.0) * x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
'
fit_bif2b <- cfa(model_bif2b,
data = HolzingerSwineford1939, orthogonal = TRUE,
std.lv = TRUE)
summary(fit_bif2b, fit.measures =TRUE, standardized = TRUE)
# Lösungsversuch 3: Ungleichheitsrestriktion
model_bif2c <- '
# Faktoren
visual =~ l_x1 * x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
l_x1 > 0
'
fit_bif2c <- cfa(model_bif2c,
data = HolzingerSwineford1939, orthogonal = TRUE,
std.lv = TRUE)
summary(fit_bif2c, fit.measures =TRUE, standardized = TRUE)
# Lösungsversuch 4: Verzicht auf Subfaktor visual
model_bif2d <- '
# Faktoren
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
'
fit_bif2d <- cfa(model_bif2d,
data = HolzingerSwineford1939, orthogonal = TRUE,
std.lv = TRUE)
summary(fit_bif2d, fit.measures =TRUE, standardized = TRUE)
# Lösungsversuch 5: x7 nur auf Subfaktor
model_bif2e <- '
# Faktoren
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
g_f =~ x1 + x2 + x3 + x4 + x5 + x6 + x8 + x9
'
fit_bif2e <- cfa(model_bif2e,
data = HolzingerSwineford1939, orthogonal = TRUE,
std.lv = TRUE)
summary(fit_bif2e, fit.measures =TRUE, standardized = TRUE)