Outils pour utilisateurs

Outils du site


loi_hypergeometrique

Loi Hypergéométrique

en construction

Loi hypergéométrique

Pour la définition: voir http://fr.wikipedia.org/wiki/Loi_hyperg%C3%A9om%C3%A9trique

On utilise la loi hypergéométrique au lieu de la loi binomiale lorsque la taille de l'échantillon n'est plus négligeable devant la taille de la population (>10%).

Par exemple pour un jeu de carte: probabilité d'avoir k=3 cœurs dans une main de n=5 cartes sachant qu'il y en a g=13 dans un jeu de t=52 cartes.

Prob(k)={{{C_g}^k}*{{C_{t-g}}^{n-k}}}/{{C_t}^n}

Avec {{C_n}^k} = calcul du nombre de combinaisons de n objets pris k à k:

{{C_n}^k}~=~{n!}/{k!(n-k)!}~=~{n(n-1)(n-2)...(n-k+1)}/{k!}

Résultat:

hypgeo(3,5,13,52) => 0.0815426170468187 soit environ 8% de chances 

Voici le code proposé. Il applique strictement la définition, et utilise la fonction combin() définie dans la page de l'analyse combinatoire de ce site.

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import division
 
def hypgeo(k,n,g,t):
    """hypgeo(k,n,g,t): prob d'avoir k réussites dans un échantillon de taille n, sachant qu'il y en a g dans la population de taille t"""
    return combin(g,k)*combin(t-g,n-k)/combin(t,n)
 
# Exemple d'utilisation:
print hypgeo(3,5,13,52) # affiche: 0.0815426170468187 soit environ 8% de chances 

Loi hypergéométrique cumulée

Il s'agit de la somme des probabilités précédentes pour 0,1,2,…,k.

Par exemple pour un jeu de carte: probabilité d'avoir k=0,1,2 ou 3 cœurs dans une main de n=5 cartes sachant qu'il y en a g=13 dans un jeu de t=52 cartes.

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import division
 
def hypgeocum(k,n,g,t):
    """hypgeocum(k,n,p,t): prob d'avoir 0,1,..,k réussites dans un échantillon de taille n, sachant qu'il y en a g dans la population de taille t"""
    x=0
    for i in range(0,k+1):
        x+=hypgeo(i,n,g,t)
    return x
 
# Exemple d'utilisation:
print hypgeocum(3,5,13,52)  =>  0.988775510204082

loi_hypergeometrique.txt · Dernière modification: 2008/04/25 12:21 par tyrtamos

Outils de la page