01 75 60 34 00 | conseil@ensae.fr | Prenez RDV |

Statistiques descriptives avec Python

MéTHODES STATISTIQUES 2 jours (12 h) Initiation 1 140 € HT
Statistiques descriptives avec Python

Objectifs pédagogiques

  • Comprendre et savoir mettre en œuvre les principaux outils de statistique descriptive d’une variable : tableaux, graphiques, indicateurs (tendance centrale, dispersion, forme, concentration).
  • Comprendre et savoir mettre en œuvre les principaux outils de statistiques descriptives bivariées : tableaux de contingence, graphiques conditionnels, etc.

Programme détaillé

La formation est consacrée à la présentation et la mise en œuvre des principaux outils de statistique descriptive.

Statistiques descriptives pour une variable 6h

  • Représentation des distributions statistiques sous forme de tableaux et de graphiques (diagrammes en bâtons, en barres, en secteurs, histogrammes)
  • Calcul d’indicateurs de position (moyenne, médiane), de dispersion (variance, écart-type) et de forme
  • Applications sur cas pratiques

Statistiques descriptives pour deux variables 6h

  • Tableau de contingence
  • Calcul d’indicateurs de liaison entre variables : statistique du khi-deux, V de Cramer, coefficient de corrélation linéaire, etc.
  • Analyses graphiques de la relation entre deux variables : nuages de points, boîtes à moustaches conditionnelles, etc.
  • Applications sur cas pratiques

Public visé

Data analysts, chargés d’études statistiques

Prérequis

Connaissances de base en Python (formation Python initiation).

Approche pédagogique

Moyens pédagogiques
Exposé théorique de concepts Applications pratiques sur ordinateur Échanges sur les pratiques et expériences des participants Temps de questions / réponses Exercices, quiz, etc.
Méthodes pédagogiques
Méthode expositive Méthode active

Statistique descriptive en Python : pandas, SciPy et le piège de l'écart-type

En Python, la statistique descriptive ne repose pas sur un seul outil mais sur une répartition des rôles entre plusieurs bibliothèques : pandas pour les tableaux et les indicateurs, SciPy pour les statistiques de liaison, seaborn (construite sur matplotlib) pour les graphiques. Chacune a ses conventions, qu’il vaut mieux connaître avant de comparer des résultats.

Le piège de l’écart-type

Sur les mêmes données, NumPy et pandas ne renvoient pas le même écart-type. NumPy divise par n (paramètre ddof=0), pandas par n − 1 (ddof=1), comme R, SAS ou Excel avec ECARTYPE.STANDARD :

import numpy as np
import pandas as pd

x = pd.Series([2, 4, 4, 4, 5, 5, 7, 9])
x.std()      # 2.138… : diviseur n − 1
np.std(x)    # 2.0 : diviseur n

L’écart est négligeable sur un grand fichier, beaucoup moins sur un échantillon de quelques dizaines d’observations. Les indicateurs de forme suivent la même logique : la méthode kurt() de pandas et la fonction scipy.stats.kurtosis() n’utilisent pas le même estimateur par défaut.

Une variable, puis deux

describe() donne en une ligne effectif, moyenne, écart-type et quartiles d’une variable quantitative ; value_counts(normalize=True) la distribution d’une variable qualitative. Pour deux variables qualitatives, pd.crosstab() construit le tableau de contingence, que SciPy prend directement en entrée :

from scipy.stats import chi2_contingency
from scipy.stats.contingency import association

tab = pd.crosstab(df["csp"], df["diplome"])
chi2, p, ddl, attendus = chi2_contingency(tab)
association(tab, method="cramer")   # V de Cramér

Comme son équivalent R, chi2_contingency() applique par défaut la correction de Yates lorsque le tableau n’a qu’un degré de liberté (tableau 2 × 2). Pour deux variables quantitatives, la méthode corr() de pandas calcule le coefficient de corrélation linéaire.

Des graphiques qui lisent directement les tableaux

seaborn accepte un DataFrame et des noms de colonnes, ce qui rend les graphiques conditionnels immédiats :

import seaborn as sns

sns.histplot(data=df, x="salaire", bins=20)
sns.boxplot(data=df, x="csp", y="salaire")          # boîtes à moustaches conditionnelles
sns.scatterplot(data=df, x="experience", y="salaire")

Les mêmes bibliothèques servent de base aux étapes suivantes : l’analyse exploratoire des données avec Python pour résumer de nombreuses variables à la fois, la régression linéaire et l’analyse de la variance avec Python pour passer à la modélisation.