La Distribution Hypergéométrique
Théorie, Formules, Exemples et Applications Pratiques en R et Python
Introduction
Dans le vaste univers des probabilités et des statistiques, il existe une multitude de distributions qui nous aident à modéliser et à comprendre les phénomènes aléatoires. La distribution hypergéométrique en est une, et elle occupe une place particulière. Alors que la célèbre distribution binomiale modélise les tirages avec remise, la distribution hypergéométrique s'intéresse à une situation tout aussi courante : les tirages sans remise. Imaginez une urne avec des boules de deux couleurs différentes, ou un jeu de cartes. Si vous tirez une carte sans la remettre dans le jeu, les probabilités des tirages suivants changent. C'est précisément ce que la distribution hypergéométrique nous permet de calculer. Cet article vous guidera à travers les concepts fondamentaux, les formules, des exemples concrets et des implémentations en Python et R pour maîtriser cette distribution essentielle.
1. Définition et Théorie
La distribution hypergéométrique est une distribution de probabilité discrète qui décrit la probabilité de tirer un certain nombre de succès ($x$) lors d'une série de tirages sans remise, à partir d'une population finie qui contient des succès ($K$) et des échecs ($N-K$).
Pour qu'un phénomène puisse être modélisé par une distribution hypergéométrique, les conditions suivantes doivent être remplies :
- La population totale est finie et de taille $N$.
- Cette population est divisée en deux groupes : les "succès" (de taille $K$) et les "échecs" (de taille $N-K$).
- Vous effectuez une série de $n$ tirages.
- Chaque tirage est effectué sans remise. C'est la condition qui la distingue de la distribution binomiale.
2. La Formule Mathématique
La probabilité d'obtenir exactement $x$ succès dans un échantillon de taille $n$ est donnée par la formule suivante :
$$P(X=x) = \frac{\binom{K}{x} \binom{N-K}{n-x}}{\binom{N}{n}}$$
Où les termes sont définis comme :
- $N$ : la taille totale de la population.
- $K$ : le nombre total d'objets de type "succès" dans la population.
- $n$ : la taille de l'échantillon que nous tirons.
- $x$ : le nombre de succès que nous souhaitons obtenir dans notre échantillon.
- $\binom{a}{b}$ : le coefficient binomial, qui se lit "a parmi b", calculé comme $\frac{a!}{b!(a-b)!}$.
3. Exemples Pratiques et Résolution
Exemple 1 : L'urne aux boules
Imaginez une urne contenant 15 boules au total : 8 boules rouges et 7 boules noires. Vous tirez 5 boules au hasard, sans remise. Quelle est la probabilité d'obtenir exactement 3 boules rouges ?
Pour résoudre ce problème, identifions nos paramètres :
- $N = 15$ (taille totale de la population)
- $K = 8$ (nombre de succès, c'est-à-dire de boules rouges)
- $n = 5$ (taille de l'échantillon)
- $x = 3$ (nombre de succès souhaité)
Calcul de la probabilité :
$$P(X=3) = \frac{\binom{8}{3} \binom{15-8}{5-3}}{\binom{15}{5}}$$ $$P(X=3) = \frac{\binom{8}{3} \binom{7}{2}}{\binom{15}{5}}$$
Calculons les coefficients binomiaux :
- $\binom{8}{3} = \frac{8!}{3!5!} = \frac{8 \times 7 \times 6}{3 \times 2 \times 1} = 56$
- $\binom{7}{2} = \frac{7!}{2!5!} = \frac{7 \times 6}{2 \times 1} = 21$
- $\binom{15}{5} = \frac{15!}{5!10!} = \frac{15 \times 14 \times 13 \times 12 \times 11}{5 \times 4 \times 3 \times 2 \times 1} = 3003$
$$P(X=3) = \frac{56 \times 21}{3003} = \frac{1176}{3003} \approx 0.3916$$
Exemple 2 : Le jeu de cartes
Vous avez un jeu de 52 cartes standard. Vous en tirez 6, sans les remettre. Quelle est la probabilité d'obtenir exactement 2 as ?
Identifions les paramètres :
- $N = 52$ (population totale de cartes)
- $K = 4$ (nombre d'as dans le jeu, les "succès")
- $n = 6$ (taille de l'échantillon)
- $x = 2$ (nombre d'as souhaité)
Calcul de la probabilité :
$$P(X=2) = \frac{\binom{4}{2} \binom{52-4}{6-2}}{\binom{52}{6}} = \frac{\binom{4}{2} \binom{48}{4}}{\binom{52}{6}}$$
Calculons les coefficients binomiaux :
- $\binom{4}{2} = \frac{4!}{2!2!} = \frac{4 \times 3}{2} = 6$
- $\binom{48}{4} = \frac{48!}{4!44!} = \frac{48 \times 47 \times 46 \times 45}{4 \times 3 \times 2 \times 1} = 194580$
- $\binom{52}{6} = \frac{52!}{6!46!} = \frac{52 \times 51 \times 50 \times 49 \times 48 \times 47}{6 \times 5 \times 4 \times 3 \times 2 \times 1} = 20358520$
$$P(X=2) = \frac{6 \times 194580}{20358520} = \frac{1167480}{20358520} \approx 0.05734$$
4. Statistiques Clés
La distribution hypergéométrique, comme toute distribution, a des mesures statistiques importantes qui la caractérisent, notamment la moyenne et la variance.
| Statistique | Formule | Description |
|---|---|---|
| Moyenne (Espérance) | $$E(X) = n \frac{K}{N}$$ | Représente le nombre moyen de succès que l'on s'attend à obtenir. |
| Variance | $$Var(X) = n \frac{K}{N} \frac{N-K}{N} \frac{N-n}{N-1}$$ | Mesure la dispersion des résultats autour de la moyenne. Le dernier terme $\frac{N-n}{N-1}$ est le "facteur de correction pour population finie". |
5. Implémentation en R et Python
Les distributions statistiques sont couramment implémentées dans les bibliothèques des langages de programmation. Voici comment calculer les probabilités hypergéométriques en Python et en R.
# Implémentation en Python avec la bibliothèque SciPy
from scipy.stats import hypergeom
# Paramètres de l'exemple 1 (urnes) :
# N = population totale = 15
# K = succès dans la population = 8 (boules rouges)
# n = taille de l'échantillon = 5
# x = succès souhaités dans l'échantillon = 3
N, K, n = 15, 8, 5
x = 3
# Calcul de la probabilité P(X=3)
# La fonction hypergeom.pmf(x, N, K, n) retourne la probabilité
probabilite = hypergeom.pmf(x, N, K, n)
print(f"La probabilité d'obtenir exactement {x} boules rouges est : {probabilite:.4f}")
# Pour l'exemple 2 (cartes)
# N = 52, K = 4, n = 6, x = 2
N_cartes, K_as, n_tirees, x_as = 52, 4, 6, 2
probabilite_cartes = hypergeom.pmf(x_as, N_cartes, K_as, n_tirees)
print(f"La probabilité d'obtenir exactement {x_as} as est : {probabilite_cartes:.4f}")
# Implémentation en R
# Paramètres de l'exemple 1 (urnes) :
# x = succès souhaités dans l'échantillon = 3
# m = succès dans la population = 8 (boules rouges)
# n = échecs dans la population = 15 - 8 = 7
# k = taille de l'échantillon = 5
x <- 3
m <- 8
n <- 7
k <- 5
# La fonction dhyper(x, m, n, k) retourne la probabilité
probabilite <- dhyper(x, m, n, k)
cat("La probabilité d'obtenir exactement", x, "boules rouges est :", format(probabilite, digits=4), "\n")
# Pour l'exemple 2 (cartes)
# x = 2, m = 4, n = 52 - 4 = 48, k = 6
probabilite_cartes <- dhyper(2, 4, 48, 6)
cat("La probabilité d'obtenir exactement 2 as est :", format(probabilite_cartes, digits=4), "\n")
6. Calculatrice Hypergéométrique
Pour vérifier vos calculs ou explorer d'autres scénarios, vous pouvez utiliser la calculatrice en ligne ci-dessous :