Comment utiliser la distribution exponentielle en Python



La distribution exponentielle est une distribution de probabilité utilisée pour modéliser le temps que nous devons attendre jusqu’à ce qu’un certain événement se produise.

Si une variable aléatoire X suit une distribution exponentielle, alors la fonction de distribution cumulative de X peut s’écrire :

F (x; λ) = 1 – e -λx

où:

  • λ : le paramètre de taux (calculé comme λ = 1/μ)
  • e : Une constante à peu près égale à 2,718

Ce tutoriel explique comment utiliser la distribution exponentielle en Python.

Comment générer une distribution exponentielle

Vous pouvez utiliser la fonction expon.rvs(scale, size) de la bibliothèque SciPy en Python pour générer des valeurs aléatoires à partir d’une distribution exponentielle avec un paramètre de taux et une taille d’échantillon spécifiques :

from scipy.stats import expon

#generate random values from exponential distribution with rate=40 and sample size=10
expon.rvs(scale=40, size=10)

array([116.5368323 ,  67.23514699,  12.00399043,  40.74580584,
        34.60922432,   2.68266663,  22.70459831,  97.66661811,
         6.64272914,  46.15547298])

Remarque : Vous pouvez trouver la documentation complète de la bibliothèque SciPy ici .

Comment calculer les probabilités à l’aide d’une distribution exponentielle

Supposons que le nombre moyen de minutes entre les éruptions d’un certain geyser soit de 40 minutes. Quelle est la probabilité que nous devions attendre moins de 50 minutes pour une éruption ?

Pour résoudre ce problème, nous devons d’abord calculer le paramètre de taux :

  • λ = 1/µ
  • λ = 1/40
  • λ = 0,025

Nous pouvons brancher λ = 0,025 et x = 50 à la formule du CDF :

  • P(X ≤ x) = 1 – e -λx
  • P(X ≤ 50) = 1 – e -0,025(50)
  • P(X ≤ 50) = 0,7135

La probabilité que nous devions attendre moins de 50 minutes pour la prochaine éruption est de 0,7135 .

Nous pouvons utiliser la fonction expon.cdf() de SciPy pour résoudre ce problème en Python :

from scipy.stats import expon

#calculate probability that x is less than 50 when mean rate is 40
expon.cdf(x=50, scale=40)

0.7134952031398099

La probabilité que nous devions attendre moins de 50 minutes pour la prochaine éruption est de 0,7135 .

Cela correspond à la valeur que nous avons calculée manuellement.

Comment tracer une distribution exponentielle

Vous pouvez utiliser la syntaxe suivante pour tracer une distribution exponentielle avec un paramètre de taux donné :

from scipy.stats import expon
import matplotlib.pyplot as plt

#generate exponential distribution with sample size 10000
x = expon.rvs(scale=40, size=10000)

#create plot of exponential distribution
plt.hist(x, density=True, edgecolor='black')

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres distributions courantes en Python :

Comment utiliser la distribution de Poisson en Python
Comment utiliser la distribution t en Python
Comment utiliser la distribution uniforme en Python

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *