2 x 2 Between ANOVA
In diesem Beispiel soll in einem Datensatz von \(n=268\) Jugendlichen (13-17 Jahre) untersucht werden, inwiefern die akademische Selbstwirksamkeit der Jugendlichen, also ihre Überzeugung, in der Schule gute Leistungen bringen zu können und neue Inhalte in verschiedenen Fächern lernen zu können, vom Bildungsniveau ihrer Eltern abhängt.
Für die Bildung der Eltern wurde sowohl für die Mutter als auch für den Vater eine binäre Variable gebildet, die nur zwischen einem (eher) niedrigen und einem (eher) hohen Bildungsabschluss unterscheidet.
Packages laden
A) Daten
1) Daten einlesen und konvertieren
Lesen Sie den Datensatz akademisch
ein und konvertieren Sie die Variablen bildung_vater
und bildung_mutter
zu Faktoren. Definieren Sie für beide niedrig
als erste Faktorstufe und hoch
als zweite Faktorstufe.
2) Mittelwerte berechnen
Berechnen Sie mittels group_by()
und summarize()
die Mittelwerte von akad_swk
getrennt nach bildung_vater
und bildung_mutter
.
B) 2 x 2 Between ANOVA mit afex und emmeans
1) ANOVA-Modell berechnen
Führen Sie die 2x2 Between ANOVA mit aov_4()
durch:
Für den Levene-Test benutzen wir leveneTest()
aus car:
Leider erhalten wir keinen Gesamteffekt. Diesen bekommen wir als letzte Zeile eines mit lm()
gefitteten Modells:
2) Fokus: Effektgrössen
Standardmässig werden (wie z.B. auch in jamovi oder SPSS) die partiellen Effektgrössen berechnet. Diese werden bei experimentell manipulierten Faktoren empfohlen. Bei beobachteten Faktoren wie in diesem Beispiel sollte man auf nicht-partielle Effektgrössen zurückgreifen mit Hilfe des Arguments observed = c("bildung_mutter", "bildung_vater")
.
Um das besser zu verstehen, müssen wir dem Modell noch etwas “unter die Haube schauen”:
Wir berechnen beispielhaft das partielle \(\hat\eta^2_p\) und nicht-partielle \(\hat\eta^2\) für den Haupteffekt von “Bildung Mutter (BM)”:
\(\hat\eta^2_{p(BM)} = \frac{QS_{BM}}{QS_{BM} + QS_{Res}} = \frac{9.122}{9.122 + 143.216} = 0.05988\)
\(\hat\eta^2_{(BM)} = \frac{QS_{BM}}{QS_{TOT}} = \frac{9.122}{9.122 + 0.027 + 1.487 + 143.216} = 0.05929\)
Wenn die Faktoren als observed
definiert sind, kann man beide (partielle und nicht-partielle) Effektgrössen auch direkt anfordern mit anova_table = list(es = c("ges", "pes"))
:
Wenn das nicht der Fall ist, wird bei Anforderung beider Effektgrössen pes
und ges
für beide die partielle Effektgrösse ausgegeben, weil diese bei experimentell manipulierten Variablen auch dem ges
(generalized eta square) entspricht:
Man kann auch nur einen von beiden Faktoren als observed
definieren, dann wird nur die Quadratsumme dieses Faktors im Nenner der Effektgrösse des anderen (manipulierten) Faktors sowie der Interaktion berücksichtigt. Es handelt sich dann um eine semi-partielle Effektgrösse. Diese Möglichkeit schauen wir hier aber nicht an.
3) afex-Plot der Mittelwerte
Für den Plot verwenden wir die Funktion afex_plot(object, x)
.
Als erstes Argument der Funktion wird das Ergebnisobjekt der ANOVA benötigt. Für das Argument x =
muss die Gruppierungsvariable/Faktor angegeben werden. Für das Argument trace =
muss derjenige Faktor angegeben werden, für den separate Linien (mit Legende) ausgegeben werden sollen.
Im Plot werden per default Mittelwerte mit den 95 %-Konfidenzintervallen pro Stufe der unabhängigen Variable angezeigt. Mit error_ci = FALSE
erhält man stattdessen die Standardfehler der Mittelwerte. In Grau werden ausserdem die beobachteten Datenpunkte angezeigt.
Mit afex_plot()
kann auch ein ggplot-Objekt erstellt werden, welches wir weiter verändern können. Jetzt mit weiteren Optionen (alle Optionen siehe help(afex_plot)
):
Verschönern Sie den Plot weiter, indem Sie z.B. folgende Elemente hinzufügen:
4) Bedingte Haupteffekte
Bedingte Haupteffekte erhalten wir mit der Funktion joint_tests(object, by)
aus emmeans
. Als erstes Argument wird das afex
-Ergebnisobjekt der ANOVA benötigt. Für das Argument by
muss derjenige Faktor angegeben werden, getrennt für dessen Stufen wir die bedingten Haupteffekte des jeweils anderen Faktors erhalten wollen.
Trotz der knappen Nicht-Signifikanz des Interaktionseffekts im Beispiel wollen wir uns hier die bedingten Haupteffekte aus beiden Richtungen anschauen: sowohl den Vergleich der Bildungsstufen der Mutter separat für (= by
) die Stufen der Bildung des Vaters als auch andersherum.
Bedingte Haupteffekte bildung_mutter
:
Bedingte Haupteffekte bildung_vater
:
In diesem Fall entsprechen die Tests für bedingte Haupteffekte den Einzelvergleichen Bildung hoch vs. niedrig eines Elternteils auf einer bestimmten Bildungsstufe des anderen Elternteils. Daher können wir alternativ auch Einzelvergleiche rechnen. Dazu muss zuerst ein emmeans
-Objekt für den Interaktionseffekt erstellt werden:
Jetzt können wir pairs()
mit simple
für denjenigen Faktor verwenden, für den die bedingten Haupteffekte berechnet werden sollen.
Bedingte Haupteffekte bildung_mutter
:
Bedingte Haupteffekte bildung_vater
:
5) Post-hoc-Einzelvergleiche aller Zellen untereinander
Vergleiche aller vier Bedingungen untereinander (inkl. “diagonale Bedingungen”, d.h. Bedingungen, die sich auf beiden Faktoren unterscheiden), einmal ohne und einmal mit Alpha-Korrektur:
Als Matrix:
Hier als Plot mit Konfidenzintervallen + Pfeilen, deren Nicht-Überschneidung von zwei Bedingungen Signifikanz anzeigt:
Und zuletzt hier als Pairwise-P-value-Plot:
Reuse
Citation
@online{mayer,
author = {Mayer, Boris},
title = {2 x 2 {Between} {ANOVA}},
url = {https://psylu.github.io/anova_demo/pages/anova_demo_between.html},
langid = {en}
}