Un box plot est l'un des graphiques standard utilisés dans l'analyse exploratoire des données pour analyser la distribution des données. Il fournit un résumé graphique pour identifier la distribution et l'asymétrie de l'ensemble de données. Voici à quoi ressemble une boîte à moustaches:
Dans un boxplot, l'ensemble de données est divisé en fonction de leurs valeurs de quartile.
À partir d'un boxplot, vous pouvez trouver la valeur minimale, la valeur du premier quartile, la valeur médiane, la valeur du troisième quartile et la valeur maximale dans l'ensemble de données.
Extrême inférieur: il s'agit de la valeur la plus basse de l'ensemble de données à l'exclusion des valeurs aberrantes (une valeur aberrante est une observation qui se situe à une distance anormale d'autres valeurs dans un échantillon aléatoire d'une population)
Extrême supérieur: le point de la valeur maximale à l'exclusion des valeurs aberrantes.
Valeur médiane: il s'agit du point médian de l'ensemble de données. 50% des points de données seront inférieurs à cette valeur et 50% des points de données seront au-dessus de cette valeur.
Quartile inférieur / premier quartile: Il s'agit du point du 25e centile. Les valeurs de 25% des points de données sont inférieures à cette valeur et 75% supérieures à cette valeur.
Quartile supérieur / troisième quartile: Il s'agit du point du 75e centile. Les valeurs de 75% des points de données sont inférieures à cette valeur.
Intervalle interquartile (IQR): points compris entre le 25e et le 75e centile. (c'est-à-dire le milieu 50% des points de données)
Moustaches: Points autres que les 50% du milieu.
Une valeur aberrante est un point éloigné du reste des points de données. Ils sont représentés séparément sous forme de points individuels dans une boîte à moustaches. Les valeurs aberrantes sont les points qui ont une valeur inférieure à Q1–1,5 * IQR et les points qui sont supérieurs à Q3 + 1,5 * IQR.
Une distribution peut être soit normalement distribuée, soit positivement asymétrique ou négative. Vous pouvez trouver cela en utilisant la boîte à moustaches de la distribution.
Dans un ensemble de données normalement distribué, la longueur de tous les quartiles sera la même.
Dans un ensemble de données biaisé positivement, la longueur du 1er et du 2ème quartile sera plus petite et la longueur du 3ème et 4ème quartile sera plus grande.
Dans un ensemble de données asymétrique négativement, la longueur du 1er et du 2ème quartile sera plus grande et la longueur du 3ème et 4ème quartile sera plus petite.
À partir d'une boîte à moustaches de différents groupes, vous pouvez comparer facilement les distributions et les valeurs médianes de ces groupes. Il fournit un moyen simple de visualiser la gamme et la distribution des groupes.
Dans l'image ci-dessus, vous pouvez voir la boîte à moustaches des âges de 4 groupes de personnes différents.
Examinons toutes les informations que nous pouvons obtenir du graphique ci-dessus.
- Le groupe 1 couvre un large éventail de personnes de tous âges car la fourchette est plus élevée dans ce cas.
- L'âge médian des personnes du groupe 3 est le plus élevé et l'âge médian est le plus bas pour les personnes du groupe 1.
- La boîte à moustaches pour le groupe 0 est relativement courte, ce qui montre qu'elle ne couvre qu'un très petit nombre de personnes.
- Vous pouvez également voir que les 4 groupes sont normalement distribués.
Dans ce cas, la boîte à moustaches contiendra une encoche au centre. L'encoche représente la médiane avec un intervalle de confiance de 95%. La plage d'encoche est calculée comme
médiane +/- 1,57 * IQR / racine_carrée (N)
Voyons maintenant comment tracer une boîte à moustaches en Python.
J'utiliserai l'ensemble de données sur les maladies cardiaques de Kaggle pour les exemples. Vous pouvez télécharger l'ensemble de données à partir du lien ci-dessous:
Tout d' abord, importer toutes les bibliothèques nécessaires, que vous devrez explorer l'ensemble de données - numpy
, pandas
, matplotlib
, seaborn
.
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns
df = pd.read_csv("heartdisease.csv")df.head()
Boxplot est utilisé pour comprendre la distribution de l'ensemble de données. Regardons la boîte à moustaches des niveaux de cholestérol des données des patients.
Pour tracer une boîte à moustaches, utilisez la plt.boxplot()
fonction. Transmettez l'ensemble de données en tant qu'argument à la fonction.
fig = plt.figure(1, figsize=(9, 6))plt.boxplot(df['chol'])
Décomposons-le un par un.
Les valeurs minimale et maximale sont considérées en excluant les valeurs aberrantes de l'ensemble de données.
Voir cette case au milieu, en ce que la partie inférieure désigne le 25e centile, c'est-à-dire le premier quartile, et la partie supérieure représente le 75e centile, c'est-à-dire le 3e quartile.
La ligne orange du milieu représente la valeur médiane.
La distance entre la 1ère et la 3ème ligne de quantile est appelée plage inter-quartile.
Quel est le centile? Si un point a un percentile de 40, cela signifie que 40% des points de l'ensemble de données sont en dessous.
Utilisez l' notch=True
argument à l'intérieur de la plt.boxplot()
fonction pour créer une boîte à moustaches avec encoche.
Cette encoche représente l'intervalle de confiance à 95% de la valeur médiane.
fig = plt.figure(1, figsize=(9, 6))plt.boxplot(df['chol'],notch = True)
Utilisez vert=0
l'argument pour créer une boîte à moustaches horizontale.
fig = plt.figure(1, figsize=(9, 6))plt.boxplot(df['chol'],notch = True,vert=0)
Vous pouvez tracer la distribution de nombreuses variables dans une seule boîte à moustaches. Il vous suffit de transmettre toutes les colonnes en tant qu'ensemble de données dans la boîte à moustaches.
Vous pouvez également étiqueter les variables sur l'axe des x à l'aide de l' labels=
argument.
fig = plt.figure(1, figsize=(9, 6))data = [df['trestbps'],df['chol'],df['thalach']]plt.boxplot(data,labels=['Trestbps','Chol','Thalach'])
Les boîtes à moustaches peuvent également être tracées dans seaborn en utilisant la sns.boxplot()
fonction.
Vous devez transmettre la variable x, la variable y et les données en tant qu'argument à la fonction.
fig = plt.figure(1, figsize=(9, 6))sns.boxplot(x='cp',y='chol',data=df)
À partir de là, vous pouvez interpréter que la gamme de cholestérol est significativement plus élevée cp=0
par rapport à cp=3
.
Pour comprendre la distribution de la boîte à moustaches, vous pouvez également essayer de tracer un diagramme en bande avec lui.
fig = plt.figure(1, figsize=(9, 6))sns.boxplot(x='cp',y='chol',data=df)sns.stripplot(x="cp", y="chol",data=df)
Utilisez l' hue
argument sns.boxplot()
pour ajouter une troisième variable dans la boîte à moustaches.
fig = plt.figure(1, figsize=(9, 6))sns.boxplot(x='cp',y='chol',hue='sex',data=df)sns.stripplot(x="cp", y="chol",hue='sex',data=df)
Premièrement, les valeurs sont séparées en fonction des cp
valeurs, puis pour chaque cp
valeur, elles sont divisées en fonction du sexe - homme et femme.
J'espère que vous avez maintenant une compréhension claire de la boîte à moustaches. Merci d'avoir lu l'article. Abonnez-vous pour être informé des futurs contenus comme celui-ci.