Exercice 77 / 100

Stats — Distributions

Travaille avec des distributions de probabilité

Une distribution de probabilité décrit comment se répartissent les valeurs d'une variable aléatoire. scipy.stats fournit toutes les lois usuelles avec une api uniforme.

Import

from scipy import stats

Lois courantes

Continues

stats.norm(loc=μ, scale=σ) normale (gaussienne) stats.uniform(loc=a, scale=b-a) uniforme sur [a, b] stats.expon(scale=1/λ) exponentielle stats.t(df=n) Student t

Discrètes

stats.binom(n=N, p=p) binomiale stats.poisson(mu=λ) Poisson

4 méthodes communes (à toutes les distributions)

Soit X ~ D

D.pdf(x) densité de probabilité (PDF) pour les CONTINUES seulement (binomiale → pmf) D.pmf(x) probability mass : P(X = x) (pour DISCRÈTES) D.cdf(x) fonction de répartition : P(X ≤ x) D.ppf(q) quantile : la valeur x telle que P(X ≤ x) = q (= percentile) D.rvs(size=n) tire n échantillons aléatoires D.mean() / D.var() / D.std()
Toutes les lois de scipy répondent aux mêmes quatre questions : la densité en un point, la probabilité de ne pas dépasser ce point, la valeur qui laisse une part donnée en dessous, et un tirage au sort

Exemple : loi normale (QI)

QI : moyenne 100, écart-type 15.

norm = stats.norm(loc=100, scale=15)
norm.cdf(115) # P(X < 115) ≈ 0.841 (84%) 1 - norm.cdf(130) # P(X > 130) ≈ 0.023 (2%) norm.ppf(0.9) # 90e percentile ≈ 119.2 norm.rvs(size=1000) # simuler 1000 QI

Exemple : binomiale

Lancer 10 fois une pièce truquée (p=0.3 face).

binom = stats.binom(n=10, p=0.3)
binom.pmf(3) # P(exactement 3 faces) ≈ 0.267 binom.cdf(3) # P(≤ 3 faces) ≈ 0.650 binom.mean() # 3.0

Mnemonic : cdf et ppf sont inverses l'un de l'autre. cdf(x) → q, ppf(q) → x.

exercise.py

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →