Comment calculer & Tracer le CDF normal en Python
Une fonction de distribution cumulative ( CDF ) nous indique la probabilité qu’une variable aléatoire prenne une valeur inférieure ou égale à une certaine valeur.
Ce didacticiel explique comment calculer et tracer les valeurs du CDF normal en Python.
Exemple 1 : Calculer les probabilités CDF normales en Python
Le moyen le plus simple de calculer les probabilités CDF normales en Python est d’utiliser la fonction norm.cdf() de la bibliothèque SciPy .
Le code suivant montre comment calculer la probabilité qu’une variable aléatoire prenne une valeur inférieure à 1,96 dans une distribution normale standard :
from scipy.stats import norm #calculate probability that random value is less than 1.96 in normal CDF norm.cdf(1.96) 0.9750021048517795
La probabilité qu’une variable aléatoire prenne une valeur inférieure à 1,96 dans une distribution normale standard est d’environ 0,975 .
On peut aussi trouver la probabilité qu’une variable aléatoire prenne une valeur supérieure à 1,96 en soustrayant simplement cette valeur de 1 :
from scipy.stats import norm #calculate probability that random value is greater than 1.96 in normal CDF 1 - norm.cdf(1.96) 0.024997895148220484
La probabilité qu’une variable aléatoire prenne une valeur supérieure à 1,96 dans une distribution normale standard est d’environ 0,025 .
Exemple 2 : tracer le CDF normal
Le code suivant montre comment tracer un CDF normal en Python :
import matplotlib.pyplot as plt import numpy as np import scipy.stats as ss #define x and y values to use for CDF x = np.linspace(-4, 4, 1000) y = ss.norm.cdf(x) #plot normal CDF plt.plot(x, y)
L’axe des x montre les valeurs d’une variable aléatoire qui suit une distribution normale standard et l’axe des y montre la probabilité qu’une variable aléatoire prenne une valeur inférieure à la valeur indiquée sur l’axe des x.
Par exemple, si nous regardons x = 1,96, nous verrons que la probabilité cumulée que x soit inférieur à 1,96 est d’environ 0,975 .
N’hésitez pas à modifier également les couleurs et les étiquettes des axes du tracé CDF normal :
import matplotlib.pyplot as plt import numpy as np import scipy.stats as ss #define x and y values to use for CDF x = np.linspace(-4, 4, 1000) y = ss.norm.cdf(x) #plot normal CDF plt.plot(x, y, color='red') plt.title('Normal CDF') plt.xlabel('x') plt.ylabel('CDF')
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes en Python :
Comment générer une distribution normale en Python
Comment tracer une distribution normale en Python