Décrivez une variable aléatoire discrète
Le serveur d’une application reçoit en moyenne 4 requêtes par seconde et peut en traiter 8. Quelle est la probabilité qu’il soit débordé pendant une seconde donnée ? Et combien de requêtes échoueront, en moyenne, sur un lot de 20 ? Ces questions ne portent plus sur des événements isolés, mais sur des nombres qui dépendent du hasard.
Dans ce chapitre, vous allez apprendre à manipuler ces nombres aléatoires : les décrire par leur loi, les résumer par leur espérance et leur variance, et reconnaître les quatre lois discrètes qui reviennent partout. Le fil rouge sera ce serveur web.
Qu’est-ce qu’une variable aléatoire ?
Section intitulée « Qu’est-ce qu’une variable aléatoire ? »Une variable aléatoire (v.a.) est une fonction qui associe un nombre à chaque issue de l’expérience. Malgré son nom, ce n’est donc ni une variable, ni aléatoire : c’est une fonction tout à fait déterministe, et c’est l’issue qui est tirée au hasard.
Par exemple, si l’expérience consiste à envoyer 20 requêtes, l’issue décrit le sort de chacune (succès ou échec), et est le nombre d’échecs. On écrit alors pour l’événement « exactement deux requêtes ont échoué », c’est-à-dire l’ensemble des issues telles que .
Une v.a. est discrète si elle prend un nombre fini ou dénombrable de valeurs (0, 1, 2, …) : un nombre d’échecs, de requêtes, de tentatives. Elle est continue si elle prend ses valeurs dans un intervalle de : un temps, une température (chapitre 5).
La loi d’une variable discrète
Section intitulée « La loi d’une variable discrète »La loi de est la liste des valeurs possibles accompagnées de leurs probabilités . Ces probabilités sont positives et leur somme vaut 1. Une fois la loi connue, on peut oublier : tout ce qu’on veut savoir sur s’en déduit.
La fonction de répartition de est :
Elle cumule les probabilités jusqu’à . Pour une v.a. discrète, c’est une fonction en escalier, croissante, qui part de 0 en , arrive à 1 en et fait un saut de hauteur en chaque valeur . Elle donne directement les probabilités d’intervalles : .
Espérance et variance
Section intitulée « Espérance et variance »Une loi contient beaucoup d’information. Deux nombres suffisent souvent à la résumer : sa valeur moyenne et sa dispersion.
L’espérance
Section intitulée « L’espérance »L’espérance de est la moyenne de ses valeurs, pondérée par leurs probabilités :
C’est la valeur autour de laquelle se stabilise la moyenne de nombreuses réalisations de (vous le démontrerez au chapitre 7). Pour un dé équilibré, : une valeur que le dé ne prend jamais, ce qui est normal pour une moyenne.
Deux propriétés rendent l’espérance très maniable :
- la linéarité : pour toutes v.a. , et constantes , , , même si et sont dépendantes ;
- le théorème de transfert : pour calculer , inutile de chercher la loi de , on écrit directement .
La variance
Section intitulée « La variance »L’espérance ne dit rien de la dispersion. La variance mesure l’écart quadratique moyen à l’espérance :
La seconde forme (formule de König-Huygens) est la plus pratique pour calculer : on obtient par le théorème de transfert. La variance s’exprime dans l’unité de au carré ; pour revenir à l’unité de , on prend l’écart-type .
Contrairement à l’espérance, la variance n’est pas linéaire :
Ajouter une constante décale les valeurs sans les disperser davantage ; multiplier par multiplie les écarts par , donc leurs carrés par .
Les lois discrètes usuelles
Section intitulée « Les lois discrètes usuelles »Quatre lois couvrent l’essentiel des situations discrètes. Pour chacune, retenez l’histoire qu’elle raconte : c’est elle qui vous permet de la reconnaître dans un énoncé.
Bernoulli : un seul essai
Section intitulée « Bernoulli : un seul essai »suit la loi de Bernoulli de paramètre , notée , si elle vaut 1 (succès) avec probabilité et 0 (échec) avec probabilité . C’est l’indicatrice d’un événement : une requête échoue ou non, un patient est malade ou non. On a et .
Binomiale : compter les succès parmi essais indépendants
Section intitulée « Binomiale : compter les succès parmi nnn essais indépendants »Si l’on répète fois, indépendamment, un essai de Bernoulli de paramètre , le nombre total de succès suit la loi binomiale :
Le facteur compte les façons de placer les succès parmi les essais (chapitre 1), et est la probabilité de chacune de ces configurations (par indépendance, chapitre 3). Par linéarité, , et comme les sont indépendantes, .
Géométrique : attendre le premier succès
Section intitulée « Géométrique : attendre le premier succès »Un client tente de se connecter jusqu’à ce que ça marche ; chaque tentative réussit avec probabilité , indépendamment. Le rang du premier succès suit la loi géométrique :
Il faut échecs suivis d’un succès. On montre que et . Avec , il faut en moyenne tentatives, et (trois échecs de suite).
Poisson : compter des événements rares
Section intitulée « Poisson : compter des événements rares »On compte des événements qui surviennent « au hasard » dans le temps ou l’espace, indépendamment les uns des autres, avec une intensité moyenne constante : des requêtes par seconde, des appels par heure, des défauts par mètre de câble. Leur nombre suit la loi de Poisson :
Le paramètre est le nombre moyen d’événements sur la période : si est l’intensité par unité de temps et la durée. Particularité remarquable, .
La loi de Poisson est aussi une approximation de la binomiale quand est grand et petit (événement rare), avec . Pour 1 000 requêtes qui échouent chacune avec probabilité , vaut avec la binomiale exacte et avec .
Revenons à la question d’ouverture. Le nombre de requêtes par seconde suit , et le serveur est débordé s’il en reçoit plus de 8. Le diagramme montre la loi, avec en magenta les valeurs qui débordent :
La probabilité de débordement vaut : environ 2 % des secondes, soit plus d’une minute par heure.
| Loi | Histoire | |||
|---|---|---|---|---|
| Bernoulli | un essai | si , si | ||
| Binomiale | succès parmi essais indépendants | |||
| Géométrique | rang du premier succès | |||
| Poisson | événements rares sur une période |
Les lois en R : d, p, q, r
Section intitulée « Les lois en R : d, p, q, r »R nomme ses fonctions de lois selon une convention uniforme : un préfixe suivi du nom de la loi (binom, geom, pois, norm, exp, unif…).
| Préfixe | Rôle | Exemple |
|---|---|---|
d | probabilité (ou densité, pour une loi continue) | dbinom(0, 20, 0.05) |
p | fonction de répartition | ppois(8, 4) |
q | quantile : plus petite valeur telle que niveau | qpois(0.99, 4) |
r | tirages aléatoires | rpois(1000, 4) |
# Lot de 20 requêtes, 5 % d'échecsdbinom(0:2, size = 20, prob = 0.05) # 0.358 0.377 0.1891 - pbinom(1, size = 20, prob = 0.05) # P(X >= 2) = 0.264
# Requêtes par seconde : Poisson de moyenne 41 - ppois(8, lambda = 4) # probabilité de débordement : 0.021qpois(0.99, lambda = 4) # capacité suffisante 99 % du temps : 9
# Vérification par simulation d'une heure de traficset.seed(5)x <- rpois(3600, lambda = 4)mean(x); var(x) # tous deux proches de 4mean(x > 8) # proche de 0.021En résumé
Section intitulée « En résumé »- Une variable aléatoire est une fonction ; elle est discrète si ses valeurs sont en nombre fini ou dénombrable.
- Sa loi est la liste des ; sa fonction de répartition est en escalier.
- L’espérance est linéaire ; la variance vérifie .
- Bernoulli : un essai ; binomiale : nombre de succès parmi essais indépendants ; géométrique : rang du premier succès ; Poisson : nombre d’événements rares, avec .
- La Poisson de paramètre approche la binomiale quand est grand et petit.
- En R,
d,p,qetrdonnent la probabilité, la répartition, le quantile et des tirages de chaque loi.
Exercices
Section intitulée « Exercices »Exercice · Un ticket à gratter
facileUn ticket coûte 2 €. Il rapporte 5 € avec probabilité 0,2 et 50 € avec probabilité 0,01 ; sinon, rien. Soit le gain net du joueur (gain moins mise). Donnez la loi de , puis calculez et l’écart-type de .
Voir la solution
vaut avec probabilité , avec probabilité et avec probabilité .
Le joueur perd 50 centimes par ticket en moyenne. Pour la variance, , donc et €. L’écart-type est dix fois plus grand que la perte moyenne : sur un seul ticket, le hasard domine complètement.
En code
import numpy as np
# Loi du gain net G (gain moins mise de 2 €)valeurs = np.array([-2, 3, 48])probas = np.array([0.79, 0.20, 0.01])
esperance = np.sum(valeurs * probas)variance = np.sum(valeurs**2 * probas) - esperance**2 # König-Huygensprint(esperance) # -0.5print(variance) # 27.75print(np.sqrt(variance)) # 5.268# Loi du gain net G (gain moins mise de 2 €)valeurs <- c(-2, 3, 48)probas <- c(0.79, 0.20, 0.01)
esperance <- sum(valeurs * probas)variance <- sum(valeurs^2 * probas) - esperance^2 # König-Huygensesperance # -0.5variance # 27.75sqrt(variance) # 5.268Exercice · Reconnaître la loi
moyenPour chaque situation, donnez la loi de avec ses paramètres, puis son espérance.
- Un QCM de 10 questions à 4 choix ; un étudiant répond au hasard. est le nombre de bonnes réponses.
- On lance un dé jusqu’à obtenir un 6. est le nombre de lancers.
- Un standard reçoit en moyenne 30 appels par heure. est le nombre d’appels entre 14 h et 14 h 10.
Voir la solution
- Dix essais indépendants, succès avec probabilité : et .
- Rang du premier succès, : et lancers en moyenne.
- Événements indépendants à intensité constante par heure, sur d’heure : et appels.
En code
from scipy import stats
qcm = stats.binom(n=10, p=0.25) # nombre de bonnes réponsesde = stats.geom(p=1/6) # rang du premier 6 (scipy compte à partir de 1)appels = stats.poisson(mu=30 / 6) # 30 appels/heure pendant 1/6 d'heure
print(qcm.mean(), de.mean(), appels.mean()) # 2.5 6.0 5.0# Espérances par simulation (100 000 répétitions de chaque situation)set.seed(0)qcm <- rbinom(1e5, size = 10, prob = 0.25) # bonnes réponses au hasardde <- rgeom(1e5, prob = 1/6) + 1 # R compte les échecs : +1 pour le rangappels <- rpois(1e5, lambda = 30 / 6) # 30 appels/heure pendant 1/6 d'heure
c(mean(qcm), mean(de), mean(appels)) # 2.50 6.00 4.99, proches de 2.5 6 5Exercice · Dimensionner le serveur
difficileOn veut que le serveur du fil rouge soit débordé moins de 1 % des secondes.
- Avec une moyenne de 4 requêtes par seconde, quelle capacité minimale faut-il ?
- Le trafic double (8 requêtes par seconde en moyenne). Faut-il doubler la capacité ? Utilisez R.
Voir la solution
On cherche le plus petit tel que , c’est-à-dire : c’est exactement le quantile d’ordre 0,99.
qpois(0.99, 4)renvoie 9 : ne suffit pas, convient.qpois(0.99, 8)renvoie 15 : et . Il suffit de 15, et non de 18.
La capacité ne double pas, car l’écart-type de la Poisson, , croît moins vite que sa moyenne : la marge de sécurité nécessaire, en proportion du trafic, diminue quand le trafic augmente. C’est un effet d’échelle bien connu en dimensionnement de réseaux.
En code
from scipy import stats
# Plus petite capacité c telle que P(X <= c) >= 0.99for trafic in (4, 8): c = stats.poisson.ppf(0.99, mu=trafic) print(trafic, c, stats.poisson.cdf([c - 1, c], mu=trafic).round(3))# 4 9.0 [0.979 0.992]# 8 15.0 [0.983 0.992]# Plus petite capacité c telle que P(X <= c) >= 0.99qpois(0.99, lambda = 4) # 9ppois(8:9, lambda = 4) # 0.979 0.992qpois(0.99, lambda = 8) # 15, et non 2 x 9 = 18ppois(14:15, lambda = 8) # 0.983 0.992
# Capacité relative au trafic : la marge diminue quand le trafic grandittrafics <- c(4, 8, 16, 100)qpois(0.99, trafics) / trafics # 2.25 1.88 1.63 1.24