Moyennes et intervalles de confiance en python

Les différentes moyennes

Page en construction : moyenne, médiane, moyenne géométrique, moyenne harmonique, moyenne glissante, moyenne mobile, moyenne mobile par itération : laquelle prendre ?

Pour certaines de ces moyennes : suivre ce lien.

Désolé pour l'absence de code en attendant une prochaine mise à jour...

# Moyenne glissante en python

# https://xdze2.github.io/confiance.html

Intervalles de confiance

Intervalles de confiance d'un échantillon (et non d'une population !)

  • Voici une formule à copier coller pour calculer l'intervalle de confiance d'un échantillon :

  • Cette fonction, int_ech() nécessite les modules scipy et statistics que l'on peut installer en tapant la commande suivante dans la console windows

python -m pip install --user scipy statistics

  • Puis il suffira de copier-coller le code ci-dessous dans la console python :

from scipy.stats import t

from scipy import sqrt

from statistics import variance, mean

def int_ech(values,conf=0.95) :

n = len(values)

m = mean(values)

s = variance(values)

proba = (1-conf)*100 ; proba = (100-proba/2)/100

ddl = n - 1

intervalle = sqrt(s/n) * t.ppf(proba, ddl)

return(intervalle)

Remarque importante : la fonction variance du module statistics a été utilisée comme pertinente (les modules scipy (éviter les fonctions var et sem) ou numpy ne renvoient pas des écart-types et variances classiques pour un échantillon car elles font ces calculs pour une population : cela risque de fausser les calculs de plus d'un).

  • Voici un exemple d'utilisation de cette fonction int_ech()

X1 = [1,3,4,2,1] ; print( int_ech(X1) ) # intervalle de confiance à 95% avec python par défaut

int_ech(X1,0.99)# Intervalle de confiance à 99% avec python

Intervalles de confiance d'une population (attention : pas d'un échantillon !)

  • Voici une formule à copier coller pour calculer l'intervalle de confiance d'une population :

  • Cette fonction, int_pop() nécessite les modules scipy, math et statistics :

from statistics import *

from scipy.stats import norm

from math import *

  • Il suffira de copier-coller le code ci-dessous dans la console python :

def int_pop(vector,conf_level=0.95, sigma=[]) :

# vector : un échantillon

# sigma : écart-type de la population

if (len(sigma)==0) :

sigma=stdev(vector)

n = len(vector)

proba =(100-(((1-conf_level)*100)/2))/100

z = norm.ppf(proba) ; # Récupération des quantiles de la loi normale ==> Par exemple : si on veut englober 95% des valeurs : estimer la variabilité de la population en prenant le risque de négliger 5% de celle-ci, spot 2,5% en tête de distribution

intervalle = z*sigma/sqrt(n)

#moyenne = mean(vector)

return(intervalle)

  • Voici un exemple d'utilisation de cette fonction int_pop()

X1 = [1,3,4,2,1] ; print( int_pop(X1) ) # intervalle de confiance à 95% avec python par défaut

int_pop(X1,0.99)# Intervalle de confiance à 99% avec python

Intervalles de confiance sur des proportions (ou pourcentages)

  • Voici une formule à copier coller pour calculer l'intervalle de confiance d'une proportion (PROPORTION) :

  • Cette fonction, int_prop() nécessite les modules scipy, math et statistics :

from statistics import *

from scipy.stats import norm

from math import *

def int_prop(proportion,n,conf_level=0.95) :

# Il faut donner une proportion entre 0 et 1 et une taille d'échantillon

# proportion peut aussi correspondre à une liste de proportions

nombre_proportions = len(proportion)

P = proportion

proba = (1-((1-conf_level)/2))

IC = []

for i in range(0,nombre_proportions) :

IC.append(norm.ppf(proba)*sqrt(P[i]*(1-P[i])/n) )

return(IC)

  • Voici un exemple d'utilisation de cette fonction int_prop()

print( int_prop([0.75,0.25], 200) )

# intervalle de confiance à 95% avec python sur ces proportions de 75% et 25% établies sur un échantillon de 200 individus.


int_prop([0.8],100,0.99)# Intervalle de confiance à 99% avec python sur une proportion de 80% établie sur un total de 100 individus.