Formulation du problème : Comment tracer l'intervalle de confiance en Python ?
Pour tracer un intervalle rempli avec la largeur ci
et limites d'intervalle à partir de y-ci
à y+ci
autour des valeurs de fonction y
, utilisez le plt.fill_between(x, (y-ci), (y+ci), color='blue', alpha=0.1)
appel de fonction sur le Matplotlib plt
module.
- Le premier argument
x
définit lex
valeurs de la courbe remplie. Vous pouvez utiliser les mêmes valeurs que pour le tracé d'origine. - Le deuxième argument
y-ci
définit la limite inférieure de l'intervalle. - Le troisième argument
y+ci
définit la limite supérieure de l'intervalle. - Le quatrième argument
color='blue'
définit la couleur de l'intervalle ombré. - Le cinquième argument
alpha=0.1
définit la transparence pour permettre les intervalles en couches.
from matplotlib import pyplot as plt import numpy as np # Create the data set x = np.arange(0, 10, 0.05) y = np.sin(x) Define the confidence interval ci = 0.1 * np.std(y) / np.mean(y) # Plot the sinus function plt.plot(x, y) # Plot the confidence interval plt.fill_between(x, (y-ci), (y+ci), color='blue', alpha=0.1) plt.show()
Vous pouvez également tracer deux intervalles de confiance en couches en appelant le plt.fill_between()
fonction deux fois avec des limites d'intervalle différentes :
from matplotlib import pyplot as plt import numpy as np # Create the data set x = np.arange(0, 10, 0.05) y = np.sin(x) # Define the confidence interval ci = 0.1 * np.std(y) / np.mean(y) # Plot the sinus function plt.plot(x, y) # Plot the confidence interval plt.fill_between(x, (y-ci), (y+ci), color='blue', alpha=0.1) plt.fill_between(x, (y-2*ci), (y+2*ci), color='yellow', alpha=.1) plt.show()
Le graphique résultant montre deux intervalles de confiance en bleu et jaune :
Vous pouvez l'exécuter dans notre bloc-notes Jupyter interactif :
Vous pouvez également utiliser la fonction regplot() de Seaborn qui le fait pour vous, étant donné un ensemble de données dispersées de tuples (x, y).
import numpy as np import seaborn as sns import matplotlib.pyplot as plt #create some random data x = np.random.randint(1, 10, 20) y = x + np.random.normal(0, 1, 20) #create regplot ax = sns.regplot(x, y)
Cela se traduit par la sortie pratique :
Notez que l'intervalle de confiance à 95 % est calculé automatiquement. Un troisième argument ci alternatif dans le sns.regplot(x, y, ci=80)
permet de définir un autre intervalle de confiance (par exemple, 80 %).
Pour booster vos compétences en Python, Matplotlib et la science des données, rejoignez notre académie de messagerie gratuite et téléchargez vos feuilles de triche Python maintenant !
Ressources :
- https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.fill_between.html
- https://stackoverflow.com/questions/59747313/how-to-plot-confidence-interval-in-python
- https://www.statology.org/plot-confidence-interval-python/