Aller au contenu

Passez aux variables aléatoires continues

Chaque matin, vous attendez le bus pour le campus, puis vous passez un certain temps dans les transports. Ni l’attente ni le trajet ne prennent de valeurs « rondes » : ce sont des durées qui peuvent valoir 4 minutes 12 secondes, ou 4 minutes 12,3 secondes. Impossible de lister toutes les valeurs comme au chapitre précédent. Comment décrire alors leur loi, et répondre à la seule question qui compte : à quelle heure partir pour être à l’heure ?

Ce chapitre étend les outils du chapitre 4 aux variables continues. Les sommes deviennent des intégrales, et trois lois prennent le relais : l’uniforme, l’exponentielle et la normale. Le fil rouge sera votre trajet vers le campus.

Pour une variable continue, chaque valeur précise a une probabilité nulle. La probabilité que votre trajet dure exactement 30,000 000 minutes est 0 : il y a une infinité de valeurs possibles autour, et aucune ne peut garder une masse positive. On ne peut donc plus décrire la loi par des P(X=x)P(X = x). On décrit plutôt la probabilité de tomber dans un intervalle.

On dit que XX est une v.a. continue (plus précisément, à densité) s’il existe une fonction fXf_X, sa densité de probabilité, telle que pour tous a≤ba \leq b :

P(a≤X≤b)=∫abfX(x) dxP(a \leq X \leq b) = \int_a^b f_X(x) \, dx

La probabilité est l’aire sous la courbe de la densité entre aa et bb. Une densité vérifie fX(x)≥0f_X(x) \geq 0 partout et ∫−∞+∞fX(x) dx=1\int_{-\infty}^{+\infty} f_X(x) \, dx = 1 (l’aire totale vaut 1).

La fonction de répartition garde la même définition qu’au chapitre 4, FX(x)=P(X≤x)=∫−∞xfX(t) dtF_X(x) = P(X \leq x) = \int_{-\infty}^{x} f_X(t) \, dt. Elle est maintenant continue (plus d’escalier), et là où elle est dérivable, FX′=fXF_X' = f_X. On a toujours P(a<X≤b)=FX(b)−FX(a)P(a \lt X \leq b) = F_X(b) - F_X(a), et comme P(X=a)=0P(X = a) = 0, peu importe que les inégalités soient larges ou strictes.

0,000,020,040,060,080,10densité f(x)aire = P(26 ≤ T ≤ 34)= 0,683T ~ N(30, 4²) :durée du trajet2025303540minutes0,00,20,40,60,81,0F(x) = P(T ≤ x)F(34) − F(26)= 0,683
La même probabilité se lit de deux façons : comme une aire sous la densité, ou comme la différence de hauteur de la fonction de répartition. Là où la densité est haute, F monte vite.

Espérance et variance se définissent comme dans le cas discret, en remplaçant la somme par une intégrale et P(X=x)P(X = x) par fX(x) dxf_X(x) \, dx :

E[X]=∫−∞+∞x fX(x) dx,E[g(X)]=∫−∞+∞g(x) fX(x) dxE[X] = \int_{-\infty}^{+\infty} x \, f_X(x) \, dx, \qquad E[g(X)] = \int_{-\infty}^{+\infty} g(x) \, f_X(x) \, dx

La seconde formule est le théorème de transfert. La variance reste Var(X)=E[X2]−E[X]2\mathrm{Var}(X) = E[X^2] - E[X]^2, et toutes les propriétés du chapitre 4 (linéarité de l’espérance, Var(aX+b)=a2Var(X)\mathrm{Var}(aX + b) = a^2 \mathrm{Var}(X)) restent valables. Une réserve : ces intégrales doivent converger, ce qui n’est pas toujours le cas (vous rencontrerez au chapitre 7 une loi sans espérance).

Le bus passe toutes les 10 minutes, et vous arrivez à l’arrêt sans consulter les horaires. Votre attente UU est « également probable » partout entre 0 et 10 minutes : elle suit la loi uniforme sur [0 ; 10][0\,;\,10].

Sur un intervalle [a ; b][a\,;\,b], la loi uniforme U[a,b]\mathcal{U}[a, b] a une densité constante :

f(x)=1b−a si a≤x≤b,0 sinon;E[U]=a+b2,Var(U)=(b−a)212f(x) = \frac{1}{b - a} \text{ si } a \leq x \leq b, \quad 0 \text{ sinon}; \qquad E[U] = \frac{a + b}{2}, \quad \mathrm{Var}(U) = \frac{(b - a)^2}{12}

La hauteur 1/(b−a)1/(b-a) est imposée par la condition « aire totale égale à 1 ». Pour le bus, l’attente moyenne est de 5 minutes, et la probabilité d’attendre plus de 7 minutes vaut (10−7)/10=0,3(10 - 7)/10 = 0{,}3 : c’est simplement la proportion de l’intervalle couverte.

05710attente U (minutes)0,000,020,040,060,080,100,120,14densitéaire3 × 0,1= 0,3hauteur 1/10U[0 ; 10] : P(U > 7) = 0,30,00,50,00,51,01,52,02,5aire0,5 × 2= 1densité 2 > 1U[0 ; 0,5]
Une densité uniforme est un rectangle d'aire 1 : sa hauteur est 1/(b − a). Sur un intervalle court, elle dépasse 1 sans problème, puisque seule l'aire est une probabilité.

La loi U[0,1]\mathcal{U}[0, 1] joue un rôle à part en informatique : c’est ce que produit un générateur de nombres pseudo-aléatoires (runif en R), et c’est à partir d’elle qu’on simule toutes les autres lois.

L’exponentielle : attendre un événement « sans mémoire »

Section intitulée « L’exponentielle : attendre un événement « sans mémoire » »

À l’arrêt, les autres passagers arrivent au hasard, en moyenne un toutes les 2 minutes. Au chapitre 4, le nombre d’arrivées sur une période suivait une loi de Poisson. Le temps entre deux arrivées successives, lui, suit une loi exponentielle.

La loi exponentielle E(λ)\mathcal{E}(\lambda), de paramètre λ>0\lambda \gt 0 (l’intensité, en événements par unité de temps), a pour densité et fonction de répartition :

f(x)=λe−λx,F(x)=1−e−λx(x≥0);E[T]=1λ,Var(T)=1λ2f(x) = \lambda e^{-\lambda x}, \quad F(x) = 1 - e^{-\lambda x} \quad (x \geq 0); \qquad E[T] = \frac{1}{\lambda}, \quad \mathrm{Var}(T) = \frac{1}{\lambda^2}

Elle modélise les durées d’attente avant un événement qui survient « au hasard » : l’arrivée d’un client ou d’une requête, la panne d’un composant électronique, la désintégration d’un atome.

La loi exponentielle a une propriété unique parmi les lois continues : elle est sans mémoire. Pour tous s,t≥0s, t \geq 0 :

P(T>s+t∣T>s)=P(T>s+t)P(T>s)=e−λ(s+t)e−λs=e−λt=P(T>t)P(T \gt s + t \mid T \gt s) = \frac{P(T \gt s + t)}{P(T \gt s)} = \frac{e^{-\lambda(s + t)}}{e^{-\lambda s}} = e^{-\lambda t} = P(T \gt t)

(la première égalité vient de ce que l’événement « T>s+tT \gt s + t » est inclus dans « T>sT \gt s »). Autrement dit, si personne n’est arrivé depuis 5 minutes, le temps restant à attendre a exactement la même loi qu’au départ. Le passé ne « rapproche » pas l’événement.

0,02,55,07,510,012,5temps T avant le prochain passager (min)0,00,10,20,30,40,5densité0,5e−0,5tP(T>3)=e−1,5≈ 0,223moyenne 1/λ = 2 minE(0,5)0,02,55,07,510,012,5temps (min)0,00,10,20,30,40,5personne depuis 5 min :on ne garde que T > 5renormalisée et décalée :la même densité qu’au départSans mémoire
Gauche : une arrivée sur deux minutes en moyenne, et 22 % de chances d'attendre plus de 3 minutes. Droite : ne garder que les attentes de plus de 5 minutes, puis repartir de zéro, redonne la même courbe.

Votre trajet dure 30 minutes en moyenne, avec des variations dues aux feux, au trafic, au nombre d’arrêts. Une durée qui résulte de l’addition de nombreuses petites perturbations indépendantes suit, à peu près, une loi normale (ou gaussienne). Le chapitre 8 expliquera pourquoi : c’est le théorème central limite. C’est la loi la plus importante de toute la statistique.

La loi normale N(μ,σ2)\mathcal{N}(\mu, \sigma^2) a pour densité :

f(x)=1σ2πexp⁡(−(x−μ)22σ2)f(x) = \frac{1}{\sigma \sqrt{2\pi}} \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right)
  • μ\mu est l’espérance, au centre de la cloche (qui est symétrique autour de μ\mu) ;
  • σ2\sigma^2 est la variance, et σ\sigma l’écart-type, qui règle la largeur de la cloche.

Si μ=0\mu = 0 et σ=1\sigma = 1, on parle de loi normale centrée réduite, notée N(0,1)\mathcal{N}(0, 1), dont la fonction de répartition est notée Φ\Phi. Elle n’a pas d’expression simple : on la lit dans une table ou on la calcule avec pnorm.

Si X∼N(μ,σ2)X \sim \mathcal{N}(\mu, \sigma^2), alors la variable standardisée (ou centrée réduite)

Z=X−μσZ = \frac{X - \mu}{\sigma}

suit N(0,1)\mathcal{N}(0, 1). Toute question sur une normale se ramène ainsi à Φ\Phi. On en déduit la règle des « 68-95-99,7 » : une normale tombe à moins de 1σ1\sigma de sa moyenne avec probabilité 0,683, à moins de 2σ2\sigma avec probabilité 0,954 et à moins de 3σ3\sigma avec probabilité 0,997.

18z = −322z = −226z = −130z = 034z = 138z = 242z = 3durée du trajet (minutes) et valeur standardisée z = (x − 30)/40,000,020,040,060,080,100,120,14densité± 1σ : 0,683± 2σ : 0,954± 3σ : 0,997
Chaque écart-type ajouté élargit la bande de 4 minutes. Au-delà de 3σ (avant 18 ou après 42 minutes), il ne reste que 0,3 % des trajets.
302634362238aire ≈ 0,067durée du trajet (minutes)

La question inverse est souvent plus utile : quelle durée n’est dépassée que 5 % du temps ? C’est le quantile d’ordre 0,95, la valeur qq telle que P(T≤q)=0,95P(T \leq q) = 0{,}95. Pour la normale centrée réduite, ce quantile vaut environ 1,645 (et celui d’ordre 0,975 vaut environ 1,96, un nombre que vous reverrez sans cesse en statistique). En « déstandardisant » :

q0,95=μ+1,645 σ=30+1,645×4≈36,6 minutesq_{0{,}95} = \mu + 1{,}645 \, \sigma = 30 + 1{,}645 \times 4 \approx 36{,}6 \text{ minutes}

Si vous voulez arriver à l’heure 95 fois sur 100, prévoyez 37 minutes de trajet (sans compter l’attente du bus, que nous ajouterons au chapitre suivant).

15202530354045durée du trajet (minutes)0,000,020,040,060,080,10densitéq(0,95) = 30 + 1,645 × 4≈ 36,6 minaire 0,95 :à l’heureaire 0,05 : en retard
Le quantile d'ordre 0,95 est la durée qui laisse 95 % de l'aire à sa gauche : 36,6 minutes, soit 1,645 écart-type au-dessus de la moyenne.

Les préfixes d, p, q, r du chapitre 4 s’appliquent tels quels : dnorm donne la densité, pnorm la répartition, qnorm le quantile et rnorm des tirages.

# Attente du bus : uniforme sur [0, 10]
1 - punif(7, min = 0, max = 10) # P(U > 7) = 0.3
# Temps entre deux passagers : exponentielle de paramètre 0.5 par minute
1 - pexp(3, rate = 0.5) # P(T > 3) = 0.223
# Trajet : normale de moyenne 30 et d'écart-type 4
1 - pnorm(36, mean = 30, sd = 4) # 0.067
qnorm(0.95, mean = 30, sd = 4) # 36.58
# Comparer un histogramme de tirages à la densité théorique
set.seed(2)
x <- rnorm(5000, mean = 30, sd = 4)
hist(x, breaks = 40, freq = FALSE, main = "Durée du trajet", xlab = "minutes")
curve(dnorm(x, mean = 30, sd = 4), add = TRUE, lwd = 2)

