Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
loi_hypergeometrique [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


loi_hypergeometrique

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
loi_hypergeometrique [2008/04/25 09:19]
tyrtamos
loi_hypergeometrique [2008/04/25 09:43]
tyrtamos
Ligne 8: Ligne 8:
  
 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%). 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, Probabilité d'avoir k=3 coeurs dans une main de n=5 cartes, sachant qu'il y en a g=13 dans un jeu de t=52 cartes: 
  
 <m>Prob(k)={{{C_g}^k}*{{C_{t-g}}^{n-k}}}/{{C_t}^n}</m> <m>Prob(k)={{{C_g}^k}*{{C_{t-g}}^{n-k}}}/{{C_t}^n}</m>
Ligne 17: Ligne 15:
 <m>{{C_n}^k}~=~{n!}/{k!(n-k)!}~=~{n(n-1)(n-2)...(n-k+1)}/{k!}</m> <m>{{C_n}^k}~=~{n!}/{k!(n-k)!}~=~{n(n-1)(n-2)...(n-k+1)}/{k!}</m>
  
-Résultat:+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.
  
 <code python> <code python>
-hypgeo(3,5,13,52)  =>  0.0815426170468187 soit environ 8% de chances +#!/usr/bin/python 
-</code>+# -*- coding: utf--*- 
 +from __future__ import division
  
-<code python> 
 def hypgeo(k,n,g,t): 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"""     """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)     return combin(g,k)*combin(t-g,n-k)/combin(t,n)
 +
 +# Exemple d'utilisation:
 +print hypgeo(3,5,13,52) # affiche:
 </code> </code>
  
 ===== Loi hypergeométrique cumulée ===== ===== Loi hypergeométrique cumulée =====
 +
 +Il s'agit de la somme des probabilités précédentes pour 0,1,2,...,k.
  
 <code python> <code python>
 +#!/usr/bin/python
 +# -*- coding: utf-8 -*-
 +from __future__ import division
 +
 def hypgeocum(k,n,g,t): 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"""     """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"""
Ligne 39: Ligne 46:
     return x     return x
  
 +# Exemple d'utilisation:
 +print hypgeocum(3,5,13,52)  =>  
 </code> </code>
  
loi_hypergeometrique.txt · Dernière modification: 2008/04/25 12:21 de tyrtamos