Comment calculer les intervalles de confiance en Python



Un intervalle de confiance pour une moyenne est une plage de valeurs susceptible de contenir une moyenne de population avec un certain niveau de confiance.

Il est calculé comme suit :

Intervalle de confiance = x +/- t*(s/√n)

où:

  • x : moyenne de l’échantillon
  • t : valeur t qui correspond au niveau de confiance
  • s : écart type de l’échantillon
  • n : taille de l’échantillon

Ce tutoriel explique comment calculer les intervalles de confiance en Python.

Intervalles de confiance utilisant la distribution t

Si nous travaillons avec un petit échantillon (n <30), nous pouvons utiliser la fonction t.interval() de la bibliothèque scipy.stats pour calculer un intervalle de confiance pour une moyenne de population.

L’exemple suivant montre comment calculer un intervalle de confiance pour la hauteur moyenne réelle de la population (en pouces) d’une certaine espèce de plante, en utilisant un échantillon de 15 plantes :

import numpy as np
import scipy.stats as st

#define sample data
data = [12, 12, 13, 13, 15, 16, 17, 22, 23, 25, 26, 27, 28, 28, 29]

#create 95% confidence interval for population mean weight
st.t.interval(alpha=0.95, df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) 

(16.758, 24.042)

L’intervalle de confiance à 95 % pour la taille moyenne réelle de la population est de (16,758, 24,042) .

Vous remarquerez que plus le niveau de confiance est élevé, plus l’intervalle de confiance est large. Par exemple, voici comment calculer un IC à 99 % pour exactement les mêmes données :

#create 99% confidence interval for same sample
st.t.interval(alpha=0.99, df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) 

(15.348, 25.455)

L’intervalle de confiance à 99 % pour la taille moyenne réelle de la population est (15,348, 25,455) . Notez que cet intervalle est plus large que l’intervalle de confiance précédent de 95 %.

Intervalles de confiance utilisant la distribution normale

Si nous travaillons avec des échantillons plus grands (n≥30), nous pouvons supposer que la distribution d’échantillonnage de la moyenne de l’échantillon est normalement distribuée (grâce au théorème central limite ) et pouvons à la place utiliser la fonction norm.interval() du scipy bibliothèque .stats.

L’exemple suivant montre comment calculer un intervalle de confiance pour la hauteur moyenne réelle de la population (en pouces) d’une certaine espèce de plante, en utilisant un échantillon de 50 plantes :

import numpy as np
import scipy.stats as st

#define sample data
np.random.seed(0)
data = np.random.randint(10, 30, 50)

#create 95% confidence interval for population mean weight
st.norm.interval(alpha=0.95, loc=np.mean(data), scale=st.sem(data))

(17.40, 21.08)

L’intervalle de confiance à 95 % pour la taille moyenne réelle de la population est (17,40, 21,08) .

Et comme pour la distribution t, des niveaux de confiance plus élevés conduisent à des intervalles de confiance plus larges. Par exemple, voici comment calculer un IC à 99 % pour exactement les mêmes données :

#create 99% confidence interval for same sample
st.norm.interval(alpha=0.99, loc=np.mean(data), scale=st.sem(data))

(16.82, 21.66)

L’intervalle de confiance à 95 % pour la taille moyenne réelle de la population est de (17,82, 21,66) .

Comment interpréter les intervalles de confiance

Supposons que notre intervalle de confiance à 95 % pour la hauteur moyenne réelle d’une espèce de plante soit :

Intervalle de confiance à 95 % = (16,758, 24,042)

La façon d’interpréter cet intervalle de confiance est la suivante :

Il y a 95 % de chances que l’intervalle de confiance de [16,758, 24,042] contienne la véritable hauteur moyenne des plantes de la population.

Une autre façon de dire la même chose est qu’il n’y a que 5 % de chances que la véritable moyenne de la population se situe en dehors de l’intervalle de confiance de 95 %. Autrement dit, il n’y a que 5 % de chances que la hauteur moyenne réelle des plantes soit inférieure à 16,758 pouces ou supérieure à 24,042 pouces.

Ajouter un commentaire

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