Wilcoxon-Mann-Whitney Test

De test werd gelijktijdig ontwikkeld door Wilcoxon en door Mann en Whitney. Om deze reden wordt de test dikwijls de Wilcoxon-Mann-Whitney (WMW) test genoemd. Soms wordt de test ook de Wilcoxon rank sum test of de Mann-Whitney U test genoemd.

De test werd ontwikkeld voor het testen van de nulhypothese (4) tegenover het alternatief H1:μ1μ2 (of de eenzijdige versies). Eerst wordt er een distributionele veronderstelling gemaakt: het locatie-shift model, later relaxeren we deze aanname.

Stel dat Y1 en Y2 uitkomsten zijn uit respectievelijk de eerste en tweede behandelingsgroep, met respectievelijke verdelingen f1 en f2. Het locatie-shift model geldt als er een Δ bestaat waarvoor geldt

f1(y)=f2(yΔ) voor alle y.

Locatie-shift betekent dat f1 en f2 dezelfde vorm hebben, maar ze mogen over Δ verschoven zijn. De Δ uit de definitie heeft als interpretatie: Δ=μ1μ2. Door locatie-shift aan te nemen, zal het verwerpen van H0:f1=f2 de conclusie μ1μ2 impliceren.

De klassieke two-sample t-teststatistiek is gebouwd rond het verschil in steekproefgemiddelden Y¯1Y¯2. We beschouwen nu ook het verschil in steekproefgemiddelden, maar niet op basis van de oorspronkelijke uitkomsten, maar op basis van de rank-getransformeerde uitkomsten. De ranks zijn toegekend op basis van de gepoolde observaties (i.e. na samenvoegen van de uitkomsten uit groep 1 en groep 2); dus Rij=R(Yij) is de rank van uitkomst Yij in de gepoolde steekproef. Beschouw de teststatistiek

T=1n1i=1n1R(Yi1)1n2i=1n2R(Yi2).

De statistiek vergelijkt dus de gemiddelde rank in groep 1 met de gemiddelde rank in groep 2.

Dit is een zinvolle teststatistiek, want

Er kan echter worden aangetoond dat het volstaat het om

S1=i=1n1R(Yi1)

als teststatistiek te beschouwen. S1 is de som van de ranks van de observaties uit de eerste behandelingsgroep; dit verklaart de naam rank sum test.

S1 en S2 bevatten immers dezelfde informatie en zijn gerelateerd via

S1+S2=som van alle ranks=1+2++n=12n(n+1).

Nu we weten dat S1 (en S2) een goede teststatistiek is, kan de permutatietestmethode toegepast worden om de exacte permutatienuldistributie op te stellen en de test uit te voeren. Voor een gegeven steekproefgrootte n, en veronderstellend dat er geen ties zijn, nemen de rank-getransformeerde uitkomsten altijd de waarden 1,2,,n aan. Voor gegeven groepsgroottes n1 en n2, zal de permutatienuldistributie dan ook steeds dezelfde zijn! In de vorige eeuw (tot ongeveer de jaren 1980) werd dit als een groot voordeel beschouwd omdat de nuldistributies voor gegeven n1 en n2 getabuleerd konden worden (belangrijke kwantielen werden als tabellen in boeken gepubliceerd zodat ze konden gebruikt worden voor het bepalen van kritische waarden en p-waarden), waardoor de gebruiker geen nood had aan zware rekencapaciteit. Vandaag de dag speelt dit argument niet meer mee, maar toch blijven de rank testen erg populair, maar dan wel om andere, heel belangrijke redenen.

Niettegenstaande S1 en S2 perfect als teststatistieken gebruikt kunnen worden, wordt dikwijls gewerkt met de gestandaardiseerde teststatistiek

T=S1E0[S1]Var0[S1],

met E0[S1] en Var0[S1] de verwachtingswaarde en variantie van S1 onder H0. Dit zijn dus het gemiddelde en variantie van de permutatienuldistributie van S1.

Onder H0 geldt

E0[S1]=12n1(n+1) en Var0[S1]=112n1n2(n+1).

Verder kan men onder H0 en als min(n1,n2) opgaat aantonen dat,

T=S1E0[S1]Var0[S1]N(0,1).

Asymptotisch volgt de gestandaardiseerde teststatistiek dus een standaardnormaal verdeling.

We illustreren de WMW test aan de hand van de R functie wilcox.test.

wilcox.test(cholest ~ group, data = chol)
## 
## 	Wilcoxon rank sum exact test
## 
## data:  cholest by group
## W = 24, p-value = 0.01587
## alternative hypothesis: true location shift is not equal to 0

We zien dat we op basis van de test de nulhypothese kunnen verwerpen op het 5% significantie-niveau.

De output geeft de teststatistiek W= 24. In volgende lijnen berekenen we S1 en S2 manueel voor de dataset.

S1 <- chol %>%
  mutate(cholRank=rank(cholest)) %>%
  filter(group==1) %>%
  pull(cholRank) %>%
  sum

S2 <- chol %>%
  mutate(cholRank = rank(cholest)) %>%
  filter(group == 2) %>%
  pull(cholRank) %>%
  sum

S1
## [1] 39
S2
## [1] 16

Waar komt W= 24 vandaan? Dit wordt zodadelijk toegelicht.

De teststatistieken S1 en S2 werden voorgesteld door Wilcoxon, maar tezelfdertijd werd een equivalente test voorgesteld door Mann en Whitney. Hun teststatistiek wordt gegeven door

U1=i=1n1k=1n2I{Yi1Yk2}.

waarbij I{.} een indicator is die 1 is als de uitdrukking waar is en 0 als dit niet het geval is. Er wordt voor elke observatie uit de eerste groep geteld hoeveel keer zij groter of gelijk is aan een observatie uit de tweede groep. We berekenen de Mann-Whitney statistiek nu manueel in R.

y1 <- chol %>%
  filter(group==1) %>%
  pull("cholest")

y2 <- chol %>%
  filter(group==2) %>%
  pull("cholest")

u1Hlp <- sapply(
  y1,
  function(y1i,y2) {y1i>=y2},
  y2=y2)

colnames(u1Hlp) <- y1
rownames(u1Hlp) <- y2

u1Hlp
##      244   206  242  278  236
## 188 TRUE  TRUE TRUE TRUE TRUE
## 212 TRUE FALSE TRUE TRUE TRUE
## 186 TRUE  TRUE TRUE TRUE TRUE
## 198 TRUE  TRUE TRUE TRUE TRUE
## 160 TRUE  TRUE TRUE TRUE TRUE
U1 <- sum(u1Hlp)
U1
## [1] 24

Er kan worden aangetoond dat

U1=S112n1(n1+1).
S1-nGroups[1]*(nGroups[1]+1)/2
##  1 
## 24

Hieruit concluderen we (1) dat U1 en S1 dezelfde informatie bevatten, (2) dat U1 ook een rankstatistiek is en dat exacte testen gebaseerd op U1 en S1 equivalent zijn.

De statistiek U1 heeft als voordeel dat het een informatieve interpretatie heeft. Stel Yj een willekeurige uitkomst uit behandelingsgroep j (j=1,2). Dan geldt

1n1n2E[U1]=P[Y1Y2].

Intuïtief voelen we dit aan: Op basis van de steekproef kunnen we die kans schatten door het gemiddelde te berekenen van alle indicator waarden I{Yi1Yk2}. We voerden inderdaad n1×n2 vergelijkingen uit.

mean(u1Hlp)
## [1] 0.96
U1/(nGroups[1]*nGroups[2])
##    1 
## 0.96

De kans P[Y1Y2] wordt een probabilistische index (Engels: probabilistic index) genoemd. Het is de kans dat een uitkomst uit de eerste groep groter of gelijk is dan een uitkomst uit de tweede groep. Als H0 waar is, dan is P[Y1Y2]=12.

De gestandaardiseerde Mann-Whitney statistiek is

T=U1n1n22112n1n2(n+1).

De R functie wilcox.test geeft niet de Wilcoxon rank sum statistiek, maar wel de Mann-Whitney statistiek U1. We weten echter dat exacte permutatietesten gebaseerd op U1, U2, S1 of S2 dezelfde resultaten geven. We bekijken nogmaals de output

wTest <- wilcox.test(cholest~group, data = chol)
wTest
## 
## 	Wilcoxon rank sum exact test
## 
## data:  cholest by group
## W = 24, p-value = 0.01587
## alternative hypothesis: true location shift is not equal to 0
U1
## [1] 24
probInd <- wTest$statistic/prod(nGroups)
probInd
##    W 
## 0.96

Aangezien p= 0.0159 <0.05 besluiten we op het 5% significantieniveau dat de gemiddelde cholestorolconcentratie groter is bij hartpatiënten kort na een hartaanval dan bij gezonde personen. We nemen aan dat locatie-shift opgaat.

Nu we weten hoe U1 berekend wordt, weten we ook meteen dat een cholestorolwaarde van hartpatiënten met een kans van U1/(n1×n2)= 96% groter is die van gezonde personen. Aangezien we het locatie-shift model veronderstellen, besluiten we ook dat de gemiddelde uitkomst uit de behandelingsgroep groter is dan de gemiddelde uitkomst uit de placebogroep.

We zouden de veronderstelling van de locatie-shift moeten nagaan, maar met slechts 5 observaties in elke behandelingsgroep is dit zinloos. Zonder verder theorie hierover te geven, geven we nog mee dat zonder de locatie-shift veronderstelling de conclusie in termen van de probabilistische index correct blijft en de conclusie ook zo zou moeten worden geformuleerd.

Dus wanneer we geen locatie-shift veronderstellen en een tweezijdige test uitvoeren testen we eigenlijk

H0:F1=F2 vs P(Y1Y2)0.5.

Conclusie Cholestorol Voorbeeld

Er is een significant verschil in de distributie van de cholestorolconcentraties bij hartpatiënten 2 dagen na hun hartaanval en gezonde individuen (p= 0.0159). Het is meer waarschijnlijk om hogere cholestorolconcentraties te observeren bij hartpatiënten dan bij gezonde individuen. De puntschatting voor deze kans bedraagt 96%.