6 Chart: Boxplot

6.2 Exemples simples

D’accord… Réellement plus simple s’il-vous-plaît.

6.2.1 Boxplots unique

R vous donne de base un rapide “boxplot” (littéralement boite à moustache en français) d’un vecteur ou d’une colonne unique basée sur une trame de données, et cela avec très peu de code :

Ou bien sa version horizontale :

Créer un boxplot unique avec ggplot2 est quelque peu problématique. (La blague est que c’est la manière de l’auteur du package de vous dire que si vous avez un groupe, faites plutôt un histogramme !)

Si vous n’incluez qu’une correspondance esthétique, la variable x (en tant que groupe) sera supposée et vous aurez une erreur :

Error: stat_boxplot requires the following missing aesthetics: y

Cela peut être corrigé par y = pour indiquer que weight est la variable numérique, mais vous aurez malgré tout un axe x dénué de sens :

Une approche plus propre consiste à créer un nom pour le groupe unique, l’esthétique x et à supprimer le libellé de l’axe x :

6.2.2 Boxplots multiples utilisant ggplot2

Pour créer des boxplots multiples avec ggplot2, votre trame de données nécessite d’être ordonnée ; formulé autrement, vous avez besoin d’une colonne avec des niveaux de la variable de groupement. Cela peut être une classe de facteurs, de caractères ou de chiffres.

## 'data.frame':    71 obs. of  2 variables:
##  $ weight: num  179 160 136 227 217 168 108 124 143 140 ...
##  $ feed  : Factor w/ 6 levels "casein","horsebean",..: 2 2 2 2 2 2 2 2 2 2 ...

Nous voyons que chickwts a la bonne apparence: Nous avons une colonne feed avec 6 niveaux de facteurs, de sorte que nous pouvons définir l’esthétique x à feed. Nous ordonnons également les boxplots en diminuant le poids médian :

Les trames de données qui contiennent une colonne séparée de valeurs pour chaque boxplot désiré doivent être ordonnées d’abord. (Pour plus de détails sur l’utilisation de tidy::gather(), voir ce tutoriel.)

##   rating complaints privileges learning raises critical advance
## 1     43         51         30       39     61       92      45
## 2     63         64         51       54     63       73      47
## 3     71         70         68       69     76       86      48
## 4     61         63         45       47     54       84      35
## 5     81         78         56       66     71       83      47
## 6     43         55         49       44     54       49      34
##     question rating
## 1 complaints     51
## 2 complaints     64
## 3 complaints     70
## 4 complaints     63
## 5 complaints     78
## 6 complaints     55

Maintenant nous sommes prêts à tracer :

6.3 Théorie

Voici une citation de Hadley Wickham qui résume les boxplots plutôt bien :

Un boxplot est un résumé de distribution compacte, affichant moins de détails qu’un histogramme ou que la densité d’un noyau, mais qui prend également moins d’espace. Les boxplots utilisent des statistiques récapitulatives robustes qui sont constamment localisées à des points de données actuels, qui sont rapidement calculables (à l’origine, à la main), et qui n’ont aucun paramètre d’optimisation. Ils sont particulièrement utiles pour comparer les distributions au travers de groupes. - Hadley Wickham

Un autre usage important du boxplot est l’affichage de valeurs abérrantes. Un boxplot révèle combien abérrante un point de données peut être avec des quartiles et des clôtures. Utilisez le boxplot lorsque vous avez des données avec des valeurs abérrantes de sorte qu’elles soient exposées. Ce qui lui manque en spécificité, il le contre-balance avec sa capacité à résumer clairement de larges jeux de données.

  • Pour plus d’informations sur les boxplots et les variables continues, jetez un coup d’oeil au Chapitre 3 du livre.

6.4 Quand l’utiliser

Les boxplots devraient être utilisés pour afficher des variables continues. Ils sont particulièrement utiles pour identifier les valeurs abérrantes et comparer différents groupes.

Note : Les boxplots peuvent même parfois vous aider à convaincre quelqu’un que vous êtes leur valeur abérrante (Si vous aimez quand les gens détaillent leurs blagues, voici pourquoi cette BD est drôle.).

6.5 Considérations

6.5.1 Orientation retournée

La plupart du temps, vous souhaiterez des boxplots horizontaux. C’est super facile avec ggplot2 : faites juste un + coord_flip() et supprimez le - du réordonnement de sorte que le niveau de facteur avec la plus haute médiane soit au-dessus :

Notez que permuter x et y plutôt que d’utiliser coord_flip() ne marche pas !

6.5.2 PAS pour des données catégorielles

Les boxplots sont super, mais ils ne marchent pas avec les données catégorielles. Vérifiez que votre variable est continue avant d’utiliser les boxplots.

Les données dans l’exemple suivant sont des variables du jeu de données pisaitems au sein du package likert avec des taux de 1, 2, 3 ou 4:

##   ST24Q01 ST24Q02 ST24Q03 ST24Q04 ST24Q05 ST24Q06
## 1       2       4       4       1       4       1
## 2       3       1       1       4       1       3
## 3       4       1       1       3       1       4
## 4       2       2       3       1       2       2

Créer un boxplot à partir de ces données est un bon exemple de ce qu’il ne faut pas faire :

6.6 Ressources externes

  • Tukey, John W. 1977. Exploratory Data Analysis. Addison-Wesley. (Chapter 2): the primary source in which boxplots are first presented.
  • Article on boxplots with ggplot2: Une excellente collection d’exemples de code sur comment réaliser des boxplots avec ggplot2. Cela couvre notamment le layering, les legendes, le faceting, le formatage , et plus encore. Si vous voulez votre boxplot d’une certaine manière cette page vous aidera certainement.
  • Boxplots with plotly package: Un exemple de boxplot en utilisant le package plotly. En passant cela apporte par son interactivité un meilleur moyen de mettre en evidence les propriétés statistiques de votre graphique.
  • ggplot2 Boxplot: Quick Start Guide: Article de STHDA sur comment réaliser des boxplots avec ggplot2. Excellent point de départ avec résultat immédiat dans la personalisation et le formatage.
  • ggplot2 cheatsheet: Toujours bon d’y jeter un oeil.
  • Hadley Wickhan and Lisa Stryjewski on boxplots: Bon pour comprendre les boxplots basiques comme plsu complexes ainsi que leur histoire.






with