Aller au contenu principal

Atelier : les statistiques du site de commande, chez Da Lambda

Ce que ce chapitre apporte7 points
  • Employer le vocabulaire de base : population, individu, variable, effectif, fréquence.
  • Calculer et choisir un indicateur de position : moyenne, médiane, mode.
  • Mesurer une dispersion : étendue, quartiles, écart-type, coefficient de variation, et repérer les valeurs atypiques.
  • Lire une fréquence cumulée et un centile, et confronter un centile à un engagement.
  • Reconnaître deux populations mêlées, et relier fréquence, probabilité et loi normale.
  • Mesurer le lien entre deux variables, ajuster une droite et dire la part qu'elle explique.
  • Distinguer une corrélation d'une cause, et rédiger une analyse chiffrée.

Le site rame le samedi soir.

Da Lambda, la pizzeria qui a ouvert la commande en ligne dans l'atelier sur les fonctions, reçoit des plaintes : le samedi soir, le site est lent. Le patron a récupéré les temps de réponse du serveur et veut des réponses chiffrées. Les pages sont-elles vraiment lentes, et lesquelles ? L'engagement « 95 % des pages en moins d'une seconde » est-il tenu ? Que coûte au serveur chaque commande de plus ? Faut-il croire que les gros paniers font ramer le site ?

Chaque phase répond à l'une de ces questions avec un outil de la statistique descriptive, rappelé juste avant de servir. Le cours complet est dans statistique descriptive et dans corrélation et moindres carrés.

Travailler seul, phase par phase

L'atelier se fait sans aide, dans l'ordre, et en plusieurs fois si besoin. Chaque phase suit le même chemin.

  1. Le rappel de cours : la notion, sa formule et un petit exemple résolu. Le lire avant de calculer.
  2. Les calculs à la main, dans les cadres de calcul : chaque réponse est jugée dès qu'elle est validée, un indice s'ouvre à la demande, et la valeur exacte se montre après trois essais.
  3. Les figures, à manipuler : elles montrent ce que les nombres résument.
  4. Les questions à déplier : y répondre par écrit, en une ou deux phrases, avant d'ouvrir la réponse.
  5. Ce qu'il faut retenir, en fin de phase.

Deux exercices de programmation, marqués facultatifs, montrent comment un calcul fait à la main se programme en Python. L'atelier se termine sans eux.

Déroulé

DuréeÉtapeNotions
25 min1. Décrire une sériePopulation, variable, moyenne, médiane, mode
40 min2. Mesurer la dispersionÉtendue, quartiles, valeurs atypiques, écart-type, coefficient de variation
30 min3. Le journal du samediEffectif, fréquence, fréquence cumulée, centile
30 min4. Deux populations sous une moyenneHistogramme, moyenne pondérée, probabilité, loi normale
30 min5. Deux variables ensembleNuage, covariance, corrélation
30 min6. Ajuster une droite et prévoirMoindres carrés, prévision, R2R^2
25 min7. Corrélation et causalité, le rapportFacteur de confusion, rédaction

Compter environ trois heures et demie, sans les exercices facultatifs ni les exercices en plus.

Phase 1 : Décrire une série, et trouver une valeur typique

Le mardi midi, le site est calme. Dix requêtes ont été chronométrées, en millisecondes (ms), dans l'ordre où elles sont arrivées :

121, 145, 110, 123, 118, 130, 120, 125, 115, 122121,\ 145,\ 110,\ 123,\ 118,\ 130,\ 120,\ 125,\ 115,\ 122

Le samedi soir, à 20 h 30, dix autres :

310, 190, 2950, 250, 460, 220, 340, 280, 390, 240310,\ 190,\ 2950,\ 250,\ 460,\ 220,\ 340,\ 280,\ 390,\ 240

Avant de calculer quoi que ce soit, il faut savoir de quoi l'on parle.

Rappel de cours : population, individu, variable

La population est l'ensemble étudié, ici les requêtes reçues par le site. Chacun de ses éléments est un individu : une requête. Ce qu'on observe sur chaque individu est une variable : le temps de réponse.

Une variable est quantitative quand elle se mesure par un nombre qui a un sens (on peut le comparer, en faire une moyenne), et qualitative sinon.

  • Quantitative continue : elle peut prendre n'importe quelle valeur d'un intervalle. Le temps de réponse, le montant d'une commande.
  • Quantitative discrète : elle prend des valeurs isolées, souvent entières. Le nombre de pizzas d'une commande.
  • Qualitative : une catégorie, même codée par un nombre. L'appareil employé, mobile ou ordinateur ; la page servie depuis le cache ou non.

La liste des valeurs observées est une série statistique, et leur nombre est l'effectif total, noté NN. Ici, chaque soirée donne une série d'effectif N=10N = 10.

Vérification rapideon peut se reprendre

1.Le nombre de boissons d'une commande est une variable…

2.La colonne qui dit si la page vient du cache, « oui » ou « non », est une variable…

3.Le montant d'une commande, en euros, est une variable…

La première question du patron est simple : combien de temps met une requête, typiquement ?

Rappel de cours : moyenne, médiane, mode

La moyenne est la somme des valeurs divisée par leur nombre :

xˉ=x1+x2+⋯+xNN\bar{x} = \frac{x_1 + x_2 + \dots + x_N}{N}

La médiane coupe la série rangée en deux moitiés de même effectif. Si NN est impair, c'est la valeur du milieu ; si NN est pair, la demi-somme des deux valeurs du milieu.

Le mode est la valeur la plus fréquente. Il est le seul des trois à avoir un sens pour une variable qualitative.

Exemple résolu, sur cinq valeurs : 12, 7, 9, 30, 7.

  • Moyenne : (12+7+9+30+7)/5=65/5=13(12 + 7 + 9 + 30 + 7) / 5 = 65 / 5 = 13.
  • Médiane : rangée, la série devient 7, 7, 9, 12, 30 ; la valeur du milieu est 9.
  • Mode : 7, la seule valeur qui apparaît deux fois.

La moyenne, 13, est tirée vers le haut par la seule valeur 30 ; la médiane, 9, ne dépend que du rang des valeurs et ne bouge pas, même si 30 devient 300.

Le temps typique, mardi et samedi

  • 1.

    La moyenne du mardi, en ms.

  • 2.

    La médiane du mardi, en ms.

  • 3.

    La moyenne du samedi, en ms.

  • 4.

    La médiane du samedi, en ms.

Le samedi, la moyenne vaut 563 ms et la médiane 295 ms. Laquelle décrit une requête typique ?

La médiane. Une seule requête, à 2 950 ms, tire la moyenne vers le haut : sans elle, la moyenne des neuf autres tombe à 297,8 ms, la médiane à 280 ms. La moyenne répond à une autre question, « combien de temps le serveur a-t-il passé en tout, divisé par le nombre de requêtes », utile pour dimensionner, pas pour décrire.

Ce qu'il faut retenir
La médiane décrit une valeur typique et résiste aux valeurs extrêmes ; la moyenne répond à une question de total, et une seule valeur peut la déplacer ; le mode sert aussi pour une variable qualitative. Avant de calculer une médiane, on range toujours la série.

Pour aller plus loin (facultatif) : programmer la moyenne et la médiane

Sur des centaines de valeurs, ces calculs se confient à un programme, à condition qu'il soit juste. Le cadre ci-dessous demande d'écrire les deux fonctions, et « Vérifier » les essaie sur des cas qu'on sait faire de tête.

Exercice : écrire puis vérifier

La moyenne et la médiane

Écrire moyenne(serie), qui renvoie la moyenne d'une liste de nombres, et mediane(serie), qui renvoie sa médiane.

À compléter

Écrire la fonction, puis « Vérifier » : 6 vérifications sur des cas qu'on sait faire de tête.

Phase 2 : Mesurer la dispersion

Deux séries peuvent avoir la même médiane et être très différentes : l'une serrée autour de son centre, l'autre étalée. La seconde question du patron est donc : les temps varient-ils beaucoup ?

Rappel de cours : étendue, quartiles, valeurs atypiques

L'étendue est l'écart entre la plus grande et la plus petite valeur. Simple, mais une seule valeur extrême suffit à la changer.

Les quartiles coupent la série rangée en quatre parts de même effectif. Ce site les calcule par la règle des deux moitiés : on coupe la série rangée en deux moitiés, la médiane n'entrant dans aucune quand NN est impair ; Q1Q_1 est la médiane de la moitié basse, Q3Q_3 celle de la moitié haute. Environ un quart des valeurs est sous Q1Q_1, et un quart au-dessus de Q3Q_3.

L'écart interquartile Q3−Q1Q_3 - Q_1 est la largeur de la moitié centrale des valeurs. Une valeur est atypique quand elle s'écarte de cette zone de plus d'une fois et demie l'écart interquartile : au-delà de la barrière haute Q3+1,5 (Q3−Q1)Q_3 + 1{,}5\,(Q_3 - Q_1), ou en deçà de la barrière basse Q1−1,5 (Q3−Q1)Q_1 - 1{,}5\,(Q_3 - Q_1).

Exemple résolu, sur huit valeurs : 3, 1, 2, 8, 5, 4, 7, 6.

  • Rangée : 1, 2, 3, 4 | 5, 6, 7, 8. La moitié basse est 1, 2, 3, 4, la haute 5, 6, 7, 8.
  • Q1=(2+3)/2=2,5Q_1 = (2 + 3) / 2 = 2{,}5 et Q3=(6+7)/2=6,5Q_3 = (6 + 7) / 2 = 6{,}5 ; l'écart interquartile vaut 4.
  • Barrières : 2,5−6=−3,52{,}5 - 6 = -3{,}5 et 6,5+6=12,56{,}5 + 6 = 12{,}5. Aucune valeur n'est atypique.

Sur sept valeurs, 2, 4, 4, 5, 6, 7, 30, la médiane 5 n'entre dans aucune moitié : Q1Q_1 est la médiane de 2, 4, 4, soit 4, et Q3Q_3 celle de 6, 7, 30, soit 7. La barrière haute vaut 7+1,5×3=11,57 + 1{,}5 \times 3 = 11{,}5 : 30 est atypique.

La dispersion du mardi et du samedi

  • 1.

    L'étendue du mardi, en ms.

  • 2.

    Le premier quartile Q1Q_1 du mardi, en ms.

  • 3.

    Le troisième quartile Q3Q_3 du mardi, en ms.

  • 4.

    La barrière haute du mardi, en ms.

  • 5.

    Le premier quartile du samedi, en ms.

  • 6.

    Le troisième quartile du samedi, en ms.

  • 7.

    La barrière haute du samedi, en ms.

Rappel de cours : lire une boîte à moustaches

La boîte à moustaches dessine cinq nombres. La boîte va de Q1Q_1 à Q3Q_3 : elle contient la moitié centrale des valeurs. Le trait intérieur est la médiane. Les moustaches s'arrêtent aux dernières valeurs qui ne sont pas atypiques, et les valeurs atypiques sont des points isolés. Une boîte large dit une série dispersée ; une médiane décentrée dans sa boîte, une série dissymétrique.

01 0002 0003 000temps de réponse (ms)Mardi midi145Samedi soir2 950
sérieminQ₁médianeQ₃maxmoyenneécart-type
Mardi midi110118121,5125145122,98,99
Samedi soir1902402953902 950563799,45
Dix requêtes chronométrées à deux moments de la semaine. Points isolés : valeurs atypiques, au-delà d'une fois et demie l'écart interquartile.

Comparer la largeur des deux boîtes, puis la place de la requête à 2 950 ms : seule, elle étire l'axe au point d'écraser la boîte du mardi.

La requête du mardi à 145 ms est atypique. Faut-il s'en inquiéter ?

Non. Atypique veut dire « loin de la boîte de cette série », et celle du mardi est très étroite : 7 ms. 145 ms reste un excellent temps de réponse. Une valeur atypique est un signal à regarder, pas une erreur.

Les quartiles ne regardent que des rangs. Une autre mesure de dispersion tient compte de chaque valeur.

Rappel de cours : variance et écart-type

L'écart à la moyenne d'une valeur est xi−xˉx_i - \bar{x}. La variance est la moyenne des carrés de ces écarts, et l'écart-type σ\sigma (sigma) sa racine carrée, qui s'exprime dans la même unité que les valeurs :

V=1N∑i=1N(xi−xˉ)2σ=VV = \frac{1}{N} \sum_{i=1}^{N} (x_i - \bar{x})^2 \qquad \sigma = \sqrt{V}

Les carrés empêchent les écarts positifs et négatifs de se compenser ; la racine ramène à l'unité de départ. L'écart-type se lit comme un écart typique à la moyenne.

Une convention à connaître. On divise ici par NN, pour décrire une série. Pour estimer la dispersion d'une population entière à partir d'un échantillon, on divise par N−1N - 1, et la plupart des logiciels le font par défaut. L'important est de dire laquelle on emploie.

Un écart-type pas à pas, sur 2, 4, 4, 4, 5, 5, 7, 9

  • 1.

    La moyenne de la série.

  • 2.

    La somme des carrés des écarts à cette moyenne.

  • 3.

    La variance.

  • 4.

    L'écart-type.

L'écart-type vaut 9,0 ms pour le mardi et 799 ms pour le samedi. Sans la requête à 2 950 ms, celui du samedi tombe à 82 ms : une seule valeur le multiplie par dix. Construit sur des carrés d'écarts, l'écart-type est encore plus sensible que la moyenne aux valeurs extrêmes, et l'écart interquartile beaucoup moins.

Comparer les écarts-types de deux séries d'ordres de grandeur différents trompe : 9 ms de dispersion n'ont pas le même poids autour de 123 ms qu'autour de 3 secondes.

Rappel de cours : le coefficient de variation

Le coefficient de variation rapporte l'écart-type à la moyenne :

CV=σxˉCV = \frac{\sigma}{\bar{x}}

Il n'a pas d'unité, et s'exprime souvent en pour-cent. Il compare la dispersion relative de séries d'échelles différentes : un CV de 10 % dit que l'écart typique vaut un dixième de la moyenne, quelle qu'elle soit. Il n'a de sens que pour des valeurs positives.

Des dispersions relatives

  • 1.

    Le coefficient de variation du mardi, en pour-cent (σ = 8,99 ms, moyenne 122,9 ms).

  • 2.

    Celui du samedi, en pour-cent (σ = 799,45 ms, moyenne 563 ms).

  • 3.

    Celui du samedi sans la requête à 2 950 ms, en pour-cent (σ = 81,89 ms, moyenne 297,78 ms).

Quelle mesure de dispersion donner au patron pour le samedi ?

L'écart interquartile, 150 ms : la moitié centrale des requêtes tient dans 150 ms, et ce nombre ne dépend pas de la requête à 2 950 ms. L'écart-type, 799 ms, et le coefficient de variation, 142 %, disent surtout qu'une valeur extrême est présente ; on les donne avec elle, et on dit à part ce que vaut la série sans elle.

Ce qu'il faut retenir
L'étendue et l'écart-type sont sensibles aux valeurs extrêmes, l'écart interquartile beaucoup moins. Les barrières à une fois et demie l'écart interquartile repèrent les valeurs atypiques, qui sont des signaux à examiner. Le coefficient de variation compare des dispersions d'échelles différentes. Toujours dire la convention employée, pour les quartiles comme pour l'écart-type.

Pour aller plus loin (facultatif) : programmer l'écart-type

Exercice : écrire puis vérifier

L'écart-type

Écrire ecart_type(serie), la racine de la moyenne des carrés des écarts à la moyenne, en divisant par le nombre de valeurs.

Déjà écrit, à utiliser sans le modifier
À compléter

Écrire la fonction, puis « Vérifier » : 3 vérifications sur des cas qu'on sait faire de tête.

Phase 3 : Le journal du samedi, effectifs, fréquences et centiles

Dix requêtes ne font pas une soirée. Le serveur a exporté le journal de tout le samedi, de 18 h à 23 h : une ligne par commande, 160 commandes. Voici ses premières lignes :

heure;appareil;pizzas;boissons;montant;charge;cache;temps_ms
20:03;mobile;2;1;23,6;28;non;timeout
19:58;ordinateur;2;0;20,0;32;non;1215
18:33;mobile;1;1;13,7;3;oui;99
20:13;mobile;2;1;21,9;33;non;1144
19:20;ordinateur;2;2;30,6;14;non;851

charge compte les commandes en cours sur le site au même instant, cache dit si la page a été servie depuis la mémoire du serveur sans interroger la base, et temps_ms est le temps de réponse. Quand une page dépasse trois secondes, le site abandonne et écrit timeout. Un timeout n'est pas une valeur inconnue : la page a mis au moins trois secondes, et on la compte à 3 000 ms plutôt que de la supprimer.

Sur 160 valeurs, on ne liste plus la série : on la résume en tableau.

Rappel de cours : effectif, fréquence, fréquence cumulée

L'effectif d'une valeur, ou d'une classe de valeurs, est le nombre d'individus qui l'ont. Sa fréquence est son effectif divisé par l'effectif total : f=n/Nf = n / N, une proportion entre 0 et 1, souvent donnée en pour-cent. Les fréquences de toutes les valeurs ont pour somme 1.

La fréquence cumulée d'une valeur est la part des individus qui ont au plus cette valeur : on additionne les fréquences de toutes les valeurs qui la précèdent, elle comprise.

Quand la série est donnée par un tableau d'effectifs, la moyenne se calcule en pondérant chaque valeur par son effectif : xˉ=∑ni xiN\bar{x} = \dfrac{\sum n_i\,x_i}{N}.

Le nombre de pizzas des 160 commandes :

Pizzas par commande123456
Effectif4857211897

Les pizzas du samedi

  • 1.

    La fréquence des commandes de deux pizzas, en pour-cent.

  • 2.

    La fréquence cumulée « au plus deux pizzas », en pour-cent.

  • 3.

    Le mode du nombre de pizzas.

  • 4.

    Le nombre moyen de pizzas par commande.

Pour une variable continue comme le temps, on regroupe les valeurs en classes, des intervalles, et l'on compte les individus de chacune :

Temps de réponse (ms)de 0 à 250de 250 à 500de 500 à 750de 750 à 1 000de 1 000 à 1 5001 500 et plus
Effectif62242427194

Chaque classe contient sa borne basse et pas sa borne haute.

Rappel de cours : les centiles

Le centile d'ordre pp (ou quantile) est la valeur sous laquelle se trouve une proportion pp des individus. La médiane est le 50e centile, Q1Q_1 le 25e, Q3Q_3 le 75e. Le 95e centile laisse 95 % des valeurs sous lui, et 5 % au-dessus.

