4 TP4 Simulation de lois de probabilités discr`etes finies 1

4
T.P.4 Simulation de lois de probabilit´es discr`etes finies
1 Introduction
Soit nN, on consid`ere un ensemble S={xi, i I=J1, nK}ainsi qu’une suite (pi)iItelle que iI,
pi0 et
n
X
i=1
pi= 1 (On a ainsi d´efini une loi Lde probabilit´es).
Notre objectif est de g´en´erer un ou plusieurs nombres al´eatoires Vde Stel que P(V=xi) = pi,iI.
Simuler une loi de probabilit´e Lconsiste `a ´ecrire un algorithme qui g´en`ere des suites finies de nombres
Vdont on consid´erera que ce sont des r´ealisations ind´ependantes de la loi L.
On notera au pr´ealable que, puisque les algorithmes sont par nature d´eterministes, les suites engendr´ees
ne sont, dans les faits, ni al´eatoires, encore moins ind´ependantes... On admettra qu’elles sont pourtant suf-
fisantes dans la pratique et on parlera d´esormais de suites pseudo-al´eatoires.
Python, via son module random permet de simuler la r´ealisation de la loi uniforme sur l’intervalle [0,1[.
Il suffit pour cela d’appeler la fonction random(). Cette fonction est fondamentale car elle peut-ˆetre utilis´ee
dans toutes les simulations de lois usuelles qui nous ineresse. Cela ´etant, pour aet bdeux entiers naturels
tels que a<b, il est possible d’utiliser la fonction randint(a,b) qui fournit un nombre entier al´eatoire
compris entre aet b(ces valeurs ´etant incluses !).
On peut lire dans l’aide en lignes docs.python.org la description suivante :«Almost all module func-
tions depend on the basic function random(), which generates a random float uniformly in the semi-open
range [0.0, 1.0). Python uses the Mersenne Twister as the core generator. It produces 53-bit precision floats
and has a period of 2**19937-1. [...] The Mersenne Twister is one of the most extensively tested random
number generators in existence. However, being completely deterministic, it is not suitable for all purposes. »
Dans la pratique, on retiendra que les g´en´erateurs de nombres pseudo-al´eatoires initialisent leurs calculs
`a l’aide d’une valeur initiale s0appel´ee graine.
Il vous est possible de choisir cette graine grˆace `a la fonction random.seed(a) et les avantages sont mul-
tiples : Une fois la graine choisie par l’utilisateur, il est possible de reproduire inegralement la s´equence des
nombres pseudo-al´eatoires produits, ce qui peut ˆetre utile pour v´erifier des r´esultats obtenus par simulation.
Enfin, «le fait d’employer une proedure standardis´ee permet de disposer d’informations fiables sur la qua-
lit´e et les performances des proc´edures utilis´ees en provenance de divers chercheurs et utilisateurs »1.
0La biblioth`eque scipy.stats poss`ede les fonctions randint,bernoulli,binom et hypergeom qui
permettent le calcul de P(X=k) o`u Xest une variable al´eatoire qui suit respectivement les lois uniforme,
bernoulli,binomiale et hypereom´etrique.
Il suffit pour ¸ca d’appeler : nom_Loi.pmf(k,param`etres) (pmf pour probability mass function) et ´egale-
ment : mean, var = nom_Loi.stats(param`etres,moments=’mv’) pour obtenir moyenne et variance.
0FXs’obtient en appelant : nom_Loi.cdf(t,param`etres) (cdf pour cumulative density function).
1. D’apr`es http ://math.univ-lyon1.fr/ jberard/genunif-www.pdf, document complet sur lequel on trouvera quantit´e d’infor-
mations sur les g´en´erations possibles de nombres pseudo-al´eatoires
1
2 Lois uniformes sur J1, nK
ÀRappeler la d´efinition de la loi uniforme sur J1, nKainsi que le mod`ele associ´e. Pr´eciser son esp´erance.
Á´
Ecrire une fonction Python simul_loiUniforme(m,a,b) qui g´en`ere une liste Lform´ee de mentiers
xiJa, bKconsid´er´es comme mr´ealisations ind´ependantes de la loi uniforme sur J1, nKet retourne les
fr´equences et les fr´equences cumul´ees de chacune des valeurs de cette liste.
ÂCalculer la moyenne de la s´erie Let la comparer `a l’esp´erance de la loi uniforme.
ÃEn utilisant la fonction randint de la biblioth`eque scipy.stats, comparer dans un premi`ere fenˆetre
les fr´equences simul´ees et le graphe de la loi uniforme sur J1, nKet dans une deuxi`eme fenˆetre, les
fr´equences cumul´ees et la fonction de r´epartition de la loi uniforme sur J1, nKet ce pour diff´erentes
valeurs de m.
3 Loi de Bernoulli de param`etre p
ÀRappeler la d´efinition de la loi de Bernoulli de param`etre painsi que le mod`ele associ´e. Pr´eciser son
esp´erance et sa variance.
Á´
Ecrire une fonction Python simul_loiBernoulli(p) qui simule la r´ealisation d’une loi de Bernoulli
de param`etre painsi qu’une fonction freqEtFreqC_SimulBernoulli(m,p) qui cr´e´e une liste Lform´ee
de mentiers xiJ0,1Kconsid´er´es comme mr´ealisations ind´ependantes de la loi de Bernoulli de
param`etre pet retourne la fr´equence respective des 0 et des 1 et leurs fr´equences cumul´ees.
ÂCalculer la moyenne et la variance de la s´erie Let les comparer `a l’esp´erance et la variance de la loi
de Bernoulli de param`etre p.
ÃEn utilisant la fonction bernoulli de la biblioth`eque scipy.stats, comparer dans deux fenˆetres dis-
tinctes les fr´equences simul´ees et le graphe de la loi de Bernoulli de param`etre p, les fr´equences cumul´ees
et la fonction de r´epartition de cette mˆeme moi et ce pour diff´erentes valeurs de m.
4 Loi binomiale de param`etres net p
ÀRappeler la d´efinition de la loi Binomiale de param`etres net painsi que le mod`ele associ´e. Pr´eciser
son esp´erance et sa variance.
Á´
Ecrire une fonction Python simul_loiBinomiale(n,p) qui simule la r´ealisation d’une loi Binomiale
de param`etres net painsi qu’une fonction freqEtFreqC_SimulBinomiale(m,n,p) qui cr´e´e une liste
Lform´ee de mentiers xiJ0, nKconsid´er´es comme mr´ealisations ind´ependantes de la loi binomiale
de param`etre net pet retourne la fr´equence respective des xiet leurs fr´equences cumul´ees.
ÂReprendre les questions 3. et 4. des deux lois pr´ec´edentes.
5 Loi hyperg´eom´etrique de param`etres N,net p
ÀRappeler la d´efinition de la loi Hyperg´eom´etrique de param`etres N,net painsi que le mod`ele associ´e.
Pr´eciser son esp´erance.
Á´
Ecrire une fonction Python simul_loiHyper(m,N,n,p) qui simule la r´ealisation d’une loi Hyperg´eo-
m´etrique de param`etres N,net painsi qu’une fonction freqEtFreqC_SimulHyper(m,N,n,p) qui cr´e´e
une liste Lform´ee de mentiers xiJ0, nKconsid´er´es comme mr´ealisations ind´ependantes de la loi
Hyperg´eom´etrique et retourne les fr´equences et les fr´equences cumul´ees des valeurs simul´ees.
ÂReprendre les questions 3. et 4. des deux lois pr´ec´edentes.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !