La loi de Poisson

La loi de Poisson est une fonction mathématique exponentielle qui peut servir de modèle pour la densité de probabilité d'une variable aléatoire discrète. C'est une loi théorique de la probabilité d'avoir k occurrences d'un événement par unité de temps. Elle dépends d'un seul paramètres: λ, le nombre moyen d'occurrences par unité de temps.

Les fonctions de densité et de répartition sont sur Wolfram Alpha: Poisson

Cette loi est importante car elle modélise les probabilité d'occurences d'événements d'un processus de Poisson, qui est le modèele standard des files d'attentes. En pratique, on l'utilise pour estimer le nombre de caisses dans un super marché, le nombre d'accenseurs dans un building ou le nombre d'accidents dans une période données.

Le processus de Poisson de paramètre λ (un nombre réel positif) est un comptage d'occurrences sous les hypothèses:

  1. les occurrences dans des intervalles de temps différents sont indépendants
  2. la probabilité d'une occurrence par unité de temps est λ
  3. la probabilité qu'il y ait plus d'une occurrence dans un petit intervalle est négligable

Cette loi est omniprésente en simulation. En effet, si on veut simuler l'arriver des clients à une caisse d'un magasin. Il suffit de savoir le nombre moyen de client pour une période de temps donnée et exploiter un processus de Poisson. Notons qu'il faut générer le processus avec des intervalles suffisamment petit pour y trouver au plus une occurrence.

Exemple de processus de Poisson: Il arrive en moyenne 4 clients à l'heure à une caisse d'un magasin. On veut simuler l'arriver de client dans un jeu vidéo via un processus de Poisson. Si on décide de simuler des clients avec des intervalles de temps de une heure, on viole l'hypothèse 3 car on risque d'en voire plus de un. Par contre, si on réalise le processus avec des intervalles de une minute, le paramètre sera 4/60. C'est la probabilité d'avoir un client à une minute donné.

On peut se convaincre que c'est réaliste avec une simulation Python:


import random
lambda_param=4/60
occurence=0
nb_heures=365*24 # un an de simulation du processus
for i in range(nb_heures*60): # processus en minutes
  if random.random()<lambda_param:
    occurence+=1

print("Nb moyen de clients par heure:", occurence/nb_heures)

Trois réalisation de la simulation donne:

Nb moyen de clients par heure: 3.98013698630137
Nb moyen de clients par heure: 4.026598173515982
Nb moyen de clients par heure: 3.992808219178082

On constate qu'à chaque fois, on retrouve une moyenne échantillonnale très proche de la valeur théorique de 4.