L’option freq = FALSE trace l’histogramme en densité (aire totale 1) plutôt qu’en effectifs : c’est indispensable pour le superposer à une courbe de densité.

Pour aller au-delà de la moyenne et de la variance, on utilise parfois les moments centrés μk=E[(X−E[X])k]\mu_k = E[(X - E[X])^k]. Le coefficient d’asymétrie (skewness) μ3/σ3\mu_3 / \sigma^3 vaut 0 pour une loi symétrique comme la normale, et 2 pour l’exponentielle, qui a une longue queue à droite. Le coefficient d’aplatissement (kurtosis) μ4/σ4\mu_4 / \sigma^4 vaut 3 pour la normale ; une valeur plus grande signale des valeurs extrêmes plus fréquentes.

  • Pour une v.a. continue, P(X=a)=0P(X = a) = 0 ; la loi se décrit par une densité fXf_X, et les probabilités sont des aires sous fXf_X.
  • FX(x)=∫−∞xfXF_X(x) = \int_{-\infty}^x f_X est continue, et FX′=fXF_X' = f_X ; espérance et variance s’écrivent avec des intégrales.
  • Uniforme U[a,b]\mathcal{U}[a, b] : densité constante, E=(a+b)/2E = (a+b)/2, Var=(b−a)2/12\mathrm{Var} = (b-a)^2/12.
  • Exponentielle E(λ)\mathcal{E}(\lambda) : temps d’attente, P(T>t)=e−λtP(T \gt t) = e^{-\lambda t}, E=1/λE = 1/\lambda, sans mémoire ; elle est liée à la loi de Poisson.
  • Normale N(μ,σ2)\mathcal{N}(\mu, \sigma^2) : on standardise avec Z=(X−μ)/σZ = (X - \mu)/\sigma ; 68 %, 95 %, 99,7 % à 1σ1\sigma, 2σ2\sigma, 3σ3\sigma.
  • En R, dnorm, pnorm, qnorm, rnorm (et de même pour unif, exp), avec l’écart-type comme paramètre de la normale.

Exercice · Construire une densité

facile

Soit f(x)=c xf(x) = c\,x pour 0≤x≤20 \leq x \leq 2, et f(x)=0f(x) = 0 ailleurs.

  1. Trouvez cc pour que ff soit une densité.
  2. Calculez F(x)F(x) pour 0≤x≤20 \leq x \leq 2, puis P(X≤1)P(X \leq 1).
  3. Calculez E[X]E[X].
Voir la solution
  1. Il faut ∫02c x dx=c×222=2c=1\int_0^2 c\,x \, dx = c \times \tfrac{2^2}{2} = 2c = 1, donc c=1/2c = 1/2. On a bien f≥0f \geq 0.
  2. F(x)=∫0xt2 dt=x24F(x) = \int_0^x \tfrac{t}{2} \, dt = \tfrac{x^2}{4} pour 0≤x≤20 \leq x \leq 2 (et F=0F = 0 avant, F=1F = 1 après). Donc P(X≤1)=1/4P(X \leq 1) = 1/4. Remarquez que la moitié gauche de l’intervalle ne porte qu’un quart de la probabilité, parce que la densité y est plus faible.
  3. E[X]=∫02x×x2 dx=12×233=43≈1,33E[X] = \int_0^2 x \times \tfrac{x}{2} \, dx = \tfrac{1}{2} \times \tfrac{2^3}{3} = \tfrac{4}{3} \approx 1{,}33, plus proche de 2 que de 0, pour la même raison.

En code

from scipy.integrate import quad
# 1. c tel que l'aire sous c*x entre 0 et 2 vaille 1
aire_sans_c, _ = quad(lambda x: x, 0, 2)
c = 1 / aire_sans_c
print(c) # 0.5
f = lambda x: c * x # la densité
print(quad(f, 0, 1)[0]) # 0.25 P(X <= 1) = F(1) = 1/4
print(quad(lambda x: x * f(x), 0, 2)[0]) # 1.3333 E[X] = 4/3

Exercice · Une ampoule sans mémoire

moyen

