Skip to content

Lois discrètes ​

La page précédente a posé les outils pour décrire une v.a. discrète, loi de masse, fonction de répartition, espérance, variance, indépendance (§3), et la synthèse qui les chapeaute : une loi est un modèle paramétré p(x;θ) (§5). Cette page les met en œuvre sur un catalogue de cinq lois discrètes usuelles, Bernoulli, binomiale, géométrique, Poisson et uniforme discrète, présentées dans cet ordre. Pour chaque loi, la même trame se répète : modélisation, illustration, propriétés, puis exemple numérique.

Chaque loi est un modèle du hasard p(x;θ), une réponse à la question « quel mécanisme aléatoire a produit mes données ? ».

Loi de Bernoulli, X∼B(p) ​

La loi de Bernoulli modélise toute expérience à deux issues, succès (x=1) ou échec (x=0) : un visiteur d'un site qui convertit ou non (test A/B), un bit transmis avec ou sans erreur, un composant qui passe ou non le contrôle qualité. C'est la brique élémentaire de tout le catalogue.

Modélisation ​

La loi de Bernoulli est paramétrée par θ=p∈[0,1], la probabilité de succès : le taux de conversion d'une page, le taux d'erreur d'un canal. Sous la forme générique du cours, p(k;θ)=P(X=k) : ici p(1;θ)=θ et p(0;θ)=1−θ.

Modèle (Loi de Bernoulli)

  • PMF :
P(X=1)=p,P(X=0)=1−p.
  • CDF :
FX(x)={0x<01−p0≤x<11x≥1

À titre d'exemple, pour le problème de pile ou face (Ω={P,F}), il est courant de modéliser l'occurrence de l'issue « pile » par une loi de Bernoulli de paramètre p=0,5.

Illustration ​

PMF de la loi de Bernoulli pour trois valeurs du paramètre p

Figure 1.11a, PMF : P(X=k) pour p∈{0,2, 0,5, 0,8}.

CDF de la loi de Bernoulli pour trois valeurs du paramètre p

Figure 1.11b, CDF : deux marches, en 0 puis en 1.

Propriétés ​

Moments ​

E(X)=pvar(X)=p(1−p)

La variance p(1−p) est maximale en p=1/2 : une pièce équilibrée est la plus imprévisible ; un événement quasi sûr ou quasi impossible ne fluctue presque pas.

Preuve

E(X)=1×p+0×(1−p)=p. Comme X2=X (seules valeurs 0 et 1), E(X2)=p, d'où par König-Huygens : var(X)=p−p2=p(1−p). ∎

Exemple ​

Le code suivant montre comment simuler 50 000 tirages de Bernoulli de paramètre p=5%.

python
import numpy as np
rng = np.random.default_rng(0)

p = 0.05
x = (rng.random(50_000) < p).astype(int)
x.mean()    # >>> 0.0501  (fréquence ≈ p)
x.var()     # >>> 0.0476  (≈ p(1-p) = 0.0475)
python
import scipy.stats as sta

X = sta.bernoulli(0.05)
X.mean(), X.var()   # >>> (0.05, 0.0475)

Loi binomiale, X∼B(n,p) ​

La loi binomiale compte les succès sur n épreuves de Bernoulli indépendantes de même paramètre p : le nombre de bits erronés dans une trame de n bits, le nombre de paquets perdus sur n transmissions.

Modélisation ​

La loi binomiale est paramétrée par θ=(n,p) : n le nombre d'épreuves, p la probabilité de succès commune à chacune. La PMF ci-dessous est la forme p(k;θ)=P(X=k) de ce modèle.

Modèle (Loi binomiale)

  • PMF :
P(X=k)=(nk)pk(1−p)n−k,k∈{0,…,n}
  • CDF :
FX(k)=∑j=0k(nj)pj(1−p)n−j,k∈{0,…,n}

Notons qu'il n'y a pas de forme simple pour la CDF. L'expression s'obtient en sommant la PMF sur les différentes valeurs de k.

Illustration ​

PMF de la loi binomiale pour plusieurs n à p fixé, dont le cas Bernoulli n=1

Figure 1.12a, PMF : le cas n=1 est la loi de Bernoulli.

CDF de la loi binomiale pour plusieurs n à p fixé

Figure 1.12b, CDF : un escalier à n+1 marches.

Propriétés ​

Moments ​

E(X)=npvar(X)=np(1−p)

La binomiale est une somme de n Bernoulli ; ses moments s'additionnent donc directement à partir de ceux de la Bernoulli.

Preuve

X=X1+⋯+Xn avec Xi∼B(p) indépendantes, donc E(X)=np par linéarité et var(X)=np(1−p) par additivité des variances sous indépendance. ∎

Exemple ​

Le code suivant montre comment simuler 100 000 trames de n=1000 bits sur un canal de taux d'erreur p=0,02, en comptant les bits erronés de chaque trame.

python
import numpy as np
rng = np.random.default_rng(0)

n, p = 1000, 0.02
bits = rng.random((100_000, n)) < p   # n Bernoulli(p) indépendants, 100 000 trames simulées
erreurs = bits.sum(axis=1)            # X = somme de n Bernoulli = Binomiale(n, p)
erreurs.mean(), erreurs.var()   # >>> (19.998, 19.574)  (≈ np = 20, np(1-p) = 19.6)
(erreurs == 20).mean()          # >>> 0.0906  (≈ P(X=20) = 0.0897)
python
import scipy.stats as sta

X = sta.binom(1000, 0.02)
X.pmf(20)    # >>> 0.0897
X.sf(29)     # >>> 0.0207  (P(X >= 30))
X.mean(), X.var()   # >>> (20.0, 19.6)

Au chapitre 2 : déduire le taux d'erreur p^ du canal de x=27 erreurs observées (chapitre 2).

Loi géométrique, X∼G(p) ​

La loi géométrique modélise l'attente du premier succès : le nombre de combats avant d'obtenir un objet rare (probabilité p par combat), le nombre de tentatives avant une connexion réussie.

Modélisation ​

La loi géométrique est paramétrée par θ=p∈ ]0,1], la probabilité de succès à chaque tentative ; sa PMF est la forme p(k;θ)=P(X=k) de ce modèle.

