Introduction :
Dans cette fiche, nous allons voir comment simuler une variable aléatoire suivant une loi géométrique en langage Python.
Nous rappellerons rapidement la définition de la loi géométrique, et nous donnerons les probabilités sur un exemple.
Ensuite, nous écrirons un programme Python qui simulera un certain nombre de fois une variable aléatoire de loi géométrique et donnera les différentes fréquences obtenues, que nous confronterons au modèle théorique.
Pour revoir les différentes notions de probabilité qui vont être traitées dans cette fiche :
- cours sur les lois discrètes.
Loi géométrique
Loi géométrique
On considère une épreuve de Bernoulli où la probabilité de succès est .
Soit la variable aléatoire qui donne le nombre de répétitions de l’épreuve nécessaires pour obtenir le premier succès :
- si on obtient le premier succès dès la première épreuve, prendra la valeur ;
- si on obtient le premier succès à la deuxième épreuve, prendra la valeur ;
- et cætera.
- Alors on dit que suit une loi géométrique de paramètre .
La probabilité que prenne la valeur ( entier naturel non nul) est alors donnée par la formule :
Soit une variable aléatoire qui suit la loi géométrique de paramètre .
Le tableau ci-dessous donne sa loi de probabilité (jusqu’à ) ; nous y mettons aussi les probabilités cumulées :
Programme Python
Programme Python
Épreuve de Bernoulli
Épreuve de Bernoulli
Nous avons besoin de simuler une épreuve de Bernoulli.
- Nous nous servons pour cela de la fonction , que nous avons expliquée et programmée dans la fiche sur les variables de Bernoulli :
Simulation d’une variable aléatoire de loi géométrique
Simulation d’une variable aléatoire de loi géométrique
Ici, nous allons programmer une petite fonction qui simulera une variable aléatoire qui suit une loi géométrique de paramètre .
Pour cela, nous allons faire appel à la fonction pour simuler la variable de Bernoulli associée, et nous le ferons tant qu’elle n’obtiendra pas un succès, c’est-à-dire tant qu’elle ne retournera pas .
- Dès qu’elle l’aura obtenu, nous nous arrêterons et nous noterons le nombre de fois que l’épreuve de Bernoulli aura été répétée.
- Commençons par définir la fonction , qui prend pour argument la probabilité de succès .
- Nous avons besoin de compter le nombre de répétitions nécessaires pour obtenir un succès.
- Nous initialisons pour cela un compteur à (il faudra évidemment au moins épreuve pour obtenir un succès…) :
- Tant que nous n’aurons pas obtenu un succès, autrement dit, tant que nous obtiendrons un échec, nous répéterons l’épreuve de Bernoulli.
- Nous nous servons d’une boucle et, dans la condition, nous faisons appel à la fonction pour regarder s’il y a échec :
- Si c’est un échec, nous comptabilisons l’épreuve :
- Dès que c’est un succès, nous sortons de la boucle.
contient alors le nombre d’épreuves nécessaires pour obtenir le premier succès. - Nous demandons alors à la fonction de renvoyer la valeur contenue dans .
La fonction est terminée :
Illustrons par deux petits exemples ce qui se passe exactement.
Épreuve 1
- vaut .
- renvoie un échec.
- On incrémente , qui vaut désormais .
- Et on relance la boucle.
Épreuve 2
- vaut .
- renvoie un échec.
- On incrémente , qui vaut désormais .
- Et on relance la boucle.
Épreuve 3
- vaut .
- renvoie un succès.
- On sort de la boucle, sans incrémenter .
- vaut alors , ce qui est bien le nombre d’épreuves nécessaires pour obtenir le premier succès.
Épreuve 1
- vaut .
- renvoie un succès.
- On n’exécute pas la boucle.
- vaut alors , on a obtenu un succès dès la première épreuve.
Fréquences d’obtention du premier succès
Fréquences d’obtention du premier succès
Maintenant que notre fonction de simulation d’une variable de loi géométrique est faite, nous allons y faire appel un certain nombre de fois, afin de la simuler à plusieurs reprises.
- Nous noterons alors, à chaque simulation, si le nombre de répétitions nécessaires pour obtenir le premier succès est égal à un entier naturel donné, et nous afficherons la fréquence associée.
- Nous définissons la fonction, que nous nommons ; elle prendra pour arguments :
- la probabilité de succès de l’épreuve de Bernoulli associée ;
- le nombre d’épreuves nécessaires pour obtenir le premier succès auquel on s’intéresse ;
- le nombre de simulations de la variable que l’on souhaite.
- Nous allons compter combien de fois le nombre d’épreuves nécessaires est égal à .
- Nous nous servirons pour cela d’un compteur , que nous initialisons à :
- Nous simulons fois l’expérience, comme d’habitude au moyen d’un boucle :
- Nous simulons une expérience grâce à la fonction que nous avons programmée dans la partie précédente, et regardons si la valeur renvoyée (soit le nombre de répétitions nécessaires pour obtenir le premier succès) est égale à .
- Auquel cas, nous le comptabilisons en incrémentant :
- C’est la fréquence avec laquelle le premier succès a été obtenu à la épreuve qui nous intéresse.
- Nous la calculons en divisant par , et nous l’affichons.
La fonction est terminée :
Simulez grâce à cette fonction un grand nombre de fois (
Laissez tourner l’algorithme, puis comparez le résultat avec la probabilité théorique
- Vous pouvez faire de même avec
comprisk \purple{\text{k}} à1 1 , en comparant à chaque fois avec la probabilité théorique du tableau.15 15
Si vous entrez pour paramètre de loi géométrique une très petite probabilité de succès (par exemple
Si en plus vous simulez cette variable aléatoire un grand nombre de fois, cela risque de prendre beaucoup de temps… voire d’excéder la capacité que le serveur vous alloue.
Fréquences cumulées
Fréquences cumulées
Pour terminer, donnons le programme qui permet de déterminer la fréquence avec laquelle le premier succès est rencontré au plus tard à l’épreuve
- Cette fréquence sera à rapprocher de la probabilité
.P ( X ≤ k ) \text{P}(X \leq k)
Cette fonction Python est très proche de
- Nous ne la détaillons donc pas.
Nous nommons cette fonction
Récapitulatif
Récapitulatif
Nous rappelons ci-dessous l’ensemble des fonctions programmées dans cette fiche :