La durée de vie d’une ampoule LED suit une loi exponentielle de moyenne 1 000 heures.

  1. Quelle est la probabilité qu’elle dure plus de 500 heures ?
  2. Elle fonctionne depuis 1 000 heures. Quelle est la probabilité qu’elle fonctionne encore 500 heures de plus ?
  3. Quelle est sa durée de vie médiane (la durée dépassée avec probabilité 1/2) ?
Voir la solution

La moyenne vaut 1/λ=1 0001/\lambda = 1\,000, donc λ=0,001\lambda = 0{,}001 par heure.

  1. P(T>500)=e−0,001×500=e−0,5≈0,607P(T \gt 500) = e^{-0{,}001 \times 500} = e^{-0{,}5} \approx 0{,}607.
  2. Par l’absence de mémoire, P(T>1 500∣T>1 000)=P(T>500)≈0,607P(T \gt 1\,500 \mid T \gt 1\,000) = P(T \gt 500) \approx 0{,}607 : exactement la même chose qu’une ampoule neuve.
  3. On cherche mm tel que e−0,001 m=1/2e^{-0{,}001\,m} = 1/2, soit m=ln⁡2/0,001≈693m = \ln 2 / 0{,}001 \approx 693 heures. La médiane est inférieure à la moyenne : la loi exponentielle est asymétrique, avec une longue queue de durées de vie très longues qui tire la moyenne vers le haut. En R : qexp(0.5, rate = 0.001).

En code

import numpy as np
from scipy import stats
duree = stats.expon(scale=1000) # scipy : scale = moyenne = 1/lambda
print(duree.sf(500)) # 0.6065 P(T > 500)
print(duree.sf(1500) / duree.sf(1000)) # 0.6065 P(T > 1500 | T > 1000)
print(duree.median(), np.log(2) * 1000) # 693.1 693.1

Exercice · Régler une machine de remplissage

difficile

Une machine remplit des paquets de café. Le poids réel suit une loi normale d’écart-type 5 g, dont on peut régler la moyenne μ\mu. L’étiquette annonce 500 g, et la réglementation interne exige qu’au plus 1 % des paquets pèsent moins de 500 g.

  1. Quelle moyenne μ\mu minimale faut-il régler ?
  2. Avec ce réglage, quelle proportion des paquets dépasse 520 g ?
  3. Un technicien propose de diviser l’écart-type par deux en changeant de doseur. Quelle moyenne suffirait alors, et combien de café économise-t-on par paquet ?
Voir la solution
  1. On veut P(X<500)≤0,01P(X \lt 500) \leq 0{,}01, soit Φ(500−μ5)≤0,01\Phi\left(\tfrac{500 - \mu}{5}\right) \leq 0{,}01. Le quantile d’ordre 0,01 de N(0,1)\mathcal{N}(0,1) vaut −2,326-2{,}326 (par symétrie, l’opposé de celui d’ordre 0,99). Il faut donc 500−μ5≤−2,326\tfrac{500 - \mu}{5} \leq -2{,}326, soit μ≥500+2,326×5≈511,6\mu \geq 500 + 2{,}326 \times 5 \approx 511{,}6 g.
  2. P(X>520)=P(Z>520−511,65)=P(Z>1,67)≈0,047P(X \gt 520) = P\left(Z \gt \tfrac{520 - 511{,}6}{5}\right) = P(Z \gt 1{,}67) \approx 0{,}047, soit environ 5 % des paquets.
  3. Avec σ=2,5\sigma = 2{,}5 g, il suffit de μ≥500+2,326×2,5≈505,8\mu \geq 500 + 2{,}326 \times 2{,}5 \approx 505{,}8 g. On économise environ 5,8 g de café par paquet, soit plus de 1 % de la production : réduire la variabilité rapporte directement.

En R : 500 - qnorm(0.01) * 5 donne 511.63, et 1 - pnorm(520, 511.63, 5) environ 0,047.

En code

from scipy import stats
z_001 = stats.norm.ppf(0.01) # -2.326
mu_5 = 500 - z_001 * 5 # moyenne minimale avec sigma = 5 g
print(mu_5) # 511.63
print(stats.norm.sf(520, loc=mu_5, scale=5)) # 0.0471 P(X > 520)
mu_25 = 500 - z_001 * 2.5 # avec sigma = 2.5 g
print(mu_25, mu_5 - mu_25) # 505.82 5.82 g économisés par paquet