Modèle (Loi géométrique)

  • PMF :
P(X=k)=(1−p)k−1p,k∈{1,2,…}
  • CDF :
FX(k)=1−(1−p)k,k∈{1,2,…}

La quantité 1−FX(k)=(1−p)k est la probabilité de k échecs d'affilée. Cette probabilité est souvent plus utile que la CDF elle-même.

Illustration ​

PMF de la loi géométrique pour plusieurs valeurs de p

Figure 1.13a, PMF : plus le succès est rare, plus la loi s'étale.

CDF de la loi géométrique pour plusieurs valeurs de p

Figure 1.13b, CDF : FX(k)=1−(1−p)k.

Propriétés ​

Moments ​

E(X)=1/pvar(X)=(1−p)/p2

L'écart-type est du même ordre que la moyenne : l'attente d'un événement rare est intrinsèquement très dispersée.

L'absence de mémoire ​

Proposition, Absence de mémoire (géométrique)

Si X∼G(p), alors pour tous entiers m,k≥0 :

P(X>m+k∣X>m)=P(X>k).

Avoir déjà échoué m fois ne rend pas le succès « plus dû », l'erreur du joueur, mathématisée. Son analogue continu est l'exponentielle.

Démonstration

P(X>k)=(1−p)k, donc P(X>m+k∣X>m)=(1−p)m+k/(1−p)m=(1−p)k=P(X>k). ∎

Exemple ​

Le code suivant montre comment repérer le rang du premier succès sur 100 000 séries de 400 tentatives, avec un taux de succès p=0,05 par tentative.

python
import numpy as np
rng = np.random.default_rng(0)

p = 0.05
essais = rng.random((100_000, 400)) < p
# tant que la somme cumulée des succès est nulle, aucun succès n'est encore survenu ;
# le nombre de tels essais est donc le rang (0-based) du premier succès
premier = (essais.cumsum(axis=1) == 0).sum(axis=1) + 1
premier.mean(), premier.var()   # >>> (19.99, 375.6)  (≈ 1/p = 20, (1-p)/p² = 380)
python
import scipy.stats as sta

X = sta.geom(0.05)
X.mean(), X.var()   # >>> (20.0, 380.0)
X.sf(20)             # >>> 0.3585  (P(X > 20) = 0.95^20)

Au chapitre 2 : estimer ce taux à partir des rangs d'apparition observés.

Loi de Poisson, X∼P(λ) ​

La loi de Poisson modélise le comptage d'événements rares dans une fenêtre fixe : requêtes reçues par un serveur en une seconde, pannes d'un parc de machines par mois.

Modélisation ​

La loi de Poisson est paramétrée par θ=λ>0, le nombre moyen d'événements par fenêtre ; c'est la limite de la binomiale quand n→∞ et p→0 avec np=λ fixé (un grand nombre d'essais, chacun de probabilité de succès infime). Sa PMF est la forme p(k;θ)=P(X=k) de ce modèle.

Modèle (Loi de Poisson)

  • PMF :
P(X=k)=e−λλkk!,k∈N
  • CDF :
FX(k)=∑j=0ke−λλjj!,k∈N

Illustration ​

PMF de la loi de Poisson pour trois taux différents

Figure 1.14a, PMF : le pic suit λ, l'étalement aussi (var(X)=λ).

CDF de la loi de Poisson pour trois taux différents

Figure 1.14b, CDF : escalier, de plus en plus étiré à droite quand λ croît.

Propriétés ​

Moments ​

E(X)=λvar(X)=λ

L'égalité E(X)=var(X)=λ est la signature de la loi : sur des données de comptage réelles, comparer moyenne et variance empiriques est un premier test de « poissonnité ».

Preuve

E(X)=∑k≥1ke−λλk/k!=λe−λ∑k≥1λk−1/(k−1)!=λ. De même E(X(X−1))=λ2, d'où E(X2)=λ2+λ et var(X)=λ par König-Huygens. ∎

Exemple ​

Le code suivant montre comment compter les requêtes reçues par un serveur de taux λ=4 requêtes/s, en découpant chaque seconde en n=2000 sous-intervalles porteurs chacun d'une épreuve de Bernoulli de probabilité λ/n.

python
import numpy as np
rng = np.random.default_rng(0)

lam, n = 4, 2000                 # la seconde découpée en n sous-intervalles, p = lam/n minuscule
p = lam / n
requetes = (rng.random((100_000, n)) < p).sum(axis=1)   # Binomiale(n, p) --> Poisson(lam) quand n est grand
requetes.mean(), requetes.var()   # >>> (4.01, 3.98)  (≈ lam = 4)
(requetes == 4).mean()            # >>> 0.195  (≈ P(X=4) = 0.1954, valeur la plus probable : 20 % seulement)
(requetes >= 10).mean()           # >>> 0.0077  (≈ P(X>=10) = 0.0081 : saturation)
python
import scipy.stats as sta

X = sta.poisson(4)
X.pmf(4), X.sf(9)      # >>> (0.1954, 0.0081)  (P(X >= 10) : saturation)
X.mean(), X.var()      # >>> (4.0, 4.0)

Au chapitre 2 : le trafic réel donne des comptages x1,…,xn ; le MLE de λ sera leur moyenne.

Loi uniforme discrète, X∼U{a,…,b} ​

La loi uniforme discrète modélise un nombre fini de valeurs toutes équiprobables : le dé, désormais nommé, ou le tirage d'un indice dans une liste, la brique de toutes les simulations.

Modélisation ​

La loi uniforme discrète est paramétrée par θ=(a,b), les bornes du support, avec n=b−a+1 valeurs possibles ; sa PMF est la forme p(k;θ)=P(X=k) de ce modèle.

Modèle (Loi uniforme discrète)

  • PMF :
P(X=k)=1n,k∈{a,…,b}
  • CDF :
FX(k)=k−a+1n,k∈{a,…,b}

Illustration ​

PMF de la loi uniforme discrète pour deux supports différents

Figure 1.15a, PMF : le dé (1/6) et un chiffre au hasard (1/10).

CDF de la loi uniforme discrète pour deux supports différents

Figure 1.15b, CDF : marches régulières de hauteur 1/n.

Propriétés ​

Moments ​

E(X)=(a+b)/2var(X)=(n2−1)/12

Le centre est le milieu de l'intervalle ; la dispersion croît avec l'étendue du support, au carré.

Exemple ​

Le code suivant montre comment tirer 100 000 lancers d'un dé à six faces (a=1, b=6), dont les moments ont été calculés page précédente.

python
import numpy as np
rng = np.random.default_rng(0)

lancers = rng.integers(1, 7, size=100_000)
lancers.mean(), lancers.var()   # >>> (3.498, 2.910)  (≈ 3.5, 35/12 ≈ 2.917)
python
import scipy.stats as sta

X = sta.randint(1, 7)   # borne haute exclue
X.mean(), X.var()       # >>> (3.5, 2.9167)