Comment définir un histogramme
Un histogramme est un des graphiques les plus important de la statistique. Un histogramme vous permet de comprendre la distribution de vos données et de valider certaines hypothèses. Un histogramme est représenté comme un diagramme en bâtons dans lequel chaque bâton représente une densité ou une fréquence d'individus dans un intervalle donné.
Un histogramme s'applique sur des données quantitatives, c'est-à-dire numériques et va utiliser un système de discrétisation (découpage en classes ordonnées) pour représenter les densités d'individus présents dans chaque intervalle.
Un histogramme pourra avoir la forme suivante :
Cet histogramme représente deux groupes d'individus (ils sont dans ce cas issus d'une loi normale centrée réduite) et ce sont des fréquences qui sont représentées en ordonnée. L'axe des abscisses représente les valeurs associées aux individus dans les données.
Quels paramètres choisir dans un histogramme
Lorsque vous construisez un histogramme, le principal paramètre à définir concerne les intervalles créés lors de la discrétisation.
La plupart des outils ont des valeurs par défaut autour de 10, mais cette valeur n'est pas adaptée à tous les cas. En effet, imaginons que vous avec 100'000 individus avec une distribution assez complexe, si vous utilisez 10 intervalles, vous ne verrez absolument pas les variations de votre distribution. On le voit bien dans cet exemple :
On voit ici clairement qu'il y a deux distributions différentes dans le second histogramme alors qu'elles n'apparaissent pas dans le premier.
A l'inverse, si vous avez très peu de données, il sera inutile d'augmenter le nombre d'intervalles car comme on peut le voir sur l'exemple précédent, plus vous augmentez le nombre d'intervalles, plus la fréquence par intervalle devient faible. Si on a très peu de données, on verra apparaître des variations dans l'histogramme qui seront le fait de très peu d'individus ce qui pourra entraîner de fausses pistes d'analyse.
Construire un histogramme avec R et python
R et python sont aujourd'hui les deux langages de référence pour le traitement de la données, il est donc intéressant de comprendre comment construire un histogramme sur vos données avec ces deux langages.
Nous allons nous baser sur deux bibliothèques de référence : ggplot2 pour R et matplotlib pour python.
Les outils utilisés
La génération des données
>df <-data.frame(donnees=as.vector(rbind(rnorm(100000),rnorm(100000,mean = 6,sd=3))))
>
import numpy as np
data=np.concatenate([np.random.randn(100000),6+(np.random.randn(100000))*3],axis=0)
Le code et les résultats
install.packages("ggplot2")
library(ggplot2)
ggplot(df,aes(x=donnees)) + geom_histogram(bins=100,fill="red",alpha = 0.5) + ggtitle("Histogramme avec 100 intervalles") + labs(y="Fréquences")
Pour dessiner un histogramme, il faut charger les bibliothèques associées. Si de plus vous utilisez des Jupyter Notebook ou le nouveau JupyterLab, on peut ajouter une ligne pour afficher directement l'histogramme dans le notebook :
import matplotlib.pyplot as plt
%matplotlib inline
On peut alors simplement dessiner un histogramme en utilisant l'approche matplotlib :
plt.hist(data,bins=100,color="red",alpha=0.8)
plt.title("Histogramme avec 100 intervalles")
plt.ylabel("Fréquences")
Aller plus loin
Cet article ne proposer que la base pour représenter des histogrammes avec R et python. Voici quelques références intéressantes à ce sujet pour aller plus loin :
- La documentation de ggplot2 :
http://ggplot2.tidyverse.org/reference/ - La documentation de matplotlib :
https://matplotlib.org/users/index.html - Un exemple de code plus complexe en R :
https://www.r-bloggers.com/how-to-make-a-histogram-with-ggplot2/ - Un exemple de code plus avancé en python :
https://matplotlib.org/gallery/statistics/hist.html
Bien entendu, je reste à votre écoute si vous avez des questions ou un besoin de formation. Contactez-moi par en utilisant le formulaire de contact en bas de cette page ou en cliquant sur contact en haut à droite. N'hésitez pas à ajouter des commentaires si vous avez des remarques à ajouter.
DÉCOUVREZ NOS FORMATIONS TRAITEMENT DE DONNÉES AVEC PYTHON
DÉCOUVREZ NOS FORMATIONS AU LOGICIEL R POUR LE TRAITEMENT DES DONNÉES
Partager cet article