Baptiste Coulmont rappelle qu’on n’utilise pas assez les boxplots, et cite au passage Howard Becker, qui vante leurs qualités d’identification des “observations extrêmes”, les outliers. Récemment sur France Culture, on pouvait écouter Bernard Lahire faire la même apologie du travail sur les exceptions, comme par exemple les renversements de genre (il citait les camionneuses et les chirurgiennes).
La qualité première d’un boxplot est effectivement de faire ressortir des “boîtes” les observations qui se trouvent trop éloignées des autres, et qui brisent la symmétrie de la distribution. C’est pour ça que j’utilise souvents les boxplots sur des séries temporelles, pour faire ressortir l’hétérogénéité des séries. Voici un graphique d’un texte communiqué, pas publié mais réplicable :
Le ‘Bistro aime aussi les boxplots. Vous en trouverez sur les résultats du concours commun des IEP d’il y a quelques années, par exemple, ou encore sur des biais de notation d’exposés. Mais encore faut-il comprendre les règles de construction du boxplot en premier lieu. Ces règles varient sur la méthode de calcul des outliers, comme le signale cet article co-signé par Hadley Wickham, le créateur de ggplot2.
Le boxplot réduit les éléments d’une fonction de répartition empirique (ECDF, déjà citée) à quelques repères essentiels : premier et dernier quartile, cinquantième pourcentile (médiane) et observations “éloignées”, pour lesquelles les définitions varient. Voici un rapide exemple tiré d’un cours, avec du code Stata1 :
* Données : National Health Interview Survey (USA), 2009.
use data/nhis2009, clear
* Calculer l'Indice de Masse Corporelle (IMC/BMI) des enquêtés.
* Échantillon : population américaine adulte.
gen bmi = 703 * weight / height^2
* Calculer les pourcentiles (càd. 100 quantiles).
* Chaque pourcentile contient approx. 1% de la distribution.
xtile bmi_qt = bmi, nq(100)
* Calculer l'IMC moyen de chaque pourcentile.
bys bmi_qt: egen bmi_qm = mean(bmi)
En projetant ces données dans un graphique, on obtient une courbe qui montre d’emblée qu’il y a plus d’Américains à IMC élevé que l’inverse, et que l’état de santé des 10% les plus obèses est probablement un réel facteur de préoccupation, vu que’un IMC supérieur à 40 fait courir un risque d’obésité morbide :
* La variable contre ses quantiles (ECDF).
sc bmi_qm bmi_qt, ms(o) c(l) xla(1 10 25 50 75 90 99)
En calculant les 25e et 75e pourcentiles (quartiles “Q1” et “Q3”), on peut voir quelle fraction de la courbe va correspondre aux limites inférieure et supérieure de la “boîte” du boxplot :
* Stocker les statistiques détaillées.
qui su bmi, d
* Extraire Q1 et Q3.
local q1 = r(p25)
local q3 = r(p75)
* Graphique avec lignes horizontales à Q1 et Q3.
* On aurait aussi grapher la médiane (Q2 / p50).
sc bmi_qm bmi_qt, ms(o) c(l) xla(1 10 25 50 75 90 99) ///
yline(`q1' `q3') name(p1, replace)
Ces éléments sont les éléments de construction fixes. Les “moustaches” et les “outliers” dépendent de calculs plus ésotériques, décrits dans ce script pour Stata. (Au passage, j’utilise mon propre thème graphique pour atténuer la mocheté des graphiques Stata).
L’utilité du boxplot n’est pas vraiment, à mon sens, dans la réduction d’une répartition empirique. On voit plus vite où se trouve les “fat tails” dans une ECDF que dans un boxplot, où le nombre d’outliers est en plus fonction de la taille de l’échantillon, ce qui est facilement trompeur. Voici le boxplot horizontal tiré de la distribution ci-dessus :
* Boxplot.
gr hbox bmi
On a facilement l’impression qu’il y a tout plein d’Américains gravement obèses, mais c’est un effet lié à la taille de l’échantillon. Les outliers sont visuellement nombreux mais représentent en réalité moins de 2% de la distribution (n = 464 à IMC > 40 sur N = 24 291). La courbe de l’ECDF est naturellement plus correcte à interpréter ici.
Le boxplot aide plutôt à la comparaison sur des “petits multiples“, c’est-à-dire sur un petit nombre de catégories avec lesquelles on divise une distribution (ici éducation et ethnicité, sans les “outliers” car les “boîtes” parlent d’elles-mêmes) :
* Les boîtes suffisent pour observer l'effet.
gr box bmi, over(educrec1) asyvars over(raceb) noout
C’est maintenant l’heure d’aller rattraper les cours que j’ai lamentablement ratés ou pas encore rédigés pour demain…
- … car je suis une feignasse, mais je posterai du code R plus chouette plus tard. [↩]
OpenEdition vous propose de citer ce billet de la manière suivante :
François (24 février 2013). Pourquoi aimer les boxplots. Polit’bistro. Consulté le 4 décembre 2024 à l’adresse https://doi.org/10.58079/sypf
pour ma part, j’ai quand même des soucis pour interpréter les bornes inf, et sup, cf http://freakonometrics.blog.free.fr/index.php?post/2012/11/12/On-Box-Cox-transform
(mais plus généralement, je pense que les quantiles méritent plus que le peu de temps qui leur est accordé dans la plupart des cours)
J’enseigne systématiquement l’ECDF, en surfant sur Occupy Wall Street (“We are the 99%”) !