4. Dessiner des "boîtes à moustaches" et réaliser le test de Mann-Whitney avec R ou Python

L'incontournable langage "R" permet ça. Phython propose aussi des bibliothèques bien équipées.

4.1 Avec R. Une boite à moustaches simple à partir d'un fichier csv 1 colonne et 1 ligne d'en-tête

On peut proposer une façon très simple (qui permettra de dessiner automatiquement à partir de fichiers csv de données):


Voici le texte du fichier "boxplot-1col.R". Le # permet d'écrire les lignes de commentaires. Lisez bien les commentaires ! Ce serait ballot que cela ne fonctionne pas pour des histoires de . ou de , comme séparateur des décimales ... ou de chemin de fichier non trouvé.

#lire un fichier csv 1 colonne en respectant les headers et decimales à "," .

#Ci-dessous "le_chemin/data1col.csv" signifie que vous devez indiquer le chemin vers le fichier csv de données.

#A vous de jouer (par exemple "./Rdata/data1col.csv").

#Attention, R utilise le / comme séparateur dans les chemins, pas le \

#la commande getwd() vous donne le répertoire de travail en cours, ça peut servir ...

#création de la variable data1col. data1col sera un type "data frame" mais ici avec 1 seule colonne (1 seul vecteur).

#DANGER Mettre . à la place de , à dec="," si votre séparateur décimal est le "."

data1col=read.table(file="le_chemin/data1col.csv",sep=";",dec=",",h=TRUE)

#pour afficher les données

print(data1col)

#Pour voir les statistiques des données : médiane,, moyenne ....

summary(data1col)

#Tracé de la boite à moustache

#boxplot(data1col)

#et les options ... col="" pour remplir en couleurs. Les codages sont RGB .

#xlab="" pour le nom de l'axe, par exemple en appelant le nom du header du fichier data1col.csv

boxplot(data1col, xlab=names(data1col), col="#99CCCC")

# Rajouter les points à la boîte à moustache avec du "jitter" (un peu de gigue)

# add=TRUE est important dans stripcart() si on veut superposer ce graphe au graphe précédent

stripchart(data1col, vertical=TRUE, pch=19, method="jitter",add=TRUE)

retour en haut de page


4.2 Avec R. Deux boîtes côte à côte. Avec un fichier csv 2 colonnes et première ligne avec les deux en-têtes (headers)

On peut proposer une façon très simple (qui permettra de dessiner automatiquement à partir de fichiers csv de données):


Voici le texte du fichier "boxplot-2col.R". Le # permet d'écrire les lignes de commentaires. Lisez bien les commentaires ! Ce serait ballot que cela ne fonctionne pas pour des histoires de . ou de , comme séparateur des décimales ... ou de chemin de fichier non trouvé

#lire un fichier csv 2 colonnes en respectant les headers et decimales à "," .

#VOIR AUSSI LES COMMENTAIRES DU SCRIPT PRECEDENT

data2col=read.table(file="le_chemin/data2col.csv",sep=";",dec=",",h=TRUE)

#pour afficher les données

print(data2col)

#Pour voir les statistiques des données : médiane,, moyenne ....

summary(data2col)

#Tracé de la boite à moustaches, avec un vecteur de couleurs double pour 2 couleurs

boxplot(data2col, col=c("#99CCCC","#CCCCFF"), main="Diagrammes de distribution")

stripchart(data2col, method="jitter", pch=19, add=TRUE, vertical=TRUE )

retour en haut de page


4.3 Avec R. Y'a plus qu'à rajouter le test de Mann-Whitney

A la suite du script précédent ! Rajoutez :

#On va créer 2 vecteurs génériques à partir du tableau de données

v1 <- data2col[,1]

v2 <- data2col[,2]

#Test de distribution normale (ou pas) de Shapiro-Wilk (faudrait une bonne p-value pour croire vraiment à une hypothétique la normalité !)

#qqplot()est possible et élégant

shapiro.test(v1)

shapiro.test(v2)

#Par défaut la fonction wilcox.test() qui est très très sophistiquée renvoie un test Mann Whitney bilatéral

#?wilcox.test() rassemble Mann-W pour ech indépendants et Wilcoxon pour ech appariés ... voir le help...

wilcox.test(v1,v2)


4.4 Avec le langage Python

A faire.

retour en haut de page