Soit p une probabilité. On souhaite générer un échantillon de X_1, \cdots, X_n éléments où chaque élément peut valoir -1 avec probabilité p et 2 avec probabilité de 1 - p .
Quelle loi suivent les X_i ?
Chaque étape de cette expérience aléatoire est soit un succès avec probabilité p , soit un échec avec probabilité 1-p . Les X_i suivent donc une loi de Bernoulli de paramètres p avec pour succès la valeur -1 et pour échec la valeur 2.
Les X_i suivent une loi de Bernoulli de paramètre p sur \{ -1 ; 2 \} .
Quel algorithme permet de générer un élément qui suit une loi de Bernoulli de paramètre p avec pour succès la valeur -1 et pour échec la valeur 2 ?
Chaque étape de cette expérience aléatoire est soit un succès avec probabilité p , soit un échec avec probabilité 1-p . On simule donc un nombre aléatoire entre 0 et 1 à l'aide de la fonction \verb/random/ du package \verb/random/.
Si ce nombre est inférieur à la probabilité p de succès, alors on retourne la valeur -1 . Sinon, on retourne 2 .
Ainsi, l'algorithme qui permet de simuler une loi de Bernoulli de paramètre p est :
from random import random
def simul(p):
t=random.random()
if (t < p):
return -1
else:
return 2
À l'aide de la fonction \verb/simul/, quel algorithme permet de générer n éléments qui suivent une loi de Bernoulli de paramètre p avec pour succès la valeur -1 et pour échec la valeur 2 ?
Pour générer un échantillon de taille n d'éléments qui suivent une loi de Bernoulli de paramètre p , on utilise une boucle for sur un itérateur de taille n , et on utilise la fonction \verb/simul/ que l'on a écrite précédemment pour générer chaque élément.
La fonction \verb/simul/ prend en paramètre une probabilité p . On ajoute chaque élément à une liste \verb/l/ à l'aide de la fonction en place \verb/append/.
On retourne enfin la liste \verb/l/.
L'algorithme qui convient est donc :
\verb# from random import random #
\verb# def echantillon(n,p): #
\verb# l = [] #
\verb# for i in range(n): #
\verb# X = simul(p) #
\verb# l.append(X) #
\verb# return(l) #