Probabilités

15 minutes de Python

La bibliothèque numpy.random : simulations de lois discrètes usuelles

Thème : Probabilités

Niveau : ECG1–ECG2

Année : Maths appliquées, Maths approfondies

Objectif : Savoir simuler une loi discrète (uniforme, binomiale, géométrique, Poisson) avec numpy.random, puis estimer une probabilité par fréquence.

Simulation de lois discrètes usuelles

Le module numpy.random permet de simuler directement des variables aléatoires discrètes suivant les lois usuelles, sans avoir à modéliser explicitement l’expérience aléatoire correspondante.




Simulation d’une variable aléatoire de loi usuelle

On peut notamment simuler :

  • une loi uniforme discrète à l’aide de rd.randint,
  • une loi binomiale à l’aide de rd.binomial,
  • une loi géométrique à l’aide de rd.geometric,
  • une loi de Poisson à l’aide de rd.poisson.

On rappelle ci-dessous les paramètres de chacune de ces fonctions.

  • rd.randint(a,b+1) permet de simuler une variable aléatoire suivant la loi uniforme discrète sur l’ensemble des entiers compris entre a et b inclus, où a et b sont deux entiers tels que a ≤ b.
  • rd.binomial(n,p) permet de simuler une variable aléatoire suivant une loi binomiale de paramètres n et p. Le paramètre n correspond au nombre d’épreuves indépendantes, et p à la probabilité de succès d’une épreuve.
  • rd.geometric(p) permet de simuler une variable aléatoire suivant une loi géométrique de paramètre p. La valeur renvoyée correspond au rang d’apparition du premier succès dans une suite d’épreuves indépendantes de probabilité de succès p.
  • rd.poisson(lam) permet de simuler une variable aléatoire suivant une loi de Poisson de paramètre lam.

Dans chacun des cas précédents, la fonction renvoie une seule réalisation de la variable aléatoire considérée.

Par exemple, l’instruction

X = rd.binomial(n,p)

renvoie une simulation d’une variable aléatoire suivant une loi binomiale de paramètres n et p.

De même, l’instruction

Y = rd.geometric(p)

renvoie une simulation d’une variable aléatoire suivant une loi géométrique de paramètre p, c’est-à-dire le rang du premier succès dans une suite d’épreuves indépendantes de probabilité de succès p.




Simulation de plusieurs variables aléatoires indépendantes

Les fonctions de numpy.random permettent également de simuler plusieurs réalisations indépendantes d’une même variable aléatoire en une seule instruction. Pour cela, on ajoute un second paramètre indiquant le nombre de réalisations souhaitées.

X = rd.loi(parametres, n)

loi est à remplacer par l’une des lois précédentes (binomial, geometric, poisson, randint) et parametres par les paramètres adéquats.

La variable X est alors un tableau numpy contenant n réalisations indépendantes de la variable aléatoire considérée.

On peut également demander une matrice contenant des réalisations indépendantes en fournissant un couple de dimensions :

X = rd.loi(parametres, [n,p])

Dans ce cas, X est une matrice de taille n × p dont les coefficients sont des réalisations indépendantes de la même variable aléatoire.

X = rd.poisson(lam,1000)

La variable X est alors un tableau contenant 1000 réalisations indépendantes d’une variable aléatoire suivant une loi de Poisson de paramètre lam.

Exemple

import numpy.random as rd

N = 10000
n = 0

for k in range(N):
    X = rd.binomial(10, 0.3)
    if X >= 4:
        n += 1

print(n / N)

Explication

Ce script simule N réalisations indépendantes d’une variable aléatoire suivant une loi binomiale de paramètres 10 et 0.3.

À chaque itération, la variable X représente le nombre de succès obtenus lors de 10 épreuves indépendantes de probabilité de succès 0.3.

On compte le nombre de simulations pour lesquelles X est supérieur ou égal à 4, puis on divise ce nombre par N.

La valeur affichée correspond à une estimation, par fréquence, de la probabilité que la variable aléatoire X prenne une valeur supérieure ou égale à 4.

Trois commandes utiles aujourd’hui

Clique sur une carte pour voir l’instruction utile.

Calculer le maximum des coefficients d’un tableau
Calculer la moyenne des coefficients d’un tableau
Calculer la somme des coefficients d’un tableau

Un exercice pour vérifier ta maîtrise

Et pour quelques minutes de plus…

Prendre en main la programmation, pas à pas.

Ces exercices sont conçus pour t’aider à maîtriser progressivement la programmation en Python, en partant de la lecture et de la compréhension du code, jusqu’à l’écriture autonome de scripts complets.

L’objectif n’est pas d’aller vite, mais de construire des automatismes solides, en comprenant ce que fait chaque instruction, puis en apprenant à les utiliser par toi-même.

L’ordre des exercices est volontaire : on lit, on comprend, on complète, puis on écrit seul. Prends le temps de chaque étape : c’est la clé pour progresser durablement.

Niveau 1 Analyser un code

Comprendre avant d’écrire.
Dans cette première série, tu observes et analyses des scripts Python déjà écrits. L’objectif est de comprendre la logique du programme, le rôle des variables, des boucles et des conditions, et d’être capable de prévoir ce que le code affiche ou calcule.

Niveau 2 Compléter un code

Écrire, mais avec un cadre.
Ici, tu passes à l’écriture sans partir de zéro. Le squelette du programme est fourni : il te reste à compléter certaines instructions pour que le code fonctionne correctement. Ce format permet de se concentrer sur l’essentiel, sans se perdre dans la structure générale.

Niveau 3 Écrire un code complet

Passer à l’autonomie.
Dans cette dernière série, tu écris un programme complet à partir d’une consigne. Tu dois organiser ton code, choisir les bonnes instructions et construire la logique globale du script. C’est ici que tu mets en pratique tout ce que tu as appris dans les niveaux précédents.

error: Ce contenu est protégé !