Statistik mit R & RStudio
36 Rangsummentest mit R (Wilcoxon-Test/ Mann-Whitney-U-Test)
Rangsummentest Wilcoxon-Test/ Mann-Whitney-U-Test
Der Wilcoxon-Rangsummentest, auch bekannt als Mann-Whitney-Test, ist ein nichtparametrischer Test, mit dem festgestellt werden kann, ob zwei unabhängige Stichproben aus derselben Grundgesamtheit stammen. Der Test basiert auf den Rängen der Beobachtungen und nicht auf den tatsächlichen Werten und wird verwendet, wenn die Daten ordinal skaliert sind (oder Voraussetzungen für den t-Test nicht gegeben sind). Die Teststatistik ist die Summe der Ränge der Beobachtungen in einer Stichprobe, und die Nullhypothese lautet, dass es keinen Unterschied zwischen den Gruppen gibt.
In R kann der Wilcoxon-Rangsummentest mit der Funktion wilcox.test() durchgeführt werden. Wenn Sie beispielsweise zwei unabhängige Beobachtungen mit den Namen sample1 und sample2 haben und einen Wilcoxon-Rangsummentest durchführen möchten, um festzustellen, ob sie aus der gleichen Grundgesamtheit stammen, können Sie den folgenden Code verwenden:
wilcox.test(stichprobe1, stichprobe2)
So erhalten Sie die Teststatistik, den p-Wert und die Alternativhypothese für den Test.
Beispiel
Wir nutzen wieder unseren WPStuds Datensatz und gehen der Frage nach, ob Personen, die in einer Partnerschaft leben, zufriedener mit ihrem Leben sind als Singles.
Vorbereitung
Datensatz einlesen (Sie muessen natuerlich noch Ihren Pfad aendern)
load("WPStudis.RData")
Test durchführen
Nun führen wir den Test durch. Wie meist verwenden wir die Notation AV~UV, also erst die abhängige Variable, dann die unabhängige Variable, getrennt durch eine Tilde.
wilcox.test(WPStudis$F21_01_Zufriedenheit_Leben~ WPStudis$F19_Partnerschaft)
##
## Wilcoxon rank sum test with continuity correction
##
## data: WPStudis$F21_01_Zufriedenheit_Leben by WPStudis$F19_Partnerschaft
## W = 764, p-value = 0.04501
## alternative hypothesis: true location shift is not equal to 0
Interpretation
Wie wir sehen wird der Test auf dem 5 %-Signifikanzniveau knapp signifikant. Wir können also die H0 verwerfen. Zur Erinnerung:
H0: Es gibt keinen Unterschied zwischen beiden Testgruppen
H1: Es gibt einen Unterschied zwischen beiden Testgruppen
Wir können also sagen, es gibt einen signifikanten Unterschied zwischen den Studierenden, die in einer Partnerschaft leben und den Singles im Hinblick auf die Lebenszufriedenheit.
Wir wissen aber noch nicht, wie dieser Unterschied aussieht, also welche Gruppe zufriedener ist. Üblicherweise würde man hier die Mittelwerte der beiden Gruppen vergleichen, zum Beispiel mit der tapply Funktion. Jedoch stellt der Rangsummentest keine Voraussetzungen an das Skalenniveau. Daher können hier auch ordinale Skalen verwendet werden, für die die Berechnung des arithmetischen Mittels nicht sinnvoll ist. Eine Alternative sind daher die mittleren Ränge. Sie geben uns die Information, welche der beiden Gruppen im Mittel den höheren Rang hat.
Zurück zu unserem Beispiel: Wer ist nun zufriedener mit dem Leben – Singles oder Menschen in Partnerschaft?
Schauen wir uns das erstmal deskriptiv an.
tapply(WPStudis$F21_01_Zufriedenheit_Leben, WPStudis$F19_Partnerschaft, summary, na.rm=TRUE)
## $Nein
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.000 3.000 4.000 3.737 4.000 5.000 1
##
## $JA
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.000 4.000 4.000 4.059 4.000 5.000 1
Wir sehen, dass Personen, die in einer Partnerschaft leben, einen höheren Mittelwert für die Lebenszufriedenheit haben. Doch wenn wir davon ausgehen, dass die AV ordinal skaliert ist (also Ränge wiedergibt), dann können wir eigentlich kein arithmetisches Mittel verwenden für unsere Analysen.
Die Lösung sind mittlere Ränge:
Leider werden die mittleren Ränge in R (anders als in SPSS) nicht automatisch mit ausgegeben, man kann diese jedoch über Pakete errechnen lassen oder auch selbst berechnen. Dazu kombinieren wir die rank Funktion mit der tapply Funktion, damit bekommen wir die Summe der Ränge je Gruppe. Durch das Teilen durch die table Funktion erhalten wir die mittleren Ränge (wir teilen durch die jeweilige Gruppengröße).
tapply(rank(WPStudis$F21_01_Zufriedenheit_Leben),WPStudis$F19_Partnerschaft, FUN=sum)/table(WPStudis$F19_Partnerschaft)
## Nein JA
## 41.38462 50.38462
Das Ergebnis zeigt, dass die Studierenden in Partnerschaft durchschnittlich die höheren Ränge hinsichtlich der Lebenszufriedenheit haben.
Vorgehen bei Messwiederholung
Der Wilcoxon-Test für abhängige Stichproben (sog. Wilcoxon Signed-Rank Test) funktioniert identisch mit dem zusätzlichen Argument “paired=TRUE” – also wie beim bereits bekannten t-Test.
In diesem Video zeige ich, wie das in R funktioniert:
Übung
Nutzen Sie die Daten “immer” aus dem Paket MASS
library(MASS)
immer <- immer
Die Daten zeigen das Ernteergebnis von Felder an zwei Messzeitpunkten Y1 (1931) und Y2 (1932). Gibt es einen statistisch signifikanten Unterschied zwischen den Ernteerträgen in den beiden Jahren? (Auf 5 %-Niveau)
Führen Sie den Wilcoxon-Test durch und interpretieren Sie das Ergebnis.
Die Lösung zu dieser Übungsaufgabe gibt es im neuen Buch Statistik mit R & RStudio.