Varianzanalyse mit R (ANOVA)

In diesem Artikel lernen Sie wie man eine Varianzanalyse mit R durchführt. Eine Varianzanalyse ist immer dann das geeignete Verfahren, wenn Sie drei oder Mehr Gruppen auf Mittelwertsunterschiede hin vergleichen wollen.

Wir demonstrieren Ihnen die Vorgehensweise anhand des Beispieldatensatzes "iris". Dies ist ein sehr bekannter Datensatz, der als Beispieldatensatz in zahllosen Analysen und statistischen Beratungen fungiert.

Der Iris-Datensatz ist mit R vorinstalliert. Sehen sie sich zunächst die ersten 10 Zeilen des Datensatz an, indem Sie in die R-Konsole den Befehl

 

head(iris,10)

 

eingeben. Der Datensatz sieht folgendermaßen aus:

Der Datensatz enthält Informationen über Blumen der Gattung Iris,  wobei die drei Unterarten Iris setosa, Iris virginica und Iris versicolor vorhanden sind. 

Wir interessieren und für die Variable Sepal.Length. Diese Variable bezeichnet die Blütenkelch-Länge der Blume, und wir möchten untersuchen, ob sich die Blütenkelch-Länge zwischen den drei Arten Setosa, Virginica und Versicolor unterscheidet.

Wir möchten einen Überblick über mögliche Unterschiede zwischen den drei Gruppen zu bekommen. Hierzu erstellen wir zunächst einen Boxplot in R und führen anschließend eine ANOVA durch, um festzustellen ob sich die Gruppen signifikant voneinander unterscheiden.

 

Vor der Varianzanalyse: Boxplot erstellen

Den Boxplot erstellen Sie mittels des folgenden R-Befehles:

 

boxplot(iris$Sepal.Length ~ iris$Species)

 

Der resultierende Plot sieht folgendermaßen aus. Man erkennt, dass die Gruppen sich deutlich unterscheiden. Die Gruppe Virginica weist durchschnittlich die größte Blütenkelchlänge auf, gefolgt von Versicolor und Setosa.

Nun möchten wir untersuchen, ob der Mittelwerts-Unterschied zwischen den 3 Gruppen statistisch signifikant ist. Da es sich hierbei um mehr als 2 Gruppen handelt, ist die Varianzanalyse das geeignete Verfahren.

 

Varianzanalyse mit R berechnen

Um die Varianzanalyse (ANOVA) zu berechnen, benutzen Sie die R-Funktionen aov() und summary(). Geben Sie hierzu den folgenden Befehl in die R-Konsole ein:

 

summary(aov(iris$Sepal.Length ~ iris$Species))

 

Man erkennt, dass innerhalb des aov()-Befehls das gewünschte Modell mittels einer Tilde angegeben werden muss. Links von der Tilde steht die untersuchte Variable (Blütenkelch-Länge) und rechts von der Tilde die Gruppierungsvariable (Unterart).

Nach Eingabe des Befehls erhalten Sie den folgenden R-Output:

Im Output erkennen Sie an der Anzahl der Sterne rechts, ob zwischen den Gruppen ein signifikanter Unterschied besteht.

  • Hier zeigen sich drei Sterne (***). Man erkennt an den im R-Code eingeblendeten Significance-Codes (ganz unten im Output), dass die drei Sterne für einen p-Wert von p < 0.001 stehen.
  • Ein p-Wert der kleiner ist als 0.001 bedeutet, dass zwischen den drei Gruppen ein hochsignifikanter Unterschied besteht.
  • Beachten Sie: die Varianzanalyse sagt Ihnen zunächst nur, dass zwischen allen drei Gruppen ein hochsignifikanter Unterschied besteht, aber nicht zwischen welchen der Gruppen genau.
  • Z.B. könnte es sein, dass der Unterschied zwischen Setosa und Virginica signifikant ist, der Unterschied zwischen Versicolor und Virginica jedoch nicht, da bei den letzteren beiden der Unterschied im Boxplot nicht sehr groß erscheint.

Um herauszufinden, welche der einzelnen Gruppen sich signifikant voneinander unterscheiden, müssen Sie einen sogenannten Post-Hoc-Test berechnen.

 

