Mann-Whitney-U-Test/Wilcoxon-Test in R rechnen

von | Aug 4, 2020 | Mittelwertvergleich, R

Ziel des Mann-Whitney-U-Test in R

Der Mann-Whitney-U-Test (auch Wilcoxon-Test für unabhängige Stichproben) ist ein nicht parametrischer Mittelwertvergleich für 2 voneinander unabhängigen Stichproben. Er verwendet Ränge anstatt der tatsächlichen Werte und ist das Gegenstück zum t-Test bei zwei unabhängigen Stichproben, allerdings hat er nicht solche strengen Voraussetzungen.

 

Voraussetzungen des Mann-Whitney-U-Test in R

  • zwei voneinander unabhängige Stichproben/Gruppen
  • ordinal oder metrisch skalierte y-Variable
  • normalverteilte y-Variable innerhalb der Gruppen nicht nötig
Dieses Video ansehen auf YouTube.

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

 

Durchführung des Mann-Whitney-U-Test in R

Das Beispiel

Im vorliegenden Beispiel wird für die Gruppierungsvaribale „Geschlecht“ das Gewicht verglichen. Ich untersuche also, ob es über die Geschlechter hinweg einen Unterschied bzgl. des Gewichts gibt. Die Variable ist dichotom, Männer sind mit 0 codiert, Frauen mit 1, was bei den deskriptiven Statistiken (unten) noch wichtig wird. Die Nullhypothese des Mann-Whitney-U-Tests bzw. Wilcoxon-Tests geht von keinen Unterschieden aus. Demzufolge unterstellt die Alternativhypothese Unterschiede bezüglich der abhängigen Variable über die Geschlechter hinweg.  

 

Deskriptive Voranalyse

Nach dem Einlesen der Daten empfiehlt sich das Durchführen eines deskriptiven Vergleichs. Er ist nicht notwendig, hilft aber bei der Interpretation der Ergebnisse. Hierzu nutze ich am liebsten 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). Ich schreibe „data_xls$“ vor die Variablen, da ich die in den Dataframe data_xls eingelesenen Variablen nicht attached habe.

Zusätzlich kann man sich mit der Funktion boxplot() einen Boxplot erstellen lassen, was bei intervallskalierten Testvariablen gut funktioniert. Zur ausführlichen Interpretation des Boxplots.

 

install.packages(„psych“)

library(psych)

describeBy(data_xls$Gewicht, data_xls$Geschlecht)

boxplot(Gewicht~Geschlecht, data=data_xls)

 

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     26  73.27  15.53  67.5    72.18    17.79  55   105  50     0.45  -1.2      3.05

——————————————————————————

group: 1

vars  n   mean   sd    median  trimmed  mad    min  max  range  skew  kurtosis  se

1     25  58.56  6.16  58      58.19    7.41   50   72   22     0.37  -0.92     1.23

 

mann whitney boxplot

Man kann bereits anhand der Mittelwerte erkennen, dass sich die Gruppe 0 (Männer) von der Gruppe 1 (Frauen) unterscheidet. Die Männer sind im Schnitt 73,23 kg schwer, die Frauen 58,56 kg schwer. Die Boxplots zeigen dies ebenfalls, dass die Box der Gruppe 0 deutlich über der Box der Gruppe 1 liegt – bei gleichzeitig höherer Streuung. Die Frage ist nun, ist dieser beobachtete Unterschied statistisch signifikant?  

 

Den Mann-Whitney-U-Test/Wilcoxon-Test rechnen und interpretieren

Für die Berechnung des Mann-Whitney-U-Tests bzw. Wilcoxon-Tests in R bedarf des lediglich einer Codezeile. Die angewandte Funktion lautet wilcox.test().  

wilcox.test(Gewicht~Geschlecht, data = data_xls, exact = FALSE, correct = FALSE, conf.int = FALSE)

