ConsigneTravaille 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 statsContinues
stats.norm(loc=μ, scale=σ) normale (gaussienne)stats.uniform(loc=a, scale=b-a) uniforme sur [a, b]stats.expon(scale=1/λ) exponentiellestats.t(df=n) Student tDiscrètes
stats.binom(n=N, p=p) binomialestats.poisson(mu=λ) PoissonSoit 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éatoiresD.mean() / D.var() / D.std()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.2norm.rvs(size=1000) # simuler 1000 QILancer 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.267binom.cdf(3) # P(≤ 3 faces) ≈ 0.650binom.mean() # 3.0Mnemonic : cdf et ppf sont inverses l'un de l'autre. cdf(x) → q, ppf(q) → x.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →