Pourquoi aimer les boxplots

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 :

papier AFSP 2011, annexe figure 11 : résultat d'un modèle additif généralisé

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)

IMC USA 2009 par quantiles

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

Boxplot IMC

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

IMC * Ethnicité * Éducation

C’est maintenant l’heure d’aller rattraper les cours que j’ai lamentablement ratés ou pas encore rédigés pour demain…

  1. … car je suis une feignasse, mais je posterai du code R plus chouette plus tard. []

2 réflexions au sujet de « Pourquoi aimer les boxplots »

Les commentaires sont fermés.