Website-Icon Björn Walther

Einfaktorielle Varianzanalyse (ANOVA) in R rechnen

Ziel der einfaktoriellen Varianzanalyse (ANOVA)

Die ANOVA (auch: einfaktorielle Varianzanalyse) testet drei oder mehr unabhängige Stichproben auf unterschiedliche Mittelwerte. Die Nullhypothese lautet, dass keine Mittelwertunterschiede (hinsichtlich der Testvariable) existieren. Demzufolge lautet die Alternativhypothese, dass zwischen den Gruppen Unterschiede existieren. Es ist das Ziel, die Nullhypothese zu verwerfen und die Alternativhypothese anzunehmen. Die Varianzanalyse in R kann man mit wenigen Zeilen Code durchgeführt werden. Es gibt auch Tutorials in SPSS und Excel.

Voraussetzungen der einfaktoriellen Varianzanalyse (ANOVA)

Die wichtigsten Voraussetzungen der ANOVA sind:

https://www.youtube.com/watch?v=GctGncQrJew/

Fragen können unter dem verlinkten Video gerne auf YouTube gestellt werden.  

 

Durchführung der einfaktoriellen Varianzanalyse in R (ANOVA)

Das Beispiel

Im Beispiel prüfe ich drei unabhängige Trainingsgruppen (wenig, durchschnittlich, stark) auf deren mittleren Ruhepuls. Ich vermute dahingehend Unterschiede, dass Probanden der verschiedenen Trainingsgruppen im Mittel unterschiedliche Ruhepulse haben. Das kann man auch gerichtet formulieren: Probanden aus den aktiveren Trainingsgruppen haben im Mittel einen niedrigeren Ruhepuls. Die ANOVA vermag aber nicht einseitig zu testen, da dies nur bei genau 2 Gruppen (z.B. t-Test) funktioniert.

 

Deskriptive Voranalyse

Nach dem Einlesen der Daten kann direkt ein deskriptiver Vergleich gestartet werden, der im Rahmen der ANOVA nicht zwingend notwendig ist, beim Schreiben der Ergebnisse hilft. Hierzu nutze ich das Paket „psych“, was ich mit „install.packages“ installiere und mit library(psych) lade. Dann lasse ich mir die deskriptiven Statistiken ausgeben. Das Format ist describeBy(Testvariable, Gruppenvariable).


install.packages("psych")
library(psych)
describeBy(data_anova$Ruhepuls,data_anova$Trainingsgruppe)

 

Hier erhält man folgenden Output:


Descriptive statistics by group
group: 0
vars n mean  sd   median trimmed mad   min max range skew  kurtosis se
1   13 68    9.6  69     68.64   10.38 50  79  29    -0.42 -1.26    2.66
------------------------------------------------------------------------------
group: 1
vars n mean  sd   median trimmed mad   min max range skew  kurtosis se
1   13 61    9.82 58     60.64   10.38 48  78  30    0.51  -1.17    2.72
------------------------------------------------------------------------------
group: 2
vars n mean  sd   median trimmed mad   min max range skew  kurtosis se
1   13 52.85 9.74 52     52.36   13.34 40 71   31    0.28  -1.21    2.7

 

Hier ist schon erkennbar, dass sich die mit fett markierten Mittelwerte über die Gruppen hinweg unterschieden. Die am wenigsten trainierte Gruppe hat einen mittleren Ruhepuls von 68, die durchschnittlich trainierte Gruppe von 61 und die stark trainierte Gruppe von 52,85.

Die Varianzhomogenität kann man hier auch schon erkennen, da sd (=Standardabweichung = Wurzel der Varianz) in etwas gleich groß sind. Die Frage, die uns die ANOVA nun beantworten muss: Sind diese beobachteten Mittelwertunterschiede statistisch signifikant?

 

Die ANOVA rechnen und interpretieren

Hierzu wird die aov()-Funktion verwendet:


anova_training <- aov(data_anova$Ruhepuls~data_anova$Trainingsgruppe)
summary(anova_training)

 

Mit „anova_training <- aov(…)“ definiere ich mir zunächst das ANOVA-Modell, welches ich mir mit summary(anova_training) ausgeben lasse. Der Name „anova_training“ kann hierbei vollkommen frei gewählt werden.

Nun kann den Output interpretieren:


                            Df  Sum Sq  Mean Sq  F value  Pr(>F)
data_anova$Trainingsgruppe  1   1493    1493     16.22    0.000269 ***
Residuals                  37   3405      92
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

Hier ist eigentlich nur ein Wert wirklich interessant: der p-Wert findet sich unter Pr(>F) und ist hier 0,000269. Das ist deutlich kleiner als 0,05 und somit kann die Nullhypothese von Gleichheit der Mittelwerte über die Gruppen hinweg verworfen werden. Das berichtet man mit F(1, 37) = 16,22; p < 0,001.

In der obigen Tabelle kann man folgendes erkennen:

 

Im Ergebnis kann festgehalten werden, dass lediglich zwischen Gruppe 0 (wenig trainiert) und Gruppe 2 (stark trainiert) ein statistisch signifikanter Unterschied hinsichtlich des Ruhepulses existiert. Kontrolliert für die Mehrfachtestung unterscheiden nur sie sich statistisch signifikant voneinander.  

 

Effektstärke der ANOVA

Die Effektstärke f wird von R nicht mit ausgegeben. f gibt an, wie stark der gefundene statistisch signifikante Effekt der ANOVA ist. Wie wir aber bereits festgestellt haben, interessiert uns ohnehin eher das Ergebnis der post-hoc-Analyse. Dennoch kann man den f-Wert berechnen, der sich aus Eta² ergibt, wie folgende Formel zeigt:

   

Cohen: Statistical Power Analysis for the Behavioral Sciences (1988), S. 284-287 hilft hier bei der Einordnung. Ab 0,1 ist es ein schwacher Effekt, ab 0,25 ein mittlerer und ab 0,4 ein starker Effekt.

Demzufolge ist der mit der ANOVA beobachtete Unterschied ein starker Unterschied, da 0,6621372 über der Grenze zum starken Effekt liegt.

Die Effektstärke der ANOVA wird selten berichtet, da die paarweisen Vergleiche/Unterschiede interessanter sind.

 

Weitere nützliche Tutorials findest du auf meinem YouTube-Kanal.

 

Die mobile Version verlassen