Äquivalente Modelle in SEM

Diagnostik
AdventskalendR
Autor:in

Gerrit Hirschfeld

Veröffentlichungsdatum

4. Dezember 2024

Was sind Äquivalente Modelle

Wenn man mit Strukturgleichungsmodellen arbeitet, muss man sihc klar machen, dass es gelegentlich auch mathematisch äquivalente Modelle geben kann, die zwar ganz anders aussehen, aber denselben Modellfit für einen Datensatz erlauben.

Eine schöne Einführung und Übersicht zu dem Thema bieten MacCallum und Kollegen (1993).

Beispiel anhand des Holzinger-Swineford Datensatzes

Das Erste Modell, dass ich fitte, kennen wir schon; drei korrelierte Faktoren.

library(lavaan)
This is lavaan 0.6-19
lavaan is FREE software! Please report any bugs.
library(semTools)
 
###############################################################################
This is semTools 0.5-6
All users of R (or SEM) are invited to submit functions or ideas for functions.
###############################################################################
library(semPlot)


data(HolzingerSwineford1939)

model <- ' 
  visual =~ x1 + x2 + x3
  textual =~ x4 + x5 + x6
  speed =~ x7 + x8 + x9 '

mod1 <- cfa(model, data=HolzingerSwineford1939)
semPaths(mod1, "std")

Das zweite Modell ersetzt die Korrelationen der Faktoren untereinander durch einen g-Faktor.

model2 <- ' 
  visual =~ x1 + x2 + x3
  textual =~ x4 + x5 + x6
  speed =~ x7 + x8 + x9 
  g =~ visual + textual + speed
'

mod2 <- cfa(model2, data=HolzingerSwineford1939)
semPaths(mod2, "std")

Das Dritte Modell dreht einen Pfad von einer Latenten Dimension um.

model3 <- ' 
  visual =~ x1 + x2 + x3
  textual =~ x4 + x5 + x6
  speed =~ x7 + x8 + x9 
  g =~ visual + textual
  speed =~ g
'

mod3 <- cfa(model3, data=HolzingerSwineford1939)
semPaths(mod3, "std")

Das Vierte Modell verwendet anstelle eines gerichteten Pfeiles eine ungerichtete Korrelation.

model4 <- ' 
  visual =~ x1 + x2 + x3
  textual =~ x4 + x5 + x6
  speed =~ x7 + x8 + x9 
  g =~ visual + textual
  speed ~~ g
'
mod4 <- cfa(model4, data=HolzingerSwineford1939)

semPaths(mod4, "std")

Und was passiert, wenn man den Modellfit vergleicht?

library(semTools)
res<-semTools::compareFit(mod1, mod2, mod3, mod4, nested =F)
summary(res)
####################### Model Fit Indices ###########################
       chisq df pvalue rmsea   cfi   tli  srmr       aic       bic
mod1 85.306† 24   .000 .092† .931† .896† .065  7517.490† 7595.339†
mod2 85.306  24   .000 .092  .931  .896  .065† 7517.490  7595.339 
mod3 85.306  24   .000 .092  .931  .896  .065  7517.490  7595.339 
mod4 85.306  24   .000 .092  .931  .896  .065  7517.490  7595.339 

Fazit

Äquivalente Modelle sind ein gutes Beispiel dafür, dass die Interpretation von Strukturgleichungsmodellen nicht ganz so einfach ist, wie wir uns das wünschen. Wenn ein Modell richtig ist, dann ist auch der Modelfit gut. Das bedeutet aber nicht, dass immer wenn der Modelfit gut ist, das Modell auch richtig ist.

Literatur

MacCallum, R. C., Wegener, D. T., Uchino, B. N., & Fabrigar, L. R. (1993). The problem of equivalent models in applications of covariance structure analysis. Psychological Bulletin, 114(1), 185–199. https://doi.org/10.1037/0033-2909.114.1.185