Post Hoc Test in R (Tukey HSD)

Bei einem Post-Hoc-Test wird jede Gruppe mit jeder vergleichen. Es ist daher möglich zu beurteilen, zwischen welchen Gruppen sich jeweils signifikante Unterschiede ergeben. 

Es existieren verschiedene Post-Hoc-Tests. Einer der bekanntesten ist das Verfahren nach Tukey, welches wir nun in durchführen werden. Hierzu geben Sie den folgenden Code in die R-Konsole ein:

 

TukeyHSD(aov(iris$Sepal.Length ~ iris$Species))

 

Der Test wird also in R durchgeführt, indem auf den Befehl aov() zusätzlich noch der Befehl TukeyHSD() angewandt wird. Man erhält hierdurch das folgende Ergebnis:

Man erkennt, dass in jeder Zeile das Ergebnis eines Vergleichs von 2 Gruppen dargestellt ist.

  • In der ersten Zeile werden Versicolor und Setosa miteinander verglichen. Der Wert diff bezeichnet die Differenz zwischen den Mittelwerten der beiden Gruppen und beträgt hier 0.93.
  • Das bedeutet, die Blütenkelch-Länge von Versicolor ist im Mittel um 0.93 größer als diejenige von Setosa.
  • Ob dieser unterschied signifikant ist, sehen Sie in der Spalte p adj ganz rechts. Dort ist der p-Wert dargestellt, der hier p=0 beträgt.
  • Da der p-Wert kleiner als 0.05 ist, ist der Unterschied zwischen Versicolor und Setosa statistisch signifikant.

Die anderen Paarvergleiche werden analog interpretiert.

Beachten Sie: Die Varianzanalyse wird üblicherweise nur dann ein gesetzt, wenn drei oder mehr Gruppen miteinander verglichen werden sollen. Bei nur zwei Gruppen ist der t-Test für unabhängige Stichproben in R das geeignete Analyseverfahren.

Zurück zur Übersicht geht es hier: R-Statistik-Blogübersicht

 

Kommentare: 9
  • #9

    TLN (Dienstag, 03 September 2019 14:39)

    Allerallerbeste Seite!!! Endlich verstehe ich 1:1 was in R zu machen ist!! DANKE

  • #8

    J.K. (Sonntag, 11 August 2019 12:26)

    Vielen lieben Dank!
    Die Seite ist eine große Hilfe!

  • #7

    K. (Samstag, 20 Juli 2019 06:36)

    Diese Seite ist wirklich sehr hilfreich und gut aufgebaut. Viel Erfolg weiterhin.

  • #6

    Alexandra (Dienstag, 09 Juli 2019 02:53)

    Ich bin mega dankbar!! Meine Semesterarbeit in Psychologie ist gerettet. Die Seite ist zudem sehr übersichtlich. Merci!!!

  • #5

    Magdalena (Samstag, 15 Juni 2019 23:26)

    !!! könnte mir gefallen + schmecken ! ! !

  • #4

    Alex (Freitag, 31 Mai 2019 13:33)

    Ganz großes Dankeschön! Konnte einiges für mein Datenanalysebericht im Rahmen des Psychologiestudiums nutzen. Hat mir super geholfen!

  • #3

    FER (Montag, 25 Februar 2019 15:53)

    Tausend DANK!
    Wenn doch mein Prof. das Ganze so simpel erklären würde...

  • #2

    Christine (Sonntag, 27 Januar 2019 19:27)

    Hallo,

    ich liebe diese Seite!
    Sie hat mir geholfen R zu verstehen und ich habe es geschafft selbständig meinen Datensatz zu programmieren für eine Hausarbeit in Psychologie!
    DANKE!

    P.S. Ich finde nix zur Effektgrößenberechnung und würde mich sehr freuen, wenn es da auch noch tolle Hilfe gäbe ;-)

  • #1

    M (Dienstag, 31 Juli 2018 15:48)

    Schöne kurze, übersichtliche und verständliche Darstellung.
    Noch eine Frage:
    Wie bekommt man anschließend in R die Gruppeneinteilung hin, um die signifikant voneinander unterschiedlichen Gruppen mit Buchstaben kennzeichnen zu können (wie es in wissenschaftlichen Arbeiten üblich ist)?