sabato 15 novembre 2008

Test di Wilcoxon-Mann-Whitney della somma dei ranghi

Confronto delle medie di due gruppi di campioni indipendenti, in cui non si può supporre una distribuzione di tipo gaussiana; è l’equivalente del test U di Mann-Whitney.

Si vuole verificare la media dei goal subito da due squadra calcistiche nel corso degli anni. Vengono riportati di seguito il numero di goal subiti da ciascuna squadra in 6 partite successive, per ciascun anno (dati inventati).
Squadra A: 6, 8, 2, 4, 4, 5
Squadra B: 7, 10, 4, 3, 5, 6

Il test di Wilcoxon-Mann-Whitney (o test di Wilcoxon della somma dei ranghi) si applica nel caso in cui si chiede di confrontare le medie dei valori di due gruppi che non seguono una distribuzione normale. È l’equivalente del test t per campioni indipendenti.
Vediamo come risolvere il problema con R:

> a = c(6, 8, 2, 4, 4, 5)
> b = c(7, 10, 4, 3, 5, 6)
>
> wilcox.test(a,b, correct=FALSE)

Wilcoxon rank sum test

data: a and b
W = 14, p-value = 0.5174
alternative hypothesis: true location shift is not equal to 0


Il p-value è maggiore di 0.05, quindi possiamo accettare l’ipotesi H0 di uguaglianza significativa delle medie dei due gruppi.
Se avessi eseguito il wilcox.test(b,a, correct=FALSE), il p-value sarebbe stato logicamente lo stesso:

> a = c(6, 8, 2, 4, 4, 5)
> b = c(7, 10, 4, 3, 5, 6)
>
> wilcox.test(b,a, correct=FALSE)

Wilcoxon rank sum test

data: b and a
W = 22, p-value = 0.5174
alternative hypothesis: true location shift is not equal to 0


Il valore W (sui libri di testo è solitamente indicato con U) è così calcolato: dopo aver riunito tutti i valori in un unico gruppo, si dispongono in ordine crescente e si assegnano i ranghi. Fatto ciò, si prendono i ranghi del gruppo a e si sommano. A questo valore si sottrae il risultato che si ottiene dalla seguente formula: Na(Na+1)/2 (dove Na è la numerosità campionaria del gruppo a).
Se eseguiamo il wilcox.test(b,a, correct=FALSE), avremmo ottenuto W = 22, che corrisponde al numero che si ottiene sottraendo alla somma dei ranghi del gruppo b il risultato dell’operazione Nb(Nb+1)/2 (dove Nb è la numerosità campionaria del gruppo b).

Verifichiamo quanto detto:

> somma.ranghi.a = sum(rank(c(a,b))[1:6]) #somma dei ranghi assegnati al gruppo a
> W = somma.ranghi.a – (length(a)*(length(a)+1)) / 2 #calcolo il valore di W
> W
[1] 14

> somma.ranghi.b = sum(rank(c(a,b))[7:12]) #somma dei ranghi assegnati al gruppo b
> W = somma.ranghi.b – (length(b)*(length(b)+1)) / 2 #calcolo il valore di W
> W
[1] 22


Per avere una conferma della nostra decisione statistica (di accettare l’ipotesi H0), possiamo fare riferimento ai valori tabulati sulle tavole di Wilcoxon per campioni indipendenti. L’intervallo tabulato per due gruppi da 6 campioni ciascuno è: (26, 52), mentre i valori che otteniamo dal nostro esercizio sono:

> sum(rank(c(a,b))[1:6]) #somma dei ranghi del gruppo a
[1] 35
> sum(rank(c(a,b))[7:12]) #somma dei ranghi del gruppo b
[1] 43


Poiché l’intervallo calcolato (35, 43) è interno all’intervallo tabulato (26, 52), concludiamo accettando l’ipotesi H0 di uguaglianza delle medie (come del resto ci diceva il p-value).

1 commento:

  1. Così come si fa per altre distribuzioni, se non si ha a disposizione la tavola, è possibile calcolare l'intervallo direttamente in R?

    Grazie, Alberto

    RispondiElimina