Comment utiliser la distribution log-normale en Python
Vous pouvez utiliser la fonction lognorm() de la bibliothèque SciPy en Python pour générer une variable aléatoire qui suit une distribution log-normale.
Les exemples suivants montrent comment utiliser cette fonction dans la pratique.
Comment générer une distribution log-normale
Vous pouvez utiliser le code suivant pour générer une variable aléatoire qui suit une distribution log-normale avec μ = 1 et σ = 1 :
import math
import numpy as np
from scipy.stats import lognorm
#make this example reproducible
np.random.seed(1)
#generate log-normal distributed random variable with 1000 values
lognorm_values = lognorm.rvs(s=1, scale=math.exp(1), size=1000)
#view first five values
lognorm_values[:5]
array([13.79554017, 1.47438888, 1.60292205, 0.92963 , 6.45856805])
Notez que dans la fonction lognorm.rvs() , s est l’écart type et la valeur dans math.exp() est la moyenne de la distribution log-normale que vous souhaitez générer.
Dans cet exemple, nous avons défini la moyenne comme étant 1 et l’écart type comme étant également 1 .
Comment tracer une distribution log-normale
Nous pouvons utiliser le code suivant pour créer un histogramme des valeurs de la variable aléatoire log-normalement distribuée que nous avons créée dans l’exemple précédent :
import matplotlib.pyplot as plt #create histogram plt.hist(lognorm_values, density=True, edgecolor='black')
Matplotlib utilise par défaut 10 bacs dans les histogrammes, mais nous pouvons facilement augmenter ce nombre en utilisant l’argument bins .
Par exemple, on peut augmenter le nombre de bacs à 20 :
import matplotlib.pyplot as plt #create histogram plt.hist(lognorm_values, density=True, edgecolor='black', bins=20)
Plus le nombre de cases est grand, plus les barres seront étroites dans l’histogramme.
Connexe : Trois façons d’ajuster la taille du bac dans les histogrammes Matplotlib
Ressources additionnelles
Les didacticiels suivants expliquent comment utiliser d’autres distributions de probabilité en Python :
Comment utiliser la distribution de Poisson en Python
Comment utiliser la distribution exponentielle en Python
Comment utiliser la distribution uniforme en Python