Mini-projet : Pizza-Bot, déploiement et données
Ce que ce chapitre apporte 7 points
- Modéliser une décision stratégique par une matrice des gains, et en trouver les équilibres de Nash.
- Résoudre un jeu séquentiel par induction à rebours, et décider face à un adversaire de type inconnu.
- Tester la robustesse d'une décision en faisant varier la croyance qui la fonde, et chiffrer la valeur d'une information.
- Dimensionner un service à partir du taux d'occupation, de la loi de Little et de la régularité du service.
- Calculer à la main covariance, corrélation et droite des moindres carrés, et prédire en respectant le domaine de validité.
- Construire une détection d'anomalies fondée sur la loi normale, et en régler le seuil en fausses alertes par jour.
- Traduire chaque résultat chiffré en une recommandation compréhensible par un non-spécialiste, avec sa limite.
Où installer la machine, et comment la faire tourner ?
Da Lambda, la pizzeria de l'atelier sur les fonctions, lance Pizza-Bot, son premier distributeur automatique de pizzas. La direction pose cinq questions : où l'installer, quelle gamme proposer, combien de temps les clients attendront à l'heure de pointe, combien de pâtons préparer chaque jour, et comment savoir que la machine se dérègle. Le projet consiste à y répondre de bout en bout, du brouillon au calcul vérifié, puis du calcul à la phrase qu'on écrit à la direction.
Rien de neuf n'est enseigné ici. Chaque notion est rappelée juste avant de servir, assez complètement pour travailler sans rouvrir le cours, mais le chapitre reste la référence : théorie des jeux, hasard, croyance et stratégies mixtes, jeux séquentiels, files d'attente, corrélation et moindres carrés, supervision et anomalies. Les sept autres chapitres du parcours n'y servent pas : paradigmes de programmation, complexité, optimisation sous contraintes, arithmétique modulaire, cryptographie, codes correcteurs et graphes. Ils n'entreraient dans cette histoire qu'en la forçant.
L'atelier de statistique, qui suit, retrouve Da Lambda et son site de commande : il entraîne à la main, sur d'autres données, ce que la partie 4 emploie.
Le projet se fait sans aide, dans l'ordre, et en plusieurs fois si besoin. Chaque partie répond à une question de la direction et suit le même chemin.
- Le rappel de cours : la notion, sa formule et un petit exemple résolu. Le lire avant de calculer.
- Le brouillon, puis 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.
- Les figures, à manipuler : plusieurs cachent leur réponse jusqu'au clic, pour la comparer au brouillon.
- Les questions à déplier : y répondre par écrit, en une ou deux phrases, avant d'ouvrir la réponse. Ces phrases serviront à la note finale.
- Ce qu'il faut retenir, en fin de partie.
Chaque partie se termine par un exercice de programmation facultatif, qui refait en Python un calcul déjà fait à la main ; « Vérifier » l'essaie sur de petits cas qu'on sait faire de tête. Le projet se termine sans eux, par une note d'une page à la direction.
Déroulé
| Partie | La question de la direction | Notions mobilisées |
|---|---|---|
| 1. Le duel d'emplacements | Où installer le distributeur ? | Équilibre de Nash, familles de jeux 2 × 2, équilibre mixte |
| 2. Ordre de jeu et choix de gamme | Et si le concurrent choisit le premier ? Quelle gamme proposer ? | Induction à rebours, type, croyance, bascule, valeur de l'information |
| 3. L'attente à la Gare | Combien de temps les clients attendront-ils ? | Taux d'occupation, loi de Little, file à un serveur, variabilité |
| 4. Prévoir les ventes | Combien de pâtons préparer ? | Covariance, corrélation, moindres carrés, domaine de validité, causalité |
| 5. Superviser la buse | Comment savoir que la machine se dérègle ? | Loi normale, z-score, division par , fausses alertes par jour, persistance |
| Le rapport | Que dire à la direction ? | Une recommandation, son chiffre, sa limite |
Partie 1 : Le duel d'emplacements
Deux emplacements sont libres pour le premier distributeur : le Campus et la Gare. Mamma-Auto, un concurrent qui exploite déjà des distributeurs de pizzas, prépare lui aussi une installation, et les deux enseignes décident en même temps, sans connaître le choix de l'autre. Le service commercial de Da Lambda a estimé la marge mensuelle de chacune, en milliers d'euros (k€), dans les quatre situations possibles.
Un jeu sous forme normale se décrit par trois choses : les joueurs, leurs stratégies, et les gains de chacun pour chaque combinaison de stratégies. À deux joueurs et deux stratégies, c'est un tableau : chaque case contient le couple (gain du joueur des lignes ; gain du joueur des colonnes).
Un équilibre de Nash est une case où aucun joueur n'a intérêt à changer seul de stratégie, celle de l'autre restant fixée. En notant et les gains de Pizza-Bot et de Mamma-Auto, la case est un équilibre si, pour toute stratégie de Pizza-Bot et toute stratégie de Mamma-Auto :
La première inégalité fixe la colonne et fait varier la ligne ; la seconde fixe la ligne et fait varier la colonne. Seul : on ne compare jamais deux cases où les deux joueurs auraient changé ensemble. Les inégalités sont larges : un joueur peut être indifférent, il suffit qu'il ne gagne rien à changer.
La méthode des soulignements applique la définition mot pour mot : colonne par colonne, souligner le meilleur gain du joueur des lignes ; ligne par ligne, celui du joueur des colonnes. Les cases soulignées deux fois sont les équilibres.
Exemple résolu, sur un autre jeu, entre deux joueurs A et B :
| A \ B | Campus | Gare |
|---|---|---|
| Campus | 3 ; 3 | 0 ; 5 |
| Gare | 5 ; 0 | 1 ; 1 |
- Dans la colonne Campus, le meilleur gain de A est 5, sur la ligne Gare ; dans la colonne Gare, c'est 1, encore sur la ligne Gare.
- Sur la ligne Campus, le meilleur gain de B est 5, dans la colonne Gare ; sur la ligne Gare, c'est 1, encore dans la colonne Gare.
- Seule la case (Gare, Gare) est soulignée deux fois : c'est l'unique équilibre, alors que (Campus, Campus) rapporterait 3 à chacun.
Une stratégie est dominante pour un joueur si elle lui rapporte strictement plus que toute autre, quoi que fasse l'adversaire.
Les flèches de déviation dessinent le test case par case : de chaque case part une flèche vers la case voisine chaque fois qu'un joueur gagne strictement à y aller seul, verticale pour le joueur des lignes, horizontale pour celui des colonnes. Un équilibre est une case d'où ne part aucune flèche : un puits. Quand aucune comparaison ne tombe sur une égalité, un jeu 2 × 2 appartient à l'une de quatre familles :
- un seul équilibre : toutes les flèches mènent à un même coin. C'est un dilemme du prisonnier si les deux joueurs ont une stratégie dominante et que le coin opposé est meilleur pour tous les deux ;
- coordination : deux puits, sur les cases où les deux joueurs font le même choix ;
- anti-coordination : deux puits, sur les cases où ils font des choix différents ;
- pile ou face : aucun puits, les flèches tournent en cycle.
Quand un jeu a plusieurs équilibres, la définition ne dit pas lequel sera joué. Quatre critères aident à trancher : l'efficacité (un équilibre meilleur pour les deux, au sens de Pareto), la prudence (celui où l'on risque le moins si l'autre se trompe), le point focal (celui qui saute aux yeux), et l'ordre de jeu (celui qui s'engage le premier impose l'équilibre qui l'avantage).
Exemple résolu, sur le jeu précédent : la Gare rapporte plus à A quoi que fasse B (5 contre 3, puis 1 contre 0), et de même à B ; c'est une stratégie dominante pour chacun. Toutes les flèches mènent à (Gare, Gare), et le coin opposé, (Campus, Campus), est meilleur pour les deux : c'est un dilemme du prisonnier.
La matrice du duel
Dans chaque case, le premier nombre est la marge de Pizza-Bot, le second celle de Mamma-Auto, en k€ par mois.
| Pizza-Bot \ Mamma-Auto | Campus | Gare |
|---|---|---|
| Campus | 4 ; 4 | 9 ; 7 |
| Gare | 6 ; 8 | 3 ; 3 |
Les nombres se lisent comme une histoire. Deux distributeurs au même endroit se partagent la clientèle et se font concurrence sur les prix (4 et 4 au Campus, 3 et 3 à la Gare, où le passage est plus rapide et le panier plus faible). Séparés, chacun garde sa clientèle ; le Campus rapporte davantage à celui qui l'occupe.
Au brouillon.
- Recopier la matrice et appliquer la méthode des soulignements. Entourer les cases soulignées deux fois.
- Tracer les flèches de déviation : verticales pour Pizza-Bot, qui change de ligne, horizontales pour Mamma-Auto, qui change de colonne.
- L'un des deux joueurs a-t-il une stratégie dominante ?
- En déduire la famille du duel. Les flèches disent combien il y a d'équilibres et où ; elles ne suffisent pas à reconnaître un dilemme du prisonnier, qui demande en plus une stratégie dominante pour chacun.
Puis répondre :
1.Quelles cases du duel sont des équilibres de Nash ?
2.L'un des deux joueurs a-t-il une stratégie dominante ?
3.À quelle famille de jeux 2 × 2 appartient le duel ?
4.Un jeu 2 × 2 a deux équilibres de Nash purs. Qu'est-ce que cela implique ?
La figure ci-dessous cache ses flèches et ses équilibres jusqu'au clic. Les afficher une fois le brouillon fini, et comparer.
Les déviations sont cachées : chercher, case par case, si un joueur gagne à changer seul, puis les montrer.
L'un des deux équilibres domine-t-il l'autre au sens de Pareto ? Lequel chaque enseigne préfère-t-elle ?
Non. Pizza-Bot préfère (Campus, Gare), qui lui rapporte 9 contre 6 ; Mamma-Auto préfère (Gare, Campus), qui lui rapporte 8 contre 7. Aucun des deux équilibres n'est meilleur pour les deux à la fois : le critère d'efficacité ne tranche pas. La prudence non plus : chacun risque de se retrouver au même endroit que l'autre, à 4 ou à 3.
Quel critère peut trancher ici ? Que se passe-t-il si l'une des deux enseignes s'installe avant l'autre ?
L'ordre de jeu. Celle qui s'engage la première prend l'emplacement qui l'arrange, et l'autre n'a plus qu'à jouer sa meilleure réponse, qui est d'aller ailleurs. Dans un jeu d'anti-coordination, arriver le premier est un avantage décisif : c'est ce que la partie 2 met en jeu.
Ce qu'il faut retenir. Un équilibre de Nash est une case où aucun joueur ne gagne à dévier seul ; la méthode des soulignements et les flèches de déviation appliquent mot pour mot cette définition. Le duel est un jeu d'anti-coordination à deux équilibres, chacun préféré par l'une des enseignes : la matrice seule ne dit pas lequel sera joué.
Bonus : l'équilibre en stratégies mixtes
Une enseigne ne tire pas au sort l'emplacement d'un distributeur. L'équilibre mixte se lit autrement : chacune ignore ce que fera l'autre, et raisonne sur une croyance, la probabilité qu'elle attribue à chaque choix de l'autre. Une enseigne n'hésite entre ses deux emplacements que s'ils lui rapportent autant en moyenne ; sinon, elle prendrait le meilleur à coup sûr. La croyance portée sur un joueur se lit donc sur les gains de l'autre : c'est celle qui rend l'autre indifférent.
Exemple résolu, sur pile ou face : A gagne 1 si les deux pièces tombent du même côté et perd 1 sinon ; B, l'inverse. Si A croit que B joue Pile avec la probabilité , Pile rapporte à A en moyenne , et Face . A n'est indifférent que si , soit .
Noter la probabilité que Mamma-Auto attribue au choix du Campus par Pizza-Bot, et celle que Pizza-Bot attribue au choix du Campus par Mamma-Auto. Au Campus, Mamma-Auto gagne en moyenne ; à la Gare, . Le couple qui rend chacun indifférent est l'équilibre mixte.
L'équilibre mixte, à la main
- 1.
La croyance qui rend Mamma-Auto indifférent entre ses deux emplacements, en fraction ou en décimal.
- 2.
La croyance qui rend Pizza-Bot indifférent.
- 3.
L'espérance de Pizza-Bot à l'équilibre mixte, en k€ par mois.
- 4.
Celle de Mamma-Auto, en k€ par mois.
- 5.
Si chacune choisissait au hasard selon ces probabilités, la probabilité que les deux distributeurs se retrouvent au même endroit.
Comparer ces espérances à ce que chaque enseigne obtient dans les deux équilibres purs. Que coûte l'absence de repère commun ?
Pizza-Bot espère 5,25 k€ par mois, moins que dans ses deux équilibres purs (9 et 6) ; Mamma-Auto 5,5, moins que dans les siens (7 et 8). Les deux perdent, parce que sans repère commun ils se retrouveraient au même endroit plus d'une fois sur deux, 56 % du temps, sur les cases à 4 ou à 3. Un signal qui coordonne, comme un engagement public pris le premier, vaut donc de l'argent pour les deux.
Facultatif : programmer la recherche des équilibres
Sur une matrice plus grande, la méthode des soulignements se confie à un programme, à condition qu'il soit juste. Le cadre ci-dessous demande d'écrire la recherche des équilibres ; « Vérifier » l'essaie sur le duel et sur trois autres jeux, dont celui de l'exemple résolu.
L'écriture la plus tentante est : « la case est un équilibre si la ligne est la meilleure réponse du joueur des lignes et la colonne celle du joueur des colonnes ». Elle fonctionne sur la matrice du projet, et elle est fausse. Quand deux stratégies rapportent autant, une fonction de meilleure réponse n'en renvoie qu'une, et la case de l'autre, tout aussi stable, est rejetée. La définition compare des gains, avec des inégalités larges ; le programme doit faire de même. La dernière vérification porte précisément sur ce cas.
Les équilibres de Nash d'un jeu
Écrire equilibres_nash(gains), qui renvoie la liste des cases d'équilibre d'un jeu à deux joueurs. gains[ligne][colonne] est le couple (gain du joueur des lignes, gain du joueur des colonnes), comme dans la matrice du duel.
Une case s'écrit [ligne, colonne], et les cases se rangent ligne par ligne, dans l'ordre du tableau. Un jeu peut avoir zéro, un ou plusieurs équilibres.
Écrire la fonction, puis « Vérifier » : 4 vérifications sur des cas qu'on sait faire de tête.
Partie 2 : Ordre de jeu et choix de gamme
Mauvaise nouvelle : Mamma-Auto signera son bail le premier, et Pizza-Bot connaîtra son choix avant de faire le sien. Le jeu n'est plus simultané. Une seconde question se pose aussitôt : la gamme de Pizza-Bot, Discount ou Premium. Mamma-Auto vient d'être racheté par un groupe de restauration ; l'acheteur est soit une chaîne discount, soit une enseigne premium, et la machine suivra sa politique, mais son nom n'a pas encore été rendu public.
Qui s'installe en premier ?
Quand un joueur voit le choix de l'autre avant de décider, le jeu est séquentiel et se représente par un arbre : chaque nœud porte le joueur qui décide, chaque branche une action, chaque feuille le couple de gains. On le résout par induction à rebours, en trois gestes :
- Se placer au dernier nœud de décision. Le joueur qui y décide garde la branche qui maximise son propre gain.
- Remplacer ce nœud par le couple de gains de la branche retenue.
- Recommencer un cran plus haut, jusqu'à la racine.
Le premier joueur ne compare donc pas les feuilles : il compare ce qui remonte de chaque branche, une fois que l'autre y a répondu au mieux.
Exemple résolu, sur le jeu de l'exemple de la partie 1, B jouant le premier comme Mamma-Auto, et les gains restant dans l'ordre (A ; B). Si B prend le Campus, A répond Gare (5 contre 3), et B finit avec 0 ; s'il prend la Gare, A répond Gare (1 contre 0), et B finit avec 1. B prend donc la Gare, et la partie s'achève en (Gare, Gare), à (1 ; 1). Les gains de B sur la ligne Campus, 3 et 5, ne comptent pas : A n'y resterait pas.
L'erreur la plus tentante consiste à faire choisir au premier joueur la colonne où se trouve son plus grand gain, puis à laisser l'autre répondre. Sur le duel, elle tombe par chance sur la bonne case, ce qui la rend dangereuse : un brouillon fait avec cette erreur s'en trouve confirmé. Sur la matrice ci-dessous, où Mamma-Auto joue encore le premier, elle se trompe. La résoudre au brouillon avant de remplir le cadre de calcul.
| Pizza-Bot \ Mamma-Auto | Campus | Gare |
|---|---|---|
| Campus | 0 ; 9 | 2 ; 4 |
| Gare | 5 ; 1 | 1 ; 3 |
Au brouillon. Dessiner l'arbre du duel quand Mamma-Auto joue le premier : la racine est Mamma-Auto, puis un nœud Pizza-Bot pour chacun de ses deux choix, puis quatre feuilles. Garder sur les feuilles l'ordre de la matrice, (gain de Pizza-Bot ; gain de Mamma-Auto), et résoudre l'arbre par induction à rebours. Résoudre de même la matrice piège.
L'ordre de jeu, au brouillon
- 1.
Le gain de Pizza-Bot au bout de l'induction à rebours, en k€ par mois.
- 2.
Ce que coûte à Pizza-Bot d'avoir été devancé, par rapport à l'équilibre qu'il préférait, en k€ par mois.
- 3.
Sur la matrice piège, le gain de Mamma-Auto au bout de l'induction à rebours.
L'arbre ci-dessous arrive non résolu : le remonter nœud par nœud, chaque clic faisant un geste de l'induction, et comparer au brouillon.
Remonter depuis les feuilles : à un nœud dont toutes les branches sont évaluées, cliquer celle que le joueur retient. « Nœud suivant » le fait à sa place.
Aucun nœud n'est résolu : seules les feuilles portent leurs gains.
Lequel des deux équilibres du duel l'ordre de jeu a-t-il désigné ? Où installer le distributeur ?
Si Mamma-Auto prend le Campus, Pizza-Bot répond Gare (6 contre 4), et Mamma-Auto obtient 8 ; s'il prend la Gare, Pizza-Bot répond Campus (9 contre 3), et Mamma-Auto n'obtient que 7. Mamma-Auto prend donc le Campus, et la partie s'achève en (Gare, Campus), à (6 ; 8) : l'équilibre que Mamma-Auto préférait. Pizza-Bot s'installe à la Gare, où il gagne 6 k€ par mois contre 4 au Campus. Avoir été devancé lui coûte 3 k€ par mois : c'est le prix d'arriver second, et la valeur, pour le prochain distributeur, d'un engagement pris tôt.
Sur la matrice piège, pourquoi le 9 de Mamma-Auto ne compte-t-il pas ?
Pour l'obtenir, il faudrait que Pizza-Bot reste au Campus quand Mamma-Auto s'y installe ; or il y gagnerait 0, contre 5 à la Gare. Au Campus, Mamma-Auto finit donc avec 1. À la Gare, Pizza-Bot répond Campus (2 contre 1), et Mamma-Auto obtient 4 : il prend la Gare, et la partie s'achève en (Campus, Gare), à (2 ; 4). Qui vise sa meilleure case oublie que l'autre répond.
La gamme, contre un adversaire inconnu
Un jeu est à information incomplète quand un joueur ignore une caractéristique de l'adversaire lui-même : son coût, son positionnement, sa politique. On suppose alors que l'adversaire est d'un type parmi plusieurs, et l'on attribue une probabilité à chacun : c'est la croyance. Le gain espéré d'une décision est la moyenne des gains contre chaque type, pondérée par la croyance :
L'adversaire inconnu est remplacé par une loterie entre plusieurs adversaires connus, et l'on choisit la décision d'espérance la plus grande.
Exemple résolu. Contre un adversaire de type A, une décision rapporte 0 ; contre un type B, 10. Une autre rapporte 4 dans les deux cas. Avec , la première vaut en moyenne , la seconde 4 : on prend la première.
La décision dépend entièrement des probabilités attribuées aux types. On fait donc varier la croyance, et l'on cherche la valeur où la décision bascule : la croyance de bascule , où les deux espérances sont égales. Si elle est tout près de l'estimation, l'analyse ne tranche pas et il faut aller chercher de l'information ; si elle est loin, la décision est robuste.
Dans l'exemple résolu, avec , la première décision vaut et la seconde 4 : elles s'égalent en . Une estimation de 0,5 n'est qu'à dix points de la bascule.
Le service commercial estime à 70 % la probabilité que l'acheteur de Mamma-Auto soit une enseigne premium. Marge mensuelle de Pizza-Bot, en k€ :
| Gamme de Pizza-Bot \ type de Mamma-Auto | Discount | Premium |
|---|---|---|
| Discount | 2 | 8 |
| Premium | 10 | 3 |
Deux gammes identiques se livrent une guerre des prix ; deux gammes différentes se partagent la clientèle.
Au brouillon. Calculer l'espérance de gain de chaque gamme, et choisir. Puis noter , de sorte que , écrire les deux espérances en fonction de , et résoudre l'équation qui les égale.
La gamme, contre un adversaire inconnu
- 1.
L'espérance de gain de Discount, en k€ par mois.
- 2.
L'espérance de gain de Premium, en k€ par mois.
- 3.
La croyance de bascule , en fraction ou en décimal.
- 4.
L'espérance de Premium si la croyance avait été estimée à 60 % au lieu de 70 %, en k€ par mois.
La décision est-elle robuste ? Que conseiller à la direction ?
Discount l'emporte, 6,2 k€ par mois contre 5,1. Mais la bascule est à , à moins de neuf points de l'estimation de 0,7 : un collègue aussi sérieux qui aurait dit 60 % aurait conclu à Premium, 5,8 contre 5,6. La décision est fragile. Conseil : choisir Discount s'il faut trancher aujourd'hui, en sachant qu'un renseignement sur l'acheteur de Mamma-Auto a une valeur, que le bonus chiffre.
1.Que représente un « type » dans le choix de la gamme ?
2.Une décision bascule pour une croyance de 0,45, et la croyance estimée vaut 0,5. Qu'en conclure ?
Ce qu'il faut retenir. Dans un arbre, chaque joueur maximise son propre gain, et le premier compare ce qui remonte de chaque branche, pas les feuilles : l'ordre de jeu a désigné l'équilibre de Mamma-Auto, et Pizza-Bot va à la Gare. Face à un adversaire de type inconnu, on décide sur l'espérance, et l'on cherche la croyance de bascule : une décision qui bascule près de l'estimation est fragile.
Bonus : la valeur de l'information
Si l'on pouvait connaître le type de l'adversaire avant de décider, on prendrait contre chaque type la meilleure décision. L'espérance de ce choix informé, moins celle de la meilleure décision prise sans savoir, est la valeur de l'information parfaite : le prix maximal qu'il vaut la peine de payer pour connaître le type.
Exemple résolu, sur l'exemple du rappel, avec : informé, on prend 4 contre A et 10 contre B, soit en moyenne ; sans information, la meilleure décision rapporte 5. L'information vaut .
Une étude de marché permettrait de connaître l'acheteur de Mamma-Auto avant de choisir la gamme.
La valeur de l'information parfaite
- 1.
L'espérance de gain si Pizza-Bot connaissait le type de Mamma-Auto avant de choisir sa gamme, en k€ par mois.
- 2.
La valeur de l'information parfaite, en k€ par mois.
- 3.
Le prix maximal de l'étude, si la gamme reste en place un an, en k€.
Une étude coûte 20 k€. Faut-il la commander ?
Elle vaut au plus 2,4 k€ par mois, soit 28,8 k€ sur un an : à 20 k€, elle se rembourse en un peu plus de huit mois, à deux conditions. Que la gamme reste en place au moins ce temps-là, et que l'étude dise vrai : une étude incertaine vaut moins que l'information parfaite, qui est un plafond.
Facultatif : programmer l'induction à rebours
L'induction à rebours, Mamma-Auto jouant le premier
Écrire induction_a_rebours(gains). Les gains suivent la matrice : gains[choix_pizzabot][choix_mamma] est le couple (gain de Pizza-Bot, gain de Mamma-Auto). Les deux enseignes choisissent parmi les mêmes emplacements, si bien que les colonnes portent les mêmes noms que les lignes.
Mamma-Auto joue le premier. La fonction renvoie le triplet (choix_mamma, choix_pizzabot, case), où case est le couple de gains atteint. reponse_de_pizzabot est fournie : elle donne la meilleure réponse de Pizza-Bot à un choix de Mamma-Auto.
Écrire la fonction, puis « Vérifier » : 4 vérifications sur des cas qu'on sait faire de tête.
Partie 3 : L'attente à la Gare
Pizza-Bot s'installe donc à la Gare. Sa machine cuit une pizza à la fois, en 3 minutes exactement, chaque fois. À l'heure de pointe du soir, à l'arrivée des trains, 15 clients par heure se présentent en moyenne, au hasard et indépendamment les uns des autres. La direction voudrait qu'un client n'attende pas plus de cinq minutes en moyenne avant que sa pizza n'entre au four. Un four suffit-il, ou faut-il en installer un second ?
Une file d'attente se décrit d'abord par deux rythmes. Le rythme d'arrivée (lambda) est le nombre moyen de clients qui se présentent par unité de temps. Le rythme de service (mu) est le nombre moyen de clients qu'un serveur peut traiter par unité de temps ; la durée moyenne d'un service vaut . Les deux se comptent dans la même unité, et une durée se convertit en rythme avant tout calcul : un service de 4 minutes, c'est par heure, et non 4.
Le taux d'occupation est leur rapport :
C'est la fraction du temps où le serveur travaille. La file n'est stable que si : à déjà, elle grossit sans fin, parce que le moindre à-coup des arrivées ne se rattrape jamais.
Exemple résolu. Un guichet reçoit 12 appels par heure, de 4 minutes chacun. Son rythme de service est appels par heure, et : 48 minutes de travail par heure, soit 80 % du temps.
La loi de Little relie le nombre moyen de clients présents , le rythme d'arrivée et le séjour moyen d'un client :
Elle ne suppose qu'un système stable, observé assez longtemps.
Quand les clients arrivent au hasard, indépendamment les uns des autres, et que la durée du service est elle aussi très variable (le modèle sans mémoire à un serveur, qu'on écrit M/M/1), deux formules donnent le reste :
compte les clients présents, celui qu'on sert compris ; est le temps passé en tout, attente et service. L'attente en file, avant d'être servi, vaut . Le dénominateur est ce qui compte : quand la charge approche la capacité, il tend vers zéro, et l'attente explose.
Exemple résolu, sur le guichet : appels présents en moyenne ; d'heure, soit 20 minutes, dont minutes d'attente en file. La loi de Little le confirme : .
Le four de la Gare, à l'heure de pointe
- 1.
Le rythme de service du four, en pizzas par heure.
- 2.
Le taux d'occupation du four.
- 3.
Le nombre moyen de clients présents , celui dont la pizza cuit compris.
- 4.
Le séjour moyen d'un client, en minutes.
- 5.
L'attente moyenne en file , avant que la pizza n'entre au four, en minutes.
D'après ce modèle, le four tient-il l'objectif de cinq minutes ? Le modèle convient-il à un four ?
Non : 9 minutes d'attente en file, pour un séjour de 12 minutes, et 3 clients présents en moyenne, ce que la loi de Little confirme (). Mais le modèle sans mémoire suppose des cuissons de durée très variable, quand une machine cuit toujours en 3 minutes. Les arrivées, elles, restent au hasard. Le modèle est donc pessimiste ici : la formule de Kingman, ci-dessous, tient compte de la régularité du four.
Le four de la Gare travaille 75 % du temps : un quart du temps, il ne fait rien. Pourquoi les clients attendent-ils quand même ?
Le modèle sans mémoire suppose des services de durée très variable. Quand ce n'est pas le cas, la formule approchée de Kingman donne l'attente en file d'un serveur :
où et sont les coefficients de variation, écart-type divisé par moyenne, des intervalles entre arrivées et des durées de service. Des arrivées au hasard ont ; un service sans mémoire a , et l'on retrouve alors le modèle M/M/1 ; un service parfaitement régulier a , ce qui divise l'attente en file par deux.
Avec deux serveurs derrière une file commune, le taux d'occupation de chacun devient . Dans le modèle sans mémoire, la probabilité qu'un client trouve les deux occupés, et doive attendre, vaut ; l'attente en file moyenne s'en déduit en divisant cette probabilité par la marge de capacité : .
Exemple résolu, sur le guichet. Si chaque appel durait exactement 4 minutes, , et l'attente en file tomberait à minutes, au lieu de 16. Avec deux guichets à 15 appels par heure chacun, pour 24 appels par heure, , la probabilité d'attendre vaut , et heure, soit environ 7 minutes.
Ce que changent la régularité, l'affluence et un second four
- 1.
L'attente en file selon Kingman, la cuisson durant toujours 3 minutes et les arrivées restant au hasard, en minutes.
- 2.
Le séjour moyen dans le modèle sans mémoire, un soir où 18 clients par heure se présentent, en minutes.
- 3.
L'attente en file selon Kingman ce même soir, la cuisson restant régulière, en minutes.
- 4.
Le rythme d'arrivée au-delà duquel l'objectif de cinq minutes n'est plus tenu, selon Kingman, en clients par heure.
- 5.
Avec deux fours derrière une file commune, et 15 clients par heure, le taux d'occupation de chaque four.
- 6.
La probabilité qu'un client doive attendre, avec ces deux fours, en pour-cent.
- 7.
L'attente moyenne en file avec deux fours, dans le modèle sans mémoire, en minutes.
Un four suffit-il ? Que recommander à la direction ?
À 15 clients par heure, la cuisson étant régulière, l'attente en file est d'environ 4,5 minutes : l'objectif est tenu, de justesse. Il cesse de l'être dès 15,4 clients par heure, et un soir à 18, soit trois clients de plus seulement, le taux d'occupation passe de 0,75 à 0,9 et l'attente triple, à 13,5 minutes. C'est l'explosion près de la saturation que le facteur annonce : il passe de 3 à 9. Un second four ramène l'attente sous la minute, même dans le modèle pessimiste. Recommandation : un four tient la pointe ordinaire ; si les comptages des premières semaines dépassent 15 clients par heure, le second four se justifie.
Que ces formules ne disent-elles pas ?
Elles décrivent un régime établi, une moyenne sur une longue durée à affluence constante. Dans les minutes qui suivent un train bondé, les clients peuvent arriver plus vite que le four ne cuit, à plus de 20 par heure : il n'y a plus de file moyenne, seulement une file qui se remplit, puis se vide quand l'affluence retombe. Et elles donnent des moyennes : certains clients attendent bien plus que la moyenne, ce qu'un engagement sur un centile, au chapitre sur les files, permet de chiffrer.
Ce qu'il faut retenir. Un rythme n'est pas une durée : 3 minutes de cuisson font 20 pizzas par heure. Le taux d'occupation dit la part du temps où le four travaille, la loi de Little relie présents et séjour, et l'attente explose quand la charge approche la capacité. Un service régulier divise l'attente par deux, et un second serveur derrière une file commune la fait presque disparaître.
Facultatif : programmer le séjour devant un four
Le séjour devant un four
Écrire occupation(clients_par_heure, minutes_par_pizza), qui renvoie le taux d'occupation du four, et sejour_moyen(clients_par_heure, minutes_par_pizza), qui renvoie le séjour moyen d'un client en minutes, dans le modèle sans mémoire à un seul four.
Quand le four est occupé tout le temps, ou plus, la file n'a pas de séjour moyen : sejour_moyen renvoie alors None.
Écrire la fonction, puis « Vérifier » : 6 vérifications sur des cas qu'on sait faire de tête.
Partie 4 : Prévoir les ventes, et les pâtons
Le distributeur pilote a tourné seize jours, répartis sur l'année. Chaque jour, on a relevé la température extérieure et le nombre de pizzas vendues. Les pâtons se préparent la veille, d'après la température annoncée, par bacs de 50 : un pâton préparé et non vendu est jeté, une pizza qui manque est une vente perdue. La direction veut savoir combien de pizzas prévoir selon la température, et s'il existe des jours où un seul bac suffit.
| Température (°C) | 3 | 5 | 6 | 8 | 10 | 11 | 13 | 15 | 17 | 18 | 20 | 22 | 24 | 26 | 28 | 31 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ventes | 132 | 126 | 110 | 113 | 112 | 109 | 96 | 92 | 92 | 82 | 82 | 69 | 73 | 61 | 63 | 61 |
Pour s'exercer d'abord à la main sur dix points seulement, l'atelier de statistique fait les mêmes calculs dans ses phases 5 et 6.
Chaque jour est un couple : c'est une série double. On note le nombre de couples, et les moyennes, le point moyen. On divise par , puisqu'on décrit les journées observées :
avec . La seconde écriture de chaque ligne, « la moyenne des carrés moins le carré de la moyenne », évite de calculer chaque écart à la main.
La covariance est positive si les deux grandeurs montent ensemble, négative si l'une descend quand l'autre monte ; elle porte le produit des deux unités et ne se lit pas seule. , sans unité, est compris entre et et dit à quel point les points sont alignés. Son carré est la part de la variance de expliquée par la relation linéaire.
Exemple résolu, sur quatre points : = 1, 2, 3, 4 et = 1, 3, 2, 4. On a , , , donc , et . Les ont la même moyenne et la même variance que les , d'où .
La droite qui rend la plus petite possible la somme des carrés des écarts verticaux entre les points et la droite a pour coefficients
La seconde formule dit que la droite passe par le point moyen ; et ont le même signe, puisqu'ils partagent le numérateur . La pente se lit en unités de par unité de .
Une droite ne vaut que sur la plage observée. Prédire à l'intérieur de cette plage est une interpolation ; au-dehors, une extrapolation, et rien ne garantit que la relation s'y prolonge.
Exemple résolu, sur les quatre points : et . En , la droite prévoit : une interpolation, puisque les observés vont de 1 à 4. En , elle prévoit : une extrapolation, que rien ne garantit.
Une corrélation mesure une association, pas une cause. Trois situations la produisent : agit sur ; agit sur ; ou une troisième variable, un facteur de confusion, agit sur les deux. Une corrélation suffit à prévoir ; seule une cause permet d'agir.
Exemple résolu. La consommation de gaz d'une chaufferie et les ventes de boissons chaudes de la cafétéria voisine sont fortement corrélées. Aucune ne cause l'autre : le froid agit sur les deux. Les ventes de boissons prévoient très bien la facture de gaz, mais fermer la cafétéria ne la ferait pas baisser.
Le nuage d'abord
Le coefficient et la droite supposent une relation linéaire, et seul le nuage dit si l'hypothèse tient.
Au brouillon, avant tout calcul : les points semblent-ils alignés ? La covariance sera-t-elle positive ou négative ? Proposer, à l'œil, une droite qui passe au milieu du nuage, et noter sa pente approximative : elle servira de contrôle.
Lire le nuage
- 1.
Le nombre de journées, sur seize, dont le produit des écarts est négatif.
Que dit le nuage avant tout calcul, et quelle pente à l'œil ?
Les points descendent presque en ligne droite : une droite a du sens. Quinze points sur seize sont en haut à gauche ou en bas à droite du point moyen, là où les deux écarts sont de signes contraires ; la covariance sera donc négative. Le seizième, à 15 °C et 92 ventes, est presque sur le point moyen. À l'œil, la droite va d'environ 130 ventes vers 3 °C à 60 vers 31 °C : une pente proche de pizzas par degré.
Les indicateurs, puis la droite
Pour éviter seize écarts à la main, les sommes sont données : , , et . Garder les moyennes exactes, sans les arrondir : elles tombent juste à la quatrième décimale.
Les indicateurs des seize journées
- 1.
La température moyenne , en °C.
- 2.
Les ventes moyennes , en pizzas.
- 3.
La variance des températures .
- 4.
La covariance .
- 5.
Le coefficient de corrélation , sachant que la variance des ventes vaut .
La droite, et ce qu'elle prévoit
- 1.
La pente , en pizzas par degré.
- 2.
L'ordonnée à l'origine , en pizzas.
- 3.
Les ventes prévues un jour annoncé à 22 °C.
- 4.
Le nombre de bacs de 50 pâtons à préparer pour couvrir cette prévision.
- 5.
La température à partir de laquelle la droite annonce moins d'un bac, en °C.
- 6.
Les ventes que la droite annonce à 40 °C.
Avant d'interpréter, faire les trois contrôles gratuits : la pente trouvée est-elle proche de celle estimée à l'œil ? et ont-ils le même signe ? La droite passe-t-elle par le point moyen, ?
Traduire la pente, puis , en une phrase qu'un directeur commercial comprendrait.
« Chaque degré de plus fait vendre environ 2,6 pizzas de moins par jour. » Et , donc : « 95 % des écarts de ventes d'un jour à l'autre s'expliquent par la température ; le reste tient à autre chose. » La pente, , est proche des estimés à l'œil, et de même signe que : les contrôles passent.
Des prévisions à 22 °C et à 40 °C, laquelle présenter à la direction ? Laquelle refuser, et pourquoi ?
À 22 °C, environ 76 pizzas, donc deux bacs : 22 °C est dans la plage observée, de 3 à 31 °C, c'est une interpolation légitime. À 40 °C, la droite annonce 29 pizzas, mais aucune journée n'a été relevée au-delà de 31 °C : c'est une extrapolation. La droite continue de calculer, rien ne garantit que les ventes suivent ; on refuse de présenter ce nombre.
Que peut-on réellement affirmer sur les jours où un seul bac suffirait ?
La droite passe sous 50 pizzas vers 32,1 °C, juste hors de la plage observée : on ne peut pas affirmer qu'un seul bac suffira au-delà de 32 °C. On peut seulement dire que, sur toute la plage observée, jusqu'à 31 °C, les ventes sont restées au-dessus de 60. Le nuage donne même une raison de s'en méfier : il est un peu courbe. Les écarts à la droite sont positifs aux deux bouts, à 3 °C et à 31 °C, et le plus souvent négatifs entre les deux : les ventes semblent se tasser autour de 61 là même où l'on voudrait prolonger la droite. Un de n'en protège pas : il mesure l'alignement des points observés, et d'eux seuls.
La chaleur fait-elle baisser les ventes ? Proposer une autre explication qui produirait la même corrélation.
Rien ne le prouve. Les seize journées sont réparties sur l'année : les jours chauds sont des jours d'été, et la saison change bien autre chose que la température. Vacances, moins de trajets quotidiens, envie de repas plus légers : la saison peut agir à la fois sur la température et sur la fréquentation, c'est un facteur de confusion possible. Pour prévoir les pâtons, la corrélation suffit ; pour agir, par exemple en changeant la carte l'été, il faudrait comparer des jours chauds et des jours frais de même fréquentation.
1.Une droite ajustée sur des journées de 5 à 25 °C annonce moins de 50 ventes au-delà de 28 °C. Que peut-on écrire dans un rapport ?
2.La covariance entre température et ventes d'un marchand de chocolat chaud vaut -120. Que dit ce nombre, pris seul ?
Ce qu'il faut retenir. Le nuage d'abord, les indicateurs ensuite. La covariance donne le sens du lien, sa force, la part expliquée, et la pente se dit en pizzas par degré. La droite ne vaut que sur la plage observée : la question du bac unique tombe hors de cette plage, et ne se tranche pas. Une corrélation, même forte, prévoit sans dire la cause.
Facultatif : programmer la droite et sa plage
La droite des moindres carrés et sa plage de validité
Écrire droite_moindres_carres(x, y), qui renvoie le couple (a, b) de la droite des moindres carrés, en divisant par le nombre de points, et dans_la_plage(t, observees), qui renvoie True si la valeur t tombe dans la plage des valeurs observées, bornes comprises, et False sinon.
Écrire la fonction, puis « Vérifier » : 7 vérifications sur des cas qu'on sait faire de tête.
Partie 5 : Superviser la buse à mozzarella
La buse du distributeur doit déposer 100 g de mozzarella par pizza, et chaque dose est pesée. Le fabricant a fourni 50 pesées de calibration, réalisées sur une buse en bon état, en grammes :
102,5 102,1 96,9 101,0 98,9 97,5 100,3 101,3 104,1 99,5
102,4 93,2 99,3 99,9 98,8 101,9 99,5 101,9 102,0 98,0
99,6 99,8 99,6 98,3 98,4 100,9 98,2 98,9 101,6 101,4
100,0 97,6 96,0 100,2 99,9 101,9 101,8 99,1 99,6 100,0
100,2 100,9 102,7 100,9 100,6 99,5 98,5 98,6 98,7 100,1
En production, les pesées arrivent une à une. Il faut décider, à chaque pesée, si la buse fonctionne normalement, et arrêter la machine quand elle dérive.
Une grandeur qui résulte de la somme de nombreux petits effets indépendants (humidité du fromage, température, vibrations de la machine) suit approximativement une loi normale : la courbe en cloche, symétrique autour de sa moyenne , d'autant plus étalée que son écart-type est grand. Pour elle, et pour elle seule :
- environ 68 % des valeurs tombent dans ;
- 95,45 % dans , si bien que 4,55 % en sortent ;
- 99,73 % dans , si bien que 0,27 % en sortent.
Le z-score d'une valeur dit de combien d'écarts-types elle s'éloigne de la moyenne :
Une valeur sort de exactement quand .
Exemple résolu, sur une buse de moyenne 100 g et d'écart-type 2 g. Une pesée de 103 g a pour z-score : elle est dans la dispersion ordinaire de la buse, même si elle dépasse la dose de 3 %. Une pesée de 105 g a pour z-score 2,5 : elle sort de l'intervalle à deux écarts-types.
entre 96 et 104, l'aire vaut 0,9545. Déplacer l'écart-type : elle ne bouge pas.
Les 50 pesées ne sont pas la série qu'on décrit, comme les seize journées de ventes : ce sont un échantillon dont on se sert pour estimer le comportement de la buse, et juger des pesées qu'on n'a pas encore vues. On estime alors l'écart-type en divisant par :
Les écarts sont mesurés à une moyenne calculée sur ces mêmes valeurs, qui colle un peu trop à l'échantillon : diviser par sous-estimerait la dispersion réelle. Sur de grands échantillons, la différence s'efface.
Exemple résolu, sur 2, 4 et 6 : la moyenne vaut 4, les écarts , 0 et 2, la somme de leurs carrés 8. En divisant par , ; en divisant par , on trouverait .
Le comportement normal de la buse
- 1.
La moyenne des 50 pesées, sachant que leur somme vaut 4 994,5 g.
- 2.
L'écart-type estimé , en divisant par , sachant que la somme des carrés des écarts à la moyenne vaut 177,07.
- 3.
Le même écart-type en divisant par , pour comparer.
- 4.
La borne basse de l'intervalle , en g.
- 5.
Sa borne haute, en g.
- 6.
Le nombre de pesées de calibration qui sortent de cet intervalle.
- 7.
Le nombre que la loi normale en prévoit, sur 50 pesées d'une buse saine.
La buse était saine, et trois pesées sortent pourtant de l'intervalle. Est-ce anormal ?
Non. Ce sont 104,1 g, 93,2 g et 96,0 g : trois sur 50, 6 %, pour 2,3 attendues. C'est tout à fait ordinaire : ce sont des fausses alertes, et un seuil à deux écarts-types en produit par construction, environ une pesée saine sur vingt-deux.
Pourquoi divise-t-on par ici, et par pour les seize journées de ventes ? Que change ce choix sur 50 pesées ?
Les seize journées sont l'objet même qu'on décrit : on divise par . Les 50 pesées servent à estimer le comportement d'une buse saine, pour juger des pesées à venir : on divise par , qui corrige la tendance de l'échantillon à paraître moins dispersé qu'il ne l'est. Sur 50 pesées, l'écart est faible, 1,901 g contre 1,882 g, et ne change ici aucune alerte ; sur sept pesées, il compterait.
Un seuil se règle en fausses alertes par jour, pas en sigmas : la part des pesées saines qui sortent de l'intervalle, multipliée par le nombre de pesées d'une journée. Pour en réduire le nombre sans monter le seuil, le levier le plus employé est la persistance : n'agir qu'après plusieurs anomalies consécutives. Un pic isolé disparaît, une dérive qui dure passe. Son prix est double : l'arrêt vient plus tard, et un incident plus bref que la persistance n'est plus signalé du tout.
Exemple résolu, sur une machine qui fait 1 000 pesées par jour. À deux écarts-types, une buse saine déclenche fausses alertes par jour. Trois dépassements de suite sont bien plus rares, de l'ordre de par jour, une fois tous les dix jours environ : une persistance de trois fait taire presque toutes les fausses alertes, mais aussi tout défaut qui ne toucherait qu'une seule dose.
Le distributeur sert une centaine de pizzas par jour.
Le prix d'un seuil
- 1.
Les fausses alertes par jour d'un seuil à , sur une buse saine qui sert 100 pizzas par jour.
- 2.
Même question avec un seuil à .
- 3.
Le z-score de la pesée de 103,2 g, avec g et g.
La figure suivante montre le même arbitrage sur une autre machine : une buse de chaîne de production, pesée une fois par minute, jour et nuit, avec trois incidents injectés, d'une seule pesée chacun. Elle compte les fausses alertes et les incidents manqués pour chaque réglage du seuil.
anomalies détectées
3 / 3
aucune manquée
fausses alertes
60
sur 1440 relevés
cadence attendue
environ 66 par jour
4,6 % hors du seuil
C'est la dernière colonne qu'on présente à une équipe d'exploitation, pas le sigma : à 2σ sur un relevé toutes les minutes, la métrique déclenche environ 66 par jour sans qu'il ne se passe rien.
Ce qu'il faut y regarder, c'est l'incident à 104,6 g, le plus discret des trois. C'est lui qui fixe le seuil : il passe sous le seuil bien avant que les fausses alertes ne s'éteignent, et quand elles s'éteignent enfin, plus aucun incident n'est vu. Il n'existe pas de réglage sans perte. La persistance déplace cet arbitrage sans toucher au seuil, et pas gratuitement : ces trois incidents ne durent qu'une pesée chacun, et une persistance de trois les effacerait tous. Elle sert contre une panne qui dure, comme une buse qui se dérègle, pas contre l'accident d'une seule dose.
La boucle temps réel, à la main
Voici les 21 premières pesées de production, dans leur ordre d'arrivée. La machine lève une alerte à chaque pesée hors de , et s'arrête après trois anomalies consécutives : une pesée normale remet le compte à zéro, et les pesées qui suivent l'arrêt ne sont pas traitées.
| Pesée | Masse (g) | Pesée | Masse (g) | Pesée | Masse (g) |
|---|---|---|---|---|---|
| 0 | 100,4 | 7 | 100,3 | 14 | 100,1 |
| 1 | 99,1 | 8 | 97,9 | 15 | 98,8 |
| 2 | 101,7 | 9 | 101,2 | 16 | 103,2 |
| 3 | 98,6 | 10 | 92,4 | 17 | 104,1 |
| 4 | 100,9 | 11 | 100,6 | 18 | 104,9 |
| 5 | 106,8 | 12 | 99,4 | 19 | 105,6 |
| 6 | 99,8 | 13 | 102,3 | 20 | 106,3 |
Le flux de production, à la main
- 1.
Le nombre de pesées du flux qui sortent de l'intervalle , en comptant aussi celles d'après l'arrêt.
- 2.
L'indice de la pesée où la machine s'arrête.
- 3.
Le nombre d'alertes levées jusqu'à l'arrêt, celle de l'arrêt comprise.
- 4.
L'indice de la pesée où la machine se serait arrêtée sans persistance, dès la première anomalie.
La pesée à 103,2 g dépasse nettement la dose de 100 g. Pourquoi n'a-t-elle déclenché aucune alerte ?
Son z-score vaut 1,74 : moins de deux écarts-types. La référence n'est pas la dose nominale de 100 g, mais la dispersion ordinaire de la buse saine, pour qui un écart de 3 g est habituel. C'est pourtant le début de la dérive, que rien ne signale encore : la détection voit un écart, pas une tendance.
Distinguer dans le flux les pics isolés et la dérive. Qu'aurait fait la machine sans la persistance ?
Les pesées 5 (106,8 g) et 10 (92,4 g) sont des pics isolés : une pesée anormale entourée de pesées normales. Les pesées 16 à 20 montent régulièrement, de 103,2 à 106,3 g : c'est une dérive, la buse se dérègle. Sans persistance, la machine se serait arrêtée dès la pesée 5, pour un pic qui ne s'est pas reproduit. Avec une persistance de trois, elle s'arrête à la pesée 19, troisième dose anormale de la dérive, et la pesée 20 n'est jamais servie.
Expliquer en quelques lignes à un technicien de maintenance pourquoi la machine ne s'arrête pas dès la première alerte.
« Sur une buse en parfait état, ce seuil se déclenche par hasard quatre à cinq fois par jour. Arrêter la machine à chaque alerte, ce serait l'arrêter quatre ou cinq fois par jour pour rien. En exigeant trois anomalies de suite, on ignore les doses isolées, mais une dérive, qui produit des anomalies en série, est arrêtée en trois pizzas. En contrepartie, un défaut qui ne toucherait qu'une seule dose ne déclenche jamais d'arrêt : les alertes isolées restent consignées dans le journal, à relire chaque jour. »
1.Pourquoi exiger trois anomalies consécutives avant d'arrêter la machine ?
2.Sur une buse de moyenne 100 g et d'écart-type 2 g, une pesée à 103 g a un z-score de 1,5. Que conclure ?
Ce qu'il faut retenir. Une pesée se juge par son z-score, contre la dispersion de la buse saine, pas contre la dose nominale. Pour estimer cette dispersion sur un échantillon, on divise par N − 1. Un seuil se règle en fausses alertes par jour, et la persistance sépare les pics isolés des dérives, au prix d'un arrêt plus tardif et des incidents trop brefs pour la franchir.
Bonus : l'effet de masquage
L'historique contient une pesée à 93,2 g, étonnamment basse pour une buse saine. Or une valeur extrême entre dans le calcul de la moyenne et de l'écart-type qui servent à la juger : elle gonfle , et son propre z-score s'en trouve réduit. C'est l'effet de masquage. Sans elle, les 49 autres pesées ont pour moyenne 100,03 g et pour écart-type 1,655 g.
L'effet de masquage
- 1.
Le z-score de la pesée de 93,2 g, jugée avec l'historique complet ( g, g).
- 2.
Le même z-score, la pesée retirée de l'historique ( g, g).
- 3.
La largeur de l'intervalle avec l'historique complet, en g.
- 4.
Sa largeur sans la pesée de 93,2 g, en g.
Qu'en conclure sur la façon de constituer un historique de calibration ?
Ici, le masquage ne cache pas la pesée elle-même : à comme à , elle reste bien au-delà de deux écarts-types. Mais l'écart-type gonflé élargit l'intervalle pour toutes les pesées à venir, de 6,62 à 7,60 g : une dérive franchira le seuil plus tard. Un historique de calibration se nettoie donc avant de servir de référence. On écarte les pesées dont on connaît la cause (une bulle d'air, une erreur de manipulation), ou l'on remplace moyenne et écart-type par des indicateurs robustes, médiane et écart absolu médian, que le chapitre sur la supervision présente.
Facultatif : programmer la boucle de surveillance
La boucle de surveillance, avec persistance
Écrire surveiller(flux, mu, sigma, k, persistance), qui traite les pesées du flux une par une, dans l'ordre. Chaque anomalie est ajoutée à la liste des alertes, sous la forme (indice, valeur). Après persistance anomalies consécutives, la machine s'arrête : les pesées suivantes ne sont pas traitées.
La fonction renvoie le couple (alertes, indice_arret), où indice_arret vaut None si la machine ne s'est pas arrêtée. est_anomalie est fournie.
Écrire la fonction, puis « Vérifier » : 5 vérifications sur des cas qu'on sait faire de tête.
Le rapport à la direction
Le projet se termine là où il a commencé : cinq questions posées par quelqu'un qui ne lira ni matrice, ni formule, ni code. Rédiger une note d'une page qui y répond, un paragraphe par question : la recommandation, le chiffre qui la fonde, et la limite de ce chiffre. Une recommandation sans sa limite ne permet pas à la direction de décider en connaissance de cause. Les réponses écrites au fil des parties en fournissent la matière. Rédiger la note avant d'ouvrir les exemples.
La grille, puis un paragraphe modèle
Une bonne note donne, pour chacune des cinq questions, une recommandation en une phrase, le chiffre qui la fonde, dans l'unité de la direction (des k€ par mois, des minutes, des pizzas, des alertes par jour), et sa limite : la croyance, la plage de données ou l'hypothèse dont il dépend. Elle ne contient ni matrice, ni formule, ni code, et ne présente aucun chiffre hors de son domaine de validité.
Voici le paragraphe de la dernière question ; écrire les quatre autres sur ce modèle avant d'ouvrir la note complète.
Supervision. Chaque dose est comparée à la dispersion normale de la buse, mesurée sur 50 pesées d'une buse saine. La machine s'arrête d'elle-même après trois doses anormales de suite : sur le flux d'essai, la dérive a été stoppée à sa troisième dose anormale, et deux incidents isolés n'ont pas interrompu le service. Limite : à ce réglage, une buse saine déclenche encore quatre à cinq alertes isolées par jour, à consigner sans intervenir, et un défaut qui ne toucherait qu'une dose passerait sans arrêt.
Un exemple de note complète, pour comparer
Emplacement. Installer le distributeur à la Gare. Mamma-Auto signe le premier et prendra le Campus ; face à lui, la Gare rapporte 6 k€ par mois, contre 4 au Campus. Limite : les marges sont des estimations du service commercial, et arriver second coûte 3 k€ par mois par rapport à la situation inverse ; pour le prochain distributeur, s'engager tôt a une valeur chiffrable.
Gamme. Proposer la gamme Discount : 6,2 k€ par mois espérés, contre 5,1 pour Premium. Limite : ce choix repose sur une estimation, 70 % de chances que l'acheteur de Mamma-Auto soit une enseigne premium, et il bascule si cette probabilité tombe sous 61,5 %. Connaître cet acheteur vaut jusqu'à 2,4 k€ par mois : une étude de marché qui coûte moins que ce gain sur la durée de la gamme est rentable.
Attente. À l'heure de pointe, 15 clients par heure, le four travaille 75 % du temps. Comme la cuisson dure toujours trois minutes, un client attend en moyenne quatre minutes et demie avant que sa pizza n'entre au four, sous l'objectif de cinq. Limite : la marge est mince. Dès 16 clients par heure, l'attente passe à six minutes, et un soir à 18 elle approche le quart d'heure ; un second four la ramènerait sous la minute. Les comptages des premières semaines diront s'il le faut.
Pâtons. Chaque degré de plus fait vendre environ 2,6 pizzas de moins par jour, et la température explique 95 % des écarts de ventes d'un jour à l'autre. Un jour annoncé à 22 °C, prévoir environ 76 pizzas, donc deux bacs. Limite : les relevés vont de 3 à 31 °C. La droite ne passe sous un bac que vers 32 °C, hors de cette plage, et vers 30 °C les ventes semblaient déjà se stabiliser autour de 60 : rien ne permet d'affirmer qu'un seul bac suffira un jour de canicule. La chaleur n'est peut-être pas la cause directe : la saison change aussi la fréquentation.
Supervision. Chaque dose est comparée à la dispersion normale de la buse, mesurée sur 50 pesées d'une buse saine. La machine s'arrête d'elle-même après trois doses anormales de suite : sur le flux d'essai, la dérive a été stoppée à sa troisième dose anormale, et deux incidents isolés n'ont pas interrompu le service. Limite : à ce réglage, une buse saine déclenche encore quatre à cinq alertes isolées par jour, à consigner sans intervenir, et un défaut qui ne toucherait qu'une dose passerait sans arrêt.
Pour aller plus loin
Trois emplacements. L'Hôpital devient un troisième emplacement possible. Seul, un distributeur y gagnerait 5 k€ par mois ; à deux, chacun 2. Les autres marges ne changent pas. Chercher les équilibres de ce jeu 3 × 3 par la méthode des soulignements.
| Pizza-Bot \ Mamma-Auto | Campus | Gare | Hôpital |
|---|---|---|---|
| Campus | 4 ; 4 | 9 ; 7 | 9 ; 5 |
| Gare | 6 ; 8 | 3 ; 3 | 6 ; 5 |
| Hôpital | 5 ; 8 | 5 ; 7 | 2 ; 2 |
Quels sont les équilibres ? Que devient l'Hôpital ?
Les mêmes deux équilibres, (Campus, Gare) et (Gare, Campus). Colonne par colonne, Pizza-Bot souligne la Gare face au Campus (6), puis le Campus face à la Gare (9) et face à l'Hôpital (9) ; ligne par ligne, Mamma-Auto souligne la Gare face au Campus (7), puis le Campus face à la Gare (8) et face à l'Hôpital (8). L'Hôpital n'est la meilleure réponse de personne, à rien : il ne sera jamais choisi. Ajouter une option ne change pas toujours le jeu. Et la fonction facultative de la partie 1 traite ce jeu sans modification, puisqu'elle parcourt les lignes et les colonnes du tableau au lieu d'écrire « Campus » et « Gare » en dur.
Régler la persistance. Sur le flux de production, faire varier la persistance de 1 à 5 et noter, pour chaque valeur, la pesée où la machine s'arrête : sur un pic isolé, sur la dérive, ou jamais avant la fin du flux. Quand l'arrêt tombe sur la dérive, compter les pizzas mal garnies servies depuis sa première alerte.
Ce que donne chaque persistance
À 1, la machine s'arrête à la pesée 5, sur un pic isolé. À 2, à la pesée 18, sur la dérive, après deux pizzas mal garnies depuis sa première alerte ; à 3, à la pesée 19, après trois ; à 4, à la pesée 20, après quatre. À 5, jamais : le flux s'achève avant la cinquième anomalie de suite. Et la pesée 16, à 103,2 g, première de la dérive, n'a compté dans aucun cas. C'est l'arbitrage du seuil, transposé au temps : plus on attend pour être sûr, plus on sert de pizzas mal garnies.
Un seuil qui apprend. Recalculer et au fil de la production, sur les cinquante dernières pesées normales par exemple. Que se passe-t-il si la buse dérive très lentement ?
La réponse
La référence suit la dérive. Chaque pesée, à peine plus lourde que les précédentes, reste dans un intervalle qui se déplace avec elle, et la dérive n'est jamais vue. C'est la raison pour laquelle on garde en général une référence fixe, celle de la calibration, à côté de la référence glissante : la seconde suit les variations lentes et légitimes, la première rappelle ce qu'est une buse saine.
La méthode
Les cinq parties ont suivi le même chemin, et c'est lui, plus que les formules, qui se réemploie sur un autre cas.
- Lire le rappel de cours avant de calculer, et refaire son exemple résolu de tête : il sert de point de comparaison.
- Poser le modèle au brouillon : les joueurs et leurs gains, l'arbre, les rythmes d'arrivée et de service, le nuage, la loi. Ce qui ne se calcule pas à la main sur les données ne se calculera pas mieux autrement.
- Contrôler par ce que la théorie donne gratuitement : la droite passe par le point moyen, et ont le même signe, la loi de Little relie présents et séjour, la croyance de bascule dit si une décision tient.
- Programmer le geste du brouillon, et lui seul, puis l'essayer sur des cas qui se calculent de tête : une matrice où tout est égal, trois points alignés, un flux de sept pesées. Un programme faux affiche ses nombres avec la même assurance qu'un programme juste.
- Traduire chaque nombre en une phrase, et l'accompagner de sa limite : la croyance sur laquelle repose la décision, la charge au-delà de laquelle l'attente explose, la plage hors de laquelle la droite ne dit rien, le nombre de fausses alertes que coûte un seuil.
Chapitre révisé en octobre 2026 · Une erreur dans ce chapitre ?