Centiles et fréquences cumulées se lisent dans les deux sens : dire que le 95e centile vaut une seconde, c'est dire que la fréquence cumulée à une seconde vaut 95 %. Un engagement comme « 95 % des pages en moins d'une seconde » se vérifie donc de deux façons : le 95e centile doit être sous 1 000 ms, ou, ce qui revient au même, la fréquence cumulée à 1 000 ms doit atteindre 95 %.

L'engagement est-il tenu ?

  • 1.

    Le nombre de pages servies en moins de 1 000 ms.

  • 2.

    La fréquence cumulée à 1 000 ms, en pour-cent.

  • 3.

    Le nombre de pages qu'il aurait fallu servir en moins d'une seconde pour tenir l'engagement.

Un logiciel de calcul, ici la bibliothèque pandas de Python, donne d'un coup les indicateurs de la soirée :

IndicateurToutes les pagesServies par le cacheServies par la base
Effectif1606298
Moyenne537 ms84,5 ms823,7 ms
Médiane434 ms83 ms762 ms
95e centile1 179 ms
99e centile2 957 ms
Écart-type528 ms
Minimum et maximum63 et 3 000 ms
Le code qui a produit ce tableau (facultatif, rien à exécuter)
import base64
import io
import zlib
import pandas as pd

# Le fichier du serveur, compressé pour tenir sur une ligne.
JOURNAL = "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"
texte = zlib.decompress(base64.b64decode(JOURNAL)).decode("utf-8")

# Un tableur français : des points-virgules entre les champs, une virgule avant les décimales.
journal = pd.read_csv(io.StringIO(texte), sep=";", decimal=",")

# Un timeout n'est pas une valeur inconnue : la page a mis au moins trois secondes.
journal["temps"] = pd.to_numeric(journal["temps_ms"], errors="coerce").fillna(3000)

print(journal["temps"].describe(percentiles=[0.5, 0.95, 0.99]).round(0))
print(journal.groupby("cache")["temps"].agg(["count", "mean", "median"]).round(1))

pandas calcule ses quartiles en interpolant entre deux valeurs voisines, et son écart-type en divisant par N−1N - 1 : ses nombres peuvent différer d'un cheveu de ceux qu'on obtiendrait à la main avec les conventions de cet atelier. L'écart-type du tableau, 528 ms, divise par NN.

L'engagement « 95 % des pages en moins d'une seconde » est-il tenu ? Et que disait la moyenne ?

Non. 137 pages sur 160 ont répondu en moins d'une seconde, soit 85,6 %, quand l'engagement en demande 152. Le 95e centile le confirme : 1 179 ms, au-dessus d'une seconde. La moyenne, 537 ms, semblait rassurante, mais elle ne dit rien de la queue de la distribution, qui est précisément ce que l'engagement vise. C'est pourquoi les équipes qui surveillent un service parlent en centiles et presque jamais en moyennes.

Que se passerait-il si l'on supprimait les deux timeouts au lieu de les compter à 3 000 ms ?

Les indicateurs de la queue s'amélioreraient artificiellement : le 99e centile passerait de 2 957 ms à 1 839 ms, la moyenne de 537 à 506 ms. On aurait retiré les deux pires expériences de la soirée et conclu que le site va mieux. Une valeur manquante se traite selon ce qu'elle signifie : ici, « plus de trois secondes ».

Ce qu'il faut retenir
Une série longue se résume par un tableau d'effectifs et de fréquences. La fréquence cumulée et le centile disent la même chose dans deux sens, et c'est le bon outil pour vérifier un engagement du type « 95 % en moins de… ». La moyenne ne dit rien de la queue.

Phase 4 : Deux populations sous une seule moyenne

Le tableau de la phase 3 contient une surprise : les pages servies par le cache répondent en 83 ms de médiane, celles qui interrogent la base en 762 ms. La moyenne générale, 537 ms, ne ressemble à aucune des deux.

Rappel de cours : l'histogramme

Un histogramme dessine le tableau des classes : chaque classe est un rectangle dont la hauteur est proportionnelle à l'effectif, quand les classes ont la même largeur. On y lit la forme de la distribution : où les valeurs se concentrent, si elle est symétrique ou étirée d'un côté, et combien elle a de bosses. Deux bosses séparées par un creux trahissent presque toujours deux populations mêlées.

6251597121411586111300,250,50,751441,51 205,263160,9258,8356,7454,6552,5650,4748,3846,2944,11 0421 139,91 237,81 335,71 433,61 531,51 629,41 727,31 825,21 923,12 0212 118,92 216,82 314,72 412,62 510,52 608,42 706,32 804,22 902,13 000temps de réponse (ms)fréquencecumul
Les 160 commandes du samedi soir. La courbe donne la part des commandes servies en moins d'un temps donné ; les repères marquent la médiane et le 95e centile. Moyenne 537,25.

Lire la médiane et le 95e centile sur la courbe cumulée, et les comparer à ceux du tableau. Repérer ensuite les deux paquets de barres et le creux qui les sépare : aucune page n'a mis entre 110 et 320 ms. Les 62 pages de moins de 250 ms sont exactement celles du cache.

Rappel de cours : la moyenne d'un mélange, une moyenne pondérée

Quand une population se partage en groupes, sa moyenne est la moyenne des moyennes des groupes, pondérée par leurs fréquences :

xˉ=f1 xˉ1+f2 xˉ2avec f1+f2=1.\bar{x} = f_1\,\bar{x}_1 + f_2\,\bar{x}_2 \quad \text{avec } f_1 + f_2 = 1.

Elle tombe entre les moyennes des groupes, plus près de celle du groupe le plus nombreux, et peut ne décrire aucun individu réel.

La moyenne de la soirée, retrouvée par les groupes

  • 1.

    La fréquence des pages servies par le cache, en pour-cent.

  • 2.

    La moyenne de la soirée, en ms, à partir des deux groupes.

  • 3.

    La moyenne de la soirée si la part du cache montait à 60 %, les deux moyennes restant les mêmes.

La même série, séparée selon que la page vient du cache ou de la base, en boîtes puis en violons.

01 0002 0003 000temps de réponse (ms)Toutes les commandesServies par le cacheServies par la base
h = 172,3 / 6,3 / 122,7
sérieminQ₁médianeQ₃maxmoyenneécart-type
Toutes les commandes63934348213 000537,25528,42
Servies par le cache63688310010984,4716,04
Servies par la base3205007629573 000823,7493,93
Le violon trace la densité des temps, en miroir ; la bascule repasse en boîtes.
À manipuler
Basculer entre boîtes et violons, sur la première série. La boîte ne connaît que cinq nombres et dessine une distribution sans histoire ; le violon montre deux bosses. Regarder ensuite les deux autres séries : chacune n'a plus qu'une bosse, et sa médiane décrit enfin des requêtes réelles.

On entend souvent qu'une série « normale » a 68 % de ses valeurs à moins d'un écart-type de la moyenne. Pour savoir si c'est vrai ici, il faut deux notions de probabilité.

Rappel de cours : probabilité et fréquence

La probabilité d'un événement est un nombre entre 0 et 1 qui mesure sa chance de se produire. Sur des données observées, on ne la connaît pas : on l'estime par la fréquence de l'événement. La part des pages servies par le cache ce samedi, 38,75 %, estime la probabilité qu'une page du samedi soir vienne du cache.

L'estimation est d'autant meilleure que les observations sont nombreuses : c'est la loi des grands nombres. Sur dix pages, la part du cache aurait pu valoir 20 % ou 60 % par simple hasard ; sur 160, elle bouge beaucoup moins d'une soirée à l'autre.

Rappel de cours : la loi normale et la règle des 68-95-99,7

Beaucoup de grandeurs qui résultent de nombreux petits effets indépendants, un bruit de mesure, une taille, ont une distribution en cloche : symétrique autour de sa moyenne μ\mu, d'autant plus étalée que son écart-type σ\sigma est grand. C'est la loi normale. Pour elle, et pour elle seulement :

  • environ 68 % des valeurs sont entre μ−σ\mu - \sigma et μ+σ\mu + \sigma ;
  • environ 95 % entre μ−2σ\mu - 2\sigma et μ+2σ\mu + 2\sigma ;
  • environ 99,7 % entre μ−3σ\mu - 3\sigma et μ+3σ\mu + 3\sigma.
μ−2σ300μ−σ400μ500μ+σ600μ+2σ700valeur mesuréedensité0,6827
± 1 σ
σ = 100

entre 400 et 600, l'aire vaut 0,6827. Déplacer l'écart-type : elle ne bouge pas.

Écarter les bornes jusqu'à ce que l'aire teintée vaille 0,95.aire = 0,683

Une loi normale de moyenne 500 et d'écart-type 100. Au départ, la zone teintée va de 400 à 600, à moins d'un écart-type de la moyenne : elle contient 68 % des valeurs.
À manipuler
Écarter les bornes jusqu'à teinter 95 % de l'aire, puis lire où elles tombent, en nombre d'écarts-types : la règle des 68-95-99,7 se retrouve sur la figure.

Lire la cloche

  • 1.

    Sur une loi normale, la part des valeurs au-delà de μ+σ\mu + \sigma, en pour-cent.

  • 2.

    La part des valeurs au-delà de μ+2σ\mu + 2\sigma, en pour-cent.

Sur le journal, 88,1 % des temps sont à moins d'un écart-type de leur moyenne, et 97,5 % à moins de deux.

La règle des 68-95 tient-elle sur les temps du samedi ? Qu'en conclure ?

Non : 88,1 % au lieu de 68 %. La série n'est pas une cloche : elle mêle deux familles de requêtes, et quelques valeurs très lentes gonflent son écart-type. La règle des 68-95-99,7 ne vaut que pour une loi normale ; sur une série pareille, on lit les centiles, et l'on résume chaque famille à part.

Que faudrait-il surveiller, plutôt qu'un temps moyen ?

Trois nombres : la part des pages servies par le cache (38,75 % ce samedi), le temps médian des pages qui n'en viennent pas, et le 95e centile de l'ensemble, celui que l'engagement vise. Les deux premiers disent où agir, le troisième si le client le sent.

Ce qu'il faut retenir
Regarder la forme avant de résumer : deux bosses, deux populations, qu'on sépare. La moyenne d'un mélange est la moyenne pondérée des groupes et peut ne décrire personne. Une fréquence estime une probabilité, d'autant mieux que les données sont nombreuses. La règle des 68-95-99,7 suppose une loi normale ; elle ne se vérifie qu'en regardant.

Phase 5 : Deux variables ensemble, nuage, covariance et corrélation

Jusqu'ici, chaque série ne portait qu'une variable. La question du patron en relie deux : le temps de réponse augmente-t-il avec l'affluence ? L'équipe a mené un test de charge : on envoie au site un nombre fixé de commandes simultanées, et l'on relève le temps médian de réponse.

Commandes simultanées xx25811141720232629
Temps médian yy (ms)390430530561639679772848866958
Rappel de cours : nuage de points, covariance, corrélation

Une série à deux variables associe deux valeurs à chaque individu, ici une charge et un temps. On la dessine en nuage de points. Le point moyen a pour coordonnées les deux moyennes, (xˉ ; yˉ)(\bar{x}\,;\,\bar{y}).

La covariance est la moyenne des produits des écarts aux moyennes :

cov⁡(x,y)=1N∑i=1N(xi−xˉ)(yi−yˉ)\operatorname{cov}(x, y) = \frac{1}{N} \sum_{i=1}^{N} (x_i - \bar{x})(y_i - \bar{y})

Un point en haut à droite du point moyen a ses deux écarts positifs, un point en bas à gauche les deux négatifs : leur produit est positif. Une covariance positive dit que les deux variables montent ensemble, négative que l'une descend quand l'autre monte. Sa valeur dépend des unités, et ne se lit pas seule.

Le coefficient de corrélation de Pearson la normalise par les deux écarts-types :

r=cov⁡(x,y)σx σy,−1≤r≤1.r = \frac{\operatorname{cov}(x, y)}{\sigma_x\,\sigma_y}, \qquad -1 \leq r \leq 1.

rr proche de 1 : les points sont presque alignés sur une droite croissante ; proche de −1-1, sur une droite décroissante ; proche de 0, pas de lien linéaire, ce qui n'exclut pas un autre lien, en courbe par exemple.

D'abord pas à pas, sur quatre points seulement : xx = 1, 2, 3, 4 et yy = 1, 3, 2, 4.

Une corrélation pas à pas, sur quatre points

  • 1.

    La moyenne des xx, qui est aussi celle des yy.

  • 2.

    La somme des produits des écarts.

  • 3.

    La covariance.

  • 4.

    La variance des xx.

  • 5.

    Le coefficient de corrélation.

Le test de charge, maintenant.

4006008001 0000102030commandes simultanéestemps médian (ms)produit positifproduit positifproduit négatifproduit négatifG
Le test de charge. Les quadrants se coupent au point moyen ; un point en haut à droite ou en bas à gauche apporte un produit d'écarts positif. Point moyen G (15,5 ; 667,3) : 10 points de produit positif, 0 de produit négatif.

Compter les points de chaque quadrant : tous sont en haut à droite ou en bas à gauche, donc tous les produits d'écarts sont positifs.

La corrélation du test de charge

  • 1.

    La charge moyenne xˉ\bar{x}.

  • 2.

    Le temps médian moyen yˉ\bar{y}, en ms.

  • 3.

    Le coefficient de corrélation, sachant que cov⁡(x,y)=1 564,05\operatorname{cov}(x, y) = 1\,564{,}05, V(x)=74,25V(x) = 74{,}25 et V(y)=33 189,81V(y) = 33\,189{,}81.

Un stagiaire calcule la même corrélation avec un logiciel, et trouve 1,107. Où est l'erreur ?

Une corrélation ne dépasse jamais 1 : le calcul a un défaut. Le stagiaire a pris une covariance qui divise par N−1N - 1 et des écarts-types qui divisent par NN. Le numérateur est alors trop grand d'un facteur NN−1=109\frac{N}{N-1} = \frac{10}{9}, et 0,9963×109=1,1070{,}9963 \times \frac{10}{9} = 1{,}107. Chaque nombre est juste, leur assemblage est faux : une formule n'a de sens que si toutes ses parties suivent la même convention.

Ce qu'il faut retenir
Le signe de la covariance dit si deux variables montent ensemble ; le coefficient de corrélation dit à quel point elles sont alignées, entre −1 et 1, sans unité. Un rr proche de 0 ne veut pas dire « aucun lien », seulement « aucun lien en ligne droite ». Ne jamais mélanger les conventions NN et N−1N - 1 dans une même formule.

Phase 6 : Ajuster une droite et prévoir

Le patron veut savoir ce que coûte chaque commande simultanée et à quelle affluence la page atteindra une seconde. Il faut pour cela une droite qui résume le nuage.

Rappel de cours : la droite des moindres carrés

Parmi toutes les droites y=a x+by = a\,x + b, la droite des moindres carrés est celle qui rend la plus petite possible la somme des carrés des écarts verticaux entre les points et la droite. Sa pente et son ordonnée à l'origine se calculent directement :

a=cov⁡(x,y)V(x)b=yˉ−a xˉa = \frac{\operatorname{cov}(x, y)}{V(x)} \qquad b = \bar{y} - a\,\bar{x}

La seconde formule dit que la droite passe par le point moyen. La pente aa s'exprime en unités de yy par unité de xx : ici, des millisecondes par commande.

Une prévision se fait en remplaçant xx dans l'équation. Dans le domaine des mesures, c'est une interpolation, fiable si les points sont bien alignés ; au-delà, une extrapolation, qui suppose que la relation reste la même hors de ce qu'on a observé, ce que rien ne garantit.

La part de la dispersion des yy que la droite explique est le coefficient de détermination, R2R^2. Pour une droite, il vaut le carré du coefficient de corrélation : R2=r2R^2 = r^2, entre 0 et 1.

Avant toute formule, chercher la droite à tâtons.

4006008001 0000102030commandes simultanéestemps médian (ms)
somme des carrés 31 936

Le minimum vaut 2 436,5, soit 29 499,5 de moins qu'ici.

Chaque écart vertical porte le carré construit sur lui ; la somme de leurs aires est affichée. Droite optimale : y = 21,065 x + 340,798, somme 2 436,5.
À manipuler
Régler la pente et l'ordonnée à l'origine pour faire baisser la somme des carrés, en notant la meilleure valeur atteinte. La droite optimale descend à 2 436,5 : l'écart avec la meilleure somme trouvée dit à quel point la recherche à tâtons approche la formule.

La droite, d'abord sur quatre points, puis sur le test de charge

  • 1.

    La pente de la droite des quatre points de la phase 5.

  • 2.

    Son ordonnée à l'origine.

  • 3.

    La pente de la droite du test de charge, en ms par commande.

  • 4.

    Son ordonnée à l'origine, en ms.

  • 5.

    Le temps médian prévu pour 10 commandes simultanées, en ms.

  • 6.

    La charge à laquelle le temps médian atteindrait 1 000 ms.

  • 7.

    Le coefficient de détermination R2R^2, sachant que r=0,9963r = 0{,}9963.

Que veulent dire, pour le patron, la pente et l'ordonnée à l'origine ?

La pente : chaque commande simultanée de plus ajoute environ 21 ms au temps médian. L'ordonnée à l'origine : un site presque vide répondrait en 341 ms, le temps de base d'une page qui interroge la base. On peut l'interpréter parce que les mesures commencent à 2 commandes, tout près de 0 ; une ordonnée à l'origine loin des mesures n'aurait aucun sens physique.

À quelle charge la médiane atteindra-t-elle une seconde ? Peut-on faire confiance à ce nombre ?

Vers 31 commandes simultanées, juste au-delà de la plus grande charge mesurée, 29 : une extrapolation modeste, qu'on présente comme telle. À 40 commandes, la droite annonce 1 183 ms, mais rien ne dit qu'un serveur saturé reste linéaire : il faudrait refaire un test de charge.

R2R^2 vaut 0,993. Que signifie ce nombre ?

99,3 % de la dispersion des temps médians du test s'explique par la charge, et 0,7 % reste dans les écarts à la droite. La droite résume presque parfaitement ces dix points. Ce n'est pas une garantie au-delà des mesures : un R2R^2 dit la qualité de l'ajustement, pas celle de l'extrapolation.

Ce qu'il faut retenir
La droite des moindres carrés passe par le point moyen et a pour pente cov⁡(x,y)/V(x)\operatorname{cov}(x, y) / V(x), qui se lit en unités de yy par unité de xx. Une prévision dans le domaine des mesures est une interpolation ; au-delà, une extrapolation, à présenter comme telle. R2=r2R^2 = r^2 est la part de la dispersion que la droite explique.

Phase 7 : Corrélation et causalité, puis le rapport

Le patron a une dernière idée. Sur les vingt derniers samedis, il a relevé le panier moyen et le temps médian de réponse : leur corrélation vaut 0,79. Il en conclut que les gros paniers font ramer le site, et veut plafonner les commandes à 60 €.

Rappel de cours : corrélation n'est pas causalité

Une corrélation mesure une association : deux variables varient ensemble. Elle ne dit pas que l'une agit sur l'autre. Trois situations produisent la même corrélation :

  • xx agit sur yy ;
  • yy agit sur xx : la corrélation est symétrique, elle ne dit pas le sens ;
  • une troisième variable, un facteur de confusion, agit sur les deux, sans lien direct entre elles.

Pour établir une cause, on cherche le mécanisme, on compare des situations où le facteur de confusion est le même, et, quand c'est possible, on expérimente : on fait varier une seule grandeur, et l'on mesure.

Chaque soirée a aussi son affluence, le nombre total de commandes, et elle est fortement corrélée aux deux autres :

Couple de variables, sur les vingt samedisCorrélation
affluence et temps médian0,94
affluence et panier moyen0,83
panier moyen et temps médian0,79

Les soirs de grande affluence, le serveur est plus chargé, donc plus lent ; ce sont aussi, sur ces vingt samedis, les soirs où le panier moyen est le plus élevé. Le panier et le temps montent ensemble parce qu'ils suivent tous deux l'affluence : quand on compare des samedis de même affluence, leur corrélation disparaît, à 0,003 près. L'affluence est le facteur de confusion.

Un collègue affirme : « Une corrélation supérieure à 0,9 prouve que l'une des variables cause l'autre. » Que lui répondre ?

La critique. Une corrélation mesure une association linéaire, symétrique : elle ne dit ni le sens d'une éventuelle cause, ni si une troisième variable pilote les deux. Elle peut aussi naître d'une tendance commune dans le temps, ou du hasard sur peu de points.

Le contre-exemple, sur ces données. Le panier et le temps sont corrélés à 0,79 sans aucun lien direct : plafonner les paniers ne changerait rien au temps de réponse. Il faudrait agir sur ce qui charge le serveur.

Ce qu'il faudrait faire. Vérifier le mécanisme (une grosse commande demande-t-elle plus au serveur ? non, une page ne dépend pas du panier), et expérimenter : faire varier une seule grandeur et mesurer, ce qu'est précisément le test de charge de la phase 5.

Le rapport

Rédiger, en cinq à sept phrases, l'analyse destinée au responsable technique du site : quelqu'un qui n'a pas fait les calculs, qui lira le texte une fois et devra décider. La rédiger avant d'ouvrir l'exemple.

La grille, puis un exemple de rapport

Un bon rapport contient un constat chiffré avec l'indicateur qui convient (un centile plutôt qu'une moyenne), la cause établie et sa mesure, une prévision avec sa limite, une recommandation, et ce qu'il ne faut pas conclure. Il ne contient ni code ni formule.

Le samedi soir, le site ne tient pas son engagement : 95 % des pages devraient répondre en moins d'une seconde, or seules 85,6 % le font, et deux pages ont abandonné au bout de trois secondes. Le temps moyen, 537 ms, masque ce problème, car il mélange les pages servies par le cache (83 ms de médiane) et celles qui interrogent la base (762 ms). Le test de charge montre que chaque commande simultanée ajoute environ 21 ms ; à ce rythme, la page médiane atteindra une seconde vers 31 commandes simultanées, juste au-delà de ce qui a été mesuré. Augmenter la part des pages servies par le cache, 39 % aujourd'hui, est le levier le plus direct. Plafonner les paniers ne servirait à rien : leur lien avec la lenteur vient seulement de l'affluence, qui fait monter les deux.

La méthode

  1. Lire le rappel de cours avant de calculer, et refaire son exemple résolu de tête : il sert de point de comparaison.
  2. Regarder avant de résumer. Une boîte, un histogramme ou un nuage disent si un indicateur a un sens : deux populations mêlées, une valeur extrême, une courbe au lieu d'une droite.
  3. Choisir l'indicateur qui répond à la question. La médiane pour une valeur typique, un centile pour un engagement, la moyenne pour un total.
  4. Dire la convention. Quartiles, écart-type et covariance ont plusieurs définitions ; deux grandeurs ne se comparent que si elles suivent la même.
  5. Traiter une donnée manquante selon ce qu'elle signifie. Un timeout est une durée minimale, pas un trou.
  6. Prévoir dans le domaine des mesures, et dire la part que la droite explique.
  7. Ne pas lire une cause dans une corrélation : chercher ce qui agit sur les deux grandeurs, puis expérimenter.

Synthèse

Le mémo des notions de l'atelier, à garder sous la main.

NotionDéfinition ou formuleCe qu'elle dit, et sa limite
VariableCe qu'on observe sur chaque individu : qualitative, quantitative discrète ou continueLe type décide des indicateurs qui ont un sens
Effectif, fréquencenn, puis f=n/Nf = n / N ; la fréquence cumulée additionne jusqu'à une valeurLa part des individus ; une fréquence estime une probabilité
Moyennexˉ=1N∑xi\bar{x} = \frac{1}{N} \sum x_i ; d'un mélange, moyenne pondérée des groupesUn total ramené à l'individu ; sensible aux valeurs extrêmes
MédianeLe milieu de la série rangéeLa valeur typique ; insensible aux valeurs extrêmes
ModeLa valeur la plus fréquenteSeul indicateur d'une variable qualitative
Quartiles, écart interquartileMédianes des deux moitiés ; Q3−Q1Q_3 - Q_1La moitié centrale ; peu sensibles aux valeurs extrêmes
Valeur atypiqueAu-delà de Q3+1,5 (Q3−Q1)Q_3 + 1{,}5\,(Q_3 - Q_1) ou en deçà de Q1−1,5 (Q3−Q1)Q_1 - 1{,}5\,(Q_3 - Q_1)Un signal à examiner, pas une erreur
Écart-typeσ=1N∑(xi−xˉ)2\sigma = \sqrt{\frac{1}{N} \sum (x_i - \bar{x})^2}L'écart typique à la moyenne ; très sensible aux valeurs extrêmes
Coefficient de variationCV=σ/xˉCV = \sigma / \bar{x}La dispersion relative, sans unité
CentileLa valeur sous laquelle se trouve une proportion pp des individusLe bon outil pour un engagement « 95 % en moins de… »
Loi normaleLa cloche ; 68 %, 95 %, 99,7 % à 1, 2, 3 écarts-typesNe vaut que si la série est en cloche : regarder d'abord
Covariance, corrélationcov⁡=1N∑(xi−xˉ)(yi−yˉ)\operatorname{cov} = \frac{1}{N} \sum (x_i - \bar{x})(y_i - \bar{y}) ; r=cov⁡/(σxσy)r = \operatorname{cov} / (\sigma_x \sigma_y)Le sens et la force d'un lien linéaire ; pas une cause
Droite des moindres carrésa=cov⁡(x,y)/V(x)a = \operatorname{cov}(x, y) / V(x), b=yˉ−a xˉb = \bar{y} - a\,\bar{x} ; R2=r2R^2 = r^2Une prévision fiable dans le domaine des mesures

Exercices en plus

Aucun n'est nécessaire à la suite ; ils se font dans n'importe quel ordre.

Sans fin : des exercices engendrés

Chaque bloc tire un exercice ; « Un autre exercice » en tire un nouveau, avec d'autres nombres. Réussir trois fois de suite est le bon signe.

Quartiles et valeurs atypiques, sur onze temps de réponse

Onze temps de réponse d'un site, en millisecondes, dans l'ordre où ils ont été relevés : 114, 118, 138, 126, 120, 141, 125, 136, 140, 381, 132.

  1. La médianems
  2. Le premier quartile Q1Q_1ms
  3. Le troisième quartile Q3Q_3ms
  4. L'écart interquartilems
  5. La barrière haute Q3+1,5×(Q3−Q1)Q_3 + 1{,}5 \times (Q_3 - Q_1)ms
  6. Le nombre de valeurs atypiques au-dessus de la barrière

Moyenne et médiane, avant et après une valeur extrême

Une série de neuf relevés : -5, 7, 9, 13, 14, 15, 18, 24, 220.

  1. La médiane
  2. La moyenne
  3. La médiane si la plus grande valeur est multipliée par 10
  4. La moyenne dans ce même cas

La droite des moindres carrés, sur cinq points

Cinq relevés (xi ; yi)(x_i \,;\, y_i) : (5 ; 18)(5 \,;\, 18), (7 ; 18)(7 \,;\, 18), (9 ; 24)(9 \,;\, 24), (11 ; 26)(11 \,;\, 26), (13 ; 34)(13 \,;\, 34).

  1. La moyenne xˉ\bar{x}
  2. La moyenne yˉ\bar{y}
  3. La variance V(x)V(x)
  4. La covariance cov⁡(x,y)\operatorname{cov}(x, y)
  5. Le coefficient directeur aa de la droite des moindres carrés
  6. L'ordonnée à l'origine bb

Lire une boîte sans les données

On ne connaît d'une série que ses cinq nombres : minimum 12, Q1=18Q_1 = 18, médiane 25, Q3=38Q_3 = 38, maximum 72.

Cinq nombres, et ce qu'ils disent

  • 1.

    L'écart interquartile.

  • 2.

    La barrière haute Q3+1,5 (Q3−Q1)Q_3 + 1{,}5\,(Q_3 - Q_1).

  • 3.

    La barrière basse Q1−1,5 (Q3−Q1)Q_1 - 1{,}5\,(Q_3 - Q_1).

  • 4.

    L'écart entre Q3Q_3 et la médiane, à comparer à celui entre la médiane et Q1Q_1.

La distribution est-elle symétrique ? Y a-t-il des valeurs atypiques ?

Elle est étirée vers le haut : la moitié haute de la boîte (13) est presque deux fois plus large que la moitié basse (7). Le maximum, 72, dépasse la barrière haute de 68 : il est atypique, et peut-être pas seul. Aucune valeur n'est atypique par le bas, puisque le minimum, 12, est au-dessus de −12-12.

Les vingt temps d'exécution

Une application a été chronométrée vingt fois, en secondes : 2,1 ; 2,3 ; 2,4 ; 2,4 ; 2,5 ; 2,7 ; 2,9 ; 3,0 ; 3,1 ; 3,2 ; 3,3 ; 3,4 ; 3,5 ; 3,5 ; 3,6 ; 3,8 ; 4,0 ; 4,1 ; 4,2 ; 8,7. La série est déjà rangée.

Les vingt temps d'exécution

  • 1.

    La médiane, en secondes.

  • 2.

    Le premier quartile, en secondes.

  • 3.

    Le troisième quartile, en secondes.

  • 4.

    La barrière haute, en secondes.

  • 5.

    La moyenne, en secondes.

Que dire au responsable, en trois phrases ?

Un temps typique de 3,25 s, la médiane, avec des exécutions entre 2,1 et 4,2 s. Une exécution à 8,7 s dépasse la barrière haute de 5,35 s : elle est atypique, peut-être un démarrage à froid, et elle est à expliquer avant de conclure. Elle tire la moyenne à 3,435 s et l'écart-type à 1,35 s ; sans elle, ils tombent à 3,16 s et 0,62 s.

Pour aller plus loin : d'où vient la formule de la droite

Établir les formules de aa et bb en annulant les dérivées partielles de la somme des carrés.

S(a,b)=∑(yi−axi−b)2S(a, b) = \sum (y_i - a x_i - b)^2 est une fonction de deux variables, et son minimum annule ses deux dérivées partielles. ∂S∂b=−2∑(yi−axi−b)=0\dfrac{\partial S}{\partial b} = -2 \sum (y_i - a x_i - b) = 0 donne ∑yi=a∑xi+nb\sum y_i = a \sum x_i + n b, soit b=yˉ−a xˉb = \bar{y} - a\,\bar{x} : la droite passe par le point moyen. Ensuite, ∂S∂a=−2∑xi(yi−axi−b)=0\dfrac{\partial S}{\partial a} = -2 \sum x_i (y_i - a x_i - b) = 0. En y remplaçant bb, il vient ∑(xi−xˉ)(yi−yˉ)=a∑(xi−xˉ)2\sum (x_i - \bar{x})(y_i - \bar{y}) = a \sum (x_i - \bar{x})^2, d'où a=cov⁡(x,y)/V(x)a = \operatorname{cov}(x, y) / V(x). C'est bien un minimum : SS est une somme de carrés, convexe en (a,b)(a, b).