D. Chessel & A.B. Dufour - Biométrie et Biologie Evolutive - Université Lyon1
______________________________________________________________________
Biostatistique / Fiche BS3.doc / Page 5 / 02-04-03
http://pbil.univ-lyon1.fr/R/cours/bs3.pdf
1.2 Le test de Wilcoxon (Mann-Whitney)
On pourrait croire que les deux situations précédentes sont identiques. Il n’en est rien :
y1 <- c(120,107,110,116,114,111,113,117,114,112)
y2 <- c(110,111,107,108,110,105,107,106,111,111)
hist(c(y1,y2), nclass = 8, col=grey(0.7), main="longueur de la mâchoire")
y1 <- c(124,42,25,45,412,51,1112,46,103,876,146,340,396)
y2 <- c(1235,24,1581,1166,40,727,3808,791,1804,3460,719)
hist(c(y1,y2), nclass = 8, col=grey(0.7), main="temps de survie")
longueur de la mâchoire
c(y1, y2)
Frequency
105 110 115 120
012345
temps de survie
c(y1, y2)
Frequency
0 1000 2000 3000 4000
024681012
La première distribution est relativement symétrique, la deuxième ne l’est pas du tout.
Dans l’ensemble des hypothèses nécessaires au test t, celui de la normalité peut être
globalement invalide. Rejeter l’hypothèse d’égalité des moyennes n’a pas de sens. Il
existe des stratégies utilisables quelle que soit la forme de variation des données. On les
appelle libre de distribution. Le plus simple est le test de Wilcoxon (on dit aussi Mann-
Whitney).
Le raisonnement est simple. On réunit les deux échantillons :
z1 <- c(124, 42, 25, 45, 412, 51, 1112, 46, 103, 876, 146, 340, 396)
z2 <- c(1235, 24, 1581, 1166, 40, 727, 3808, 791, 1804, 3460, 719)
n1 <- length(z1) # Il y a 13 individus dans le premier échantillon
n2 <- length(z2) # 1l y a 11 individus dans le second échantillon
ztot <- c(z1, z2)
ztot
[1] 124 42 25 45 412 51 1112 46 103 876 146 340 396 1235 24
[16] 1581 1166 40 727 3808 791 1804 3460 719
Le rang d’une donnée est le numéro d’ordre de cette donnée quand elles sont rangées
par ordre croissant. La plus petite donnée est située en 15éme position. Elle vaut 24. Son
rang est 1. La plus grande donnée est située en 22ème position. Elle vaut 3460. Son rang
est 23 :
rtot <- rank(ztot)
rtot
[1] 9 4 2 5 13 7 18 6 8 17 10 11 12 20 1 21 19 3 15 24 16 22 23 14
Les individus du premier groupe ont les rangs :
r1 <- rtot[1:n1]
r1
[1] 9 4 2 5 13 7 18 6 8 17 10 11 12