Le test de Wilcoxon Mann-Whitney avec R :

La procédure la plus courante est wilcox.test du package stats.

Données ne comportant pas d'ex aequo.

Par exemple, à partir du fichier Agressn2.csv, on pourra exécuter les commandes :

agressn2.data <- read.csv2(file.choose()) # Sélectionner ici le fichier Agressn2.csv dans la fenêtre de dialogue.

wilcox.test(Score ~ Sexe, data=agressn2.data, correct=FALSE, exact=FALSE)

On obtient : W = 6, p-value = 0.0001387, ce qui correspond à la valeur trouvée en utilisant l'approximation de la statistique de Wilcoxon par une loi normale, sans correction de continuité.

La même commande, exécutée avec le paramétrage "correct=TRUE" introduit une correction de continuité, ce qui conduit à une p-value légèrement plus grande : p-value = 0.0001558.

Par contre, si on utilise le paramétrage "exact=TRUE" (sans indiquer de valeur pour le paramètre "correct", c'est la valeur exacte de la p-value qui est évaluée. Sur cet exemple, elle est nettement plus faible que la précédente :

wilcox.test(Score ~ Sexe, data=agressn2.data, exact=TRUE)
W = 6, p-value = 2.219e-05

Remarque :

Utilisé sans paramètre autre que ceux décrivant les données, wilcox.test a un comportement différent de ce qui est décrit ci-dessus. En effet :

Données comportant des ex aequo.

En présence d'ex aequo, les choses sont différentes.
Le fichier Agressn1.csv contient pratiquement les mêmes données, mais il y a cette fois-ci une paire d'ex aequo chez les garçons et une autre chez les filles.

wilcox.test ne calcule plus de valeur exacte, et fait une approximation normale, en tenant compte des ex aequo. Ainsi :

agressn1.data <- read.csv2(file.choose()) # sélectionner le fichier Agressn1.csv
wilcox.test(Score ~ Sexe, data=agressn1.data, correct=FALSE)

Résultats :
W = 6, p-value = 0.0001378

Par défaut, wilcox.test fait la correction de continuité :

wilcox.test(Score ~ Sexe, data=agressn1.data)

Résultats :
W = 6, p-value = 0.0001548

Variante

Une variante de wilcox.test() est donné dans le package coin. Elle se nomme wilcox_test():

library(coin)
wilcox_test(Score ~ Sexe, data=agressn1.data, distribution="exact")

Donne :
Exact Wilcoxon Mann-Whitney Rank Sum Test

data: Score by Sexe (FILLE, GARCON)
Z = -3.8122, p-value = 2.071e-05
alternative hypothesis: true mu is not equal to 0.