Python >> Tutoriel Python >  >> Python

Comment tracer l'intervalle de confiance en Python ?

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 le x 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/