Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Moyenne, médiane et écart type

Après cette leçon: Je peux résumer une série de nombres par un centre et une dispersion.

Leçon de 55 min3 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Résumer des données en deux chiffres

Décrire une série de données, c’est la résumer par un centre, comme la moyenne ou la médiane, et par une dispersion, comme l’écart type. Vous saurez calculer ces mesures à la main et dire ce que chacune cache.

Un loueur de vélos garde le nombre de locations de chaque jour de l’année. Il ne lira pas 365 lignes. Il lui faut un résumé honnête.

À la fin de cette leçon

Remarque

Je peux résumer une série de nombres par un centre et une dispersion.

Mots clés

MotCe que ça veut dire
Moyennela somme des valeurs divisée par leur nombre
Médianela valeur du milieu quand on range la série
Modela valeur qui revient le plus souvent
Étenduela plus grande valeur moins la plus petite
Variancela moyenne des écarts à la moyenne, élevés au carré
Écart typela racine carrée de la variance

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Trois façons de trouver le centre

La moyenne s’obtient en additionnant les valeurs, puis en divisant par leur nombre. La médiane est la valeur du milieu une fois la série rangée. Le mode est la valeur la plus fréquente.

Une valeur extrême tire la moyenne vers elle. Elle ne bouge presque pas la médiane.

La commande qui suit calcule ces mesures pour les 365 jours de locations du labo. Elle affiche une moyenne de 270,3, une médiane de 273 et un mode de 277.

Exemple travaillé : cinq salaires

MesureComment la trouverRésultat en euros
Série1800, 1900, 2000, 2100, 9000
MoyenneAdditionner (16800) puis diviser par 53360
MédianePrendre la valeur du milieu2000
ModeAucune valeur ne se répèteaucun

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Moyenne et médiane des locations de l’année

Commande
docker exec jupyter python3 -c "import csv, statistics; v = [int(r['hires']) for r in csv.DictReader(open('hires.csv'))]; print(len(v), round(statistics.mean(v), 1), statistics.median(v), statistics.mode(v))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

La dispersion dit si la moyenne est fiable

Deux séries peuvent avoir la même moyenne et des valeurs très différentes. La dispersion mesure à quel point les valeurs s’éloignent du centre.

La plus simple est l’étendue. Elle ne regarde que deux valeurs. La variance regarde toutes les valeurs : on prend l’écart de chacune à la moyenne, on le met au carré, puis on fait la moyenne.

Exemple travaillé : les retards d’un bus

Retard en minutesÉcart à la moyenne (5)Écart au carré
3-24
724
500
9416
1-416
Total 25Total 0Total 40

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

L’écart type revient à l’unité des données

Dans le tableau, la variance vaut 40 divisé par 5, soit 8. Mais elle est en minutes au carré, ce qui ne parle à personne.

L’écart type est sa racine carrée : √8, soit environ 2,83 minutes. On peut dire que le bus s’écarte de sa moyenne d’environ trois minutes.

Le même calcul en Python

Code: python
# Retards d’un bus, en minutes, sur cinq jours.
retards = [3, 7, 5, 9, 1]
moyenne = sum(retards) / len(retards)
total = 0
for retard in retards:
    ecart = retard - moyenne
    total = total + ecart ** 2
variance = total / len(retards)
ecart_type = variance ** 0.5
print("moyenne :", moyenne)
print("variance :", variance)
print("écart type :", round(ecart_type, 2))
# Remplacez 9 par 19, puis relancez.
# L’écart type monte-t-il ou descend-il ?

Les locations de l’année ont une grande dispersion

La commande suivante donne l’étendue, la variance et l’écart type des 365 jours. Le jour le plus calme compte 41 locations et le plus chargé 487.

L’étendue est donc 446. L’écart type vaut environ 79,6 locations : un jour ordinaire s’écarte de la moyenne d’environ quatre-vingts locations.

Étendue, variance et écart type des locations

Commande
docker exec jupyter python3 -c "import csv, statistics; v = [int(r['hires']) for r in csv.DictReader(open('hires.csv'))]; print(min(v), max(v), max(v) - min(v), round(statistics.pvariance(v), 1), round(statistics.pstdev(v), 1))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Deux tiers des jours restent près du centre

Pour beaucoup de séries, la plupart des valeurs tombent à moins de deux écarts types de la moyenne. La commande suivante le compte sur les locations.

Elle affiche 241 jours à moins d’un écart type, 355 à moins de deux et les 365 à moins de trois. Cela fait 66 %, 97 % puis 100 % des jours.

Combien de jours restent près de la moyenne ?

Commande
docker exec jupyter python3 -c "import csv, statistics; v = [int(r['hires']) for r in csv.DictReader(open('hires.csv'))]; m = statistics.mean(v); s = statistics.pstdev(v); print(sum(1 for x in v if abs(x - m) <= s), sum(1 for x in v if abs(x - m) <= 2 * s), sum(1 for x in v if abs(x - m) <= 3 * s))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Deux séries, même moyenne, écart type différent

Deux lignes de bus ont la même moyenne de retard, 5 minutes. Pourtant l’une est régulière et l’autre capricieuse.

Seul l’écart type les distingue. Plus il est petit, plus les valeurs sont serrées autour de la moyenne.

Même moyenne, dispersions différentes

LigneRetards en minutesMoyenneÉcart type
A3, 7, 5, 9, 152,83
B5, 5, 4, 6, 550,63

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

Beaucoup pensent que la moyenne suffit à décrire une série. Deux séries très différentes peuvent avoir la même moyenne. Donnez toujours un centre avec une dispersion, et préférez la médiane quand une valeur extrême tire la moyenne.

Pour aller plus loin

Dans un carnet du labo, chargez hires.csv avec pandas et appelez describe() sur la colonne des locations. Retrouvez la moyenne, le minimum et le maximum de cette leçon.

L’écart type de pandas diffère un peu du nôtre, car il divise par n moins 1. La leçon sur l’échantillonnage explique pourquoi.

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.