2 x 2 Between ANOVA

Author

Boris Mayer

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

BibTeX 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}
}
For attribution, please cite this work as:
Mayer, Boris. n.d. “2 x 2 Between ANOVA.” https://psylu.github.io/anova_demo/pages/anova_demo_between.html.