Gewicht~Geschlecht kann ich deswegen ohne data_xls$ schreiben, weil ich das Argument data = data_xls hinzugefügt habe. Für die Funktion wilcox.test() ist das anzugeben. Folgende Argumente sollten zusätzlich verwendet werden:

  • exact: bei weniger als 30 Gesamtbeobachtungen sollte die exakte Signifikanz angefordert werden. Die asymptotische Signifikanz ist dann nicht mehr ausreichend, weil diese erst ab ca. 30 hinreichend genau ist. In meinem Falle habe ich mit n=51 ausreichend Beobachtungen, dass ich exact = FALSE schreiben kann. Habt ihr weniger als 30 Beobachtungen, schreibt ihr exact = TRUE.
  • correct: Approximation einer diskreten Verteilung über eine kontinuierliche durch Anwenden einer Kontinuitätskorrektur – streitbar und wird eher weggelassen bzw. auf correct = FALSE gesetzt. 
  • conf.int: sollten Konfidenzintervalle gewünscht sein, wird conf.int = TRUE angegeben. Ich verzichte hier aber darauf.

 

Nun kann man den Output interpretieren:

Wilcoxon rank sum test

data: Gewicht by Geschlecht W = 513.5, p-value = 0.0003741 alternative hypothesis: true location shift is not equal to 0

 

Hier interessiert zunächst einzig der p-Wert. Dieser ist mit 0,0003741 deutlich unter 0,05. Das bedeutet, dass die Nullhypothese keines Unterschiedes zwischen den Gruppen verworfen werden kann. Demzufolge unterscheiden sich die beiden Geschlechter hinsichtlich ihres Gewichtes statistisch signifikant voneinander. Die Männer sind im Mittel statistisch signifikant schwerer (73,27) als die Frauen (58,56).

Achtung: Wenn bereits eine Wirkungsvermutung vor dem Test existiert – die plausible Annahme, dass Männer aufgrund einer größeren Körpergröße schwerer sind wäre so eine – dann würde man 1-seitig testen. Hierzu darf die Asymptotische bzw. Exakte Signifikanz halbiert werden und erneut mit 0,05 verglichen werden. In diesem Falle ändert sich entsprechend nichts an der Aussage der Verwerfung der Nullhypothese.  

 

Ermittlung der Effektstärke des Mann-Whitney-U-Tests

Die Effektstärke r wird mit folgender Formel berechnet. Der z-Wert wird durch die Wurzel der Stichprobengröße geteilt. Aufgrund der Betragsstriche wird dieser Quotient immer positiv sein.

    \[  r = \lvert \frac{z}{\sqrt{N}}\\]

 

Wo bekommt man nun aber den z-Wert her? Der z-Wert wird anhand der Funktion qnorm() aus dem p-Wert ermittelt. Er beträgt -3,37 und wird anschließend in die r-Formel eingesetzt. sqrt(51) ist die Wurzel aus 51.

z <- qnorm(0.0003741)

r <- z/sqrt(51)

 

Das Ergebnis der Berechnung lautet 0,472.

    \[  r = \lvert \frac{z}{\sqrt{N}}\rvert= \lvert \frac{-3,37}{\sqrt{51}} \rvert=0,472 \]

 

Laut Cohen: Statistical Power Analysis for the Behavioral Sciences (1988), S. 79-81 sind die Effektgrenzen 0,1-0,3 (schwach), 0,3-0,5 (mittel) und größer 0,5 (stark).

Im vorliegenden Beispiel ist die Effektstärke mit 0,472 < 0,5 mittel. Es handelt sich also um einen mittleren Effekt hinsichtlich des Unterschiedes des Gewichtes über die Geschlechter hinweg.

 

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

 

Hat dir der Beitrag geholfen?

Dann würde ich mich über eine kleine Spende freuen, die es mir erlaubt, weiterhin kostenfreie Inhalte zu veröffentlichen.

Vielen Dank und viel Erfolg!

Über mich

Björn Walther

Excel- und SPSS-Experte

YouTube-Kanal

Excel Online-Kurs

YouTube-Kanal