Fluctuation de fréquence et d’échantillonnage. Statistique et probabilité

En statistique, la fréquence est le rapport entre le nombre d’issues favorable à un évènement et le nombre total des issues. (ou la population totale). La fluctuation de fréquence est un phénomène que l’on peut rencontrer lorsqu’on fait des calculs de probabilité. (Voire cours de statistique)

Dans ce cours de mathématique nous allons voir les éléments suivants :

  • Les paramètres qui influent sur la fluctuation de fréquence.
  • Les effets de la fluctuation de fréquence sur les résultats d’un calcul de probabilité
  • Comment faire pour faire des probabilités fiables
  • Et en fin de cours nous allons travailler sur un script python pour simuler un phénomène aléatoire afin de mettre en évidence la fluctuation de fréquence.

Fluctuation de fréquence dans une expérience aléatoire

Imaginons que j’ai dans une urne 4 boules de forme identique mais de couleurs différentes (rouge, bleu, noir et vert). Les boules ne sont pas identifiables au touché. Si je ferme les yeux et je tire au hasard une boule, théoriquement chacune des boules a une probabilité de ¼ = 0,25 = 25% d’être tirée.

fluctuation de fréquence

Alors si cette probabilité est juste, le fait de tirer 20 fois une boule au hasard, chaque boule devra être tirée exactement 5 fois. 

Voici les résultats d’un tirage au hasard de 20 fois.

  • Noir     Bleu     Vert     Bleu
  • Vert     Vert     Vert     Noir
  • Noir     Bleu     Vert     Bleu
  • Bleu    Rouge  Vert     Noir
  • Rouge Bleu     Bleu     Bleu

Comme on peut le constater, les fréquences de tirage des boules ne sont pas toutes les mêmes. Les boules bleues sortent plus (8 fois) que les vertes (6 fois). Les noires sont sorties 4 fois et les rouges 2 fois.

Fréquence théorique

La probabilité de tirer au hasard une des boules est égale à 0,25. La probabilité est aussi appelée fréquence théorique. On remarque donc que pratiquement et avec un échantillon de 20 tirages, les fréquences réelles ne sont pas égales à la fréquence théorique. 

Voici le tableau correspondant à cet échantillon :

CouleurNoir Bleu Rouge Vert Total 
Effectif 482620
Fréquence 4/20 = 0,20,40,10,31

Calcul de l’étendu :

L’étendu est la différence entre la plus grande et la plus petite valeur de fréquence. Dans ce cas précis, l’étendu = 0,4 – 0,1 = 0,3. 

C’est un écart très important. C’est même plus grand que la fréquence théorique.

Fluctuation d’échantillonnage 

On peut se poser la question suivante : si on refait un autre tirage avec un échantillon égal à 20, que se passerait il ?

On remarque que pour un même échantillon on peut avoir différentes fréquences, et donc différentes valeurs pour les étendus. 

Fluctuation d’échantillonnage

Ce phénomène s’appelle la fluctuation d’échantillon. Et il est observé lorsqu’on étudie le même caractère sur plusieurs échantillons de même taille et d’une même population. Et quand on observe que les résultats changent selon l’échantillon.

Fluctuation de fréquence

Prenons maintenant l’ensemble des expériences réalisées. Il y a eu au total 80 tirages (4 échantillons de 20). Ce qui revient à considérer un échantillon plus grand de 80. Voici le tableau correspondant à cet échantillon :

CouleurNoir Bleu Rouge Vert Total 
Effectif 21192515100
Fréquence 0,26250,23750,31250,18751
Étendu 0,3125 – 0,1875 = 0,125

Ce que l’on peut remarquer c’est que l’étendu a beaucoup baissé par rapport aux expériences effectuées avec des échantillons plus petits.

Alors on peut émettre l’hypothèse suivante : est ce qu’en augmentant encore plus la taille de l’échantillon on peut réduire encore la valeur de l’étendu. 

Algorithme et script python pour mesurer la fluctuation de fréquence

On peut simuler cette expérience aléatoire en utilisant un script python. Voici un algorithme qui permet de faire cela :

  • Initialiser un compteur qui compte le nombre de fois les couleurs tirées
  • Fixer une taille de l’échantillon
  • Répéter autant de fois que la taille de l’échantillon les deux instructions suivantes :
    • Choisir aléatoirement une couleur de la liste de 4 couleurs
    • Incrémenter le nombre de fois que chaque couleur a été tirée
  • Afficher le compteur

Et voici le script python qui permet de faire cette expérience aléatoire :

from random import *
conteur = {"Rouge":0, "Bleu":0, "Noir":0, "Vert":0}
echantillon = 1000
for i in range(echantillon):
    x = choice(list(conteur.keys()))
    conteur[x] +=1
print(conteur)

Description du script python

Alors pour effectuer cette expérience aléatoire j’ai utilisé la fonction choice de la bibliothèque random. Pour plus de détails sur cette bibliothèque et ses fonctions, on peut consulter l’article qui détaille les cinq plus importantes fonctions pour simuler le hasard.

Ensuite pour stocker les résultats de l’expérience aléatoire, j’ai préféré utiliser une variable de type dictionnaire. Je trouve que c’est plus pratique d’utiliser ce type car il permet de centraliser les résultats dans une seule variable et de réduire ainsi la taille du sript. Pour plus de détail sur l’utilisation des dictionnaires on peut consulter la documentation officielle de python. Les dictionnaires sont indexés par des clés qui peuvent être de n’importe quel type.

L’attribut .keys() qui est appliqué au dictionnaire permet de créer une liste avec toutes les clés du dictionnaire.

Le résultat que j’ai obtenu avec ce programme python avec un échantillon de 1000 tirages est le suivant :

{‘Rouge’: 262, ‘Bleu’: 250, ‘Noir’: 252, ‘Vert’: 236}.

Aussi, il est judicieux d’ajouter à la fin du programme précédent, les lignes de codes suivantes qui permettent de calculer les fréquences.

Code python pour le calcul de fréquence :

print("Echantillon : ", echantillon)

print("Effectifs : ", conteur)

frequences = {}

for k in conteur.keys():

    frequences[k] = conteur[k]/echantillon

max_f = max([frequences[f] for f in frequences.keys()])

min_f = min([frequences[f] for f in frequences.keys()])

etendu = max_f - min_f

print("Fréquences : ", frequences)

print("Etendu : ", etendu)

Et finalement on obtient le résultat suivant pour plusieurs  échantillons de tailles différentes :

Échantillon :  1000

Effectifs :  {‘Rouge’: 219, ‘Bleu’: 260, ‘Noir’: 255, ‘Vert’: 266}

Fréquences :  {‘Rouge’: 0.219, ‘Bleu’: 0.26, ‘Noir’: 0.255, ‘Vert’: 0.266}

Étendu :  0.047

Echantillon :  5000

Effectifs :  {‘Rouge’: 1230, ‘Bleu’: 1230, ‘Noir’: 1253, ‘Vert’: 1287}

Fréquences :  {‘Rouge’: 0.246, ‘Bleu’: 0.246, ‘Noir’: 0.251, ‘Vert’: 0.257}

Etendu :  0.011

Echantillon :  10000

Effectifs :  {‘Rouge’: 2560, ‘Bleu’: 2491, ‘Noir’: 2481, ‘Vert’: 2468}

Fréquences :  {‘Rouge’: 0.256, ‘Bleu’: 0.249, ‘Noir’: 0.248, ‘Vert’: 0.247}

Etendu :  0.009

Echantillon :  100000

Effectifs :  {‘Rouge’: 25091, ‘Bleu’: 25087, ‘Noir’: 25089, ‘Vert’: 24733}

Fréquences :  {‘Rouge’: 0.251, ‘Bleu’: 0.251, ‘Noir’: 0.251, ‘Vert’: 0.247}

Etendu :  0.004

Echantillon :  1000000

Effectifs :  {‘Rouge’: 250835, ‘Bleu’: 250068, ‘Noir’: 250301, ‘Vert’: 248796}

Fréquences :  {‘Rouge’: 0.251, ‘Bleu’: 0.25, ‘Noir’: 0.25, ‘Vert’: 0.249}

Etendu :  0.002

Donc on remarque que plus l’échantillon est grand, plus l’étendu des fréquences diminue et plus les fréquences deviennent stables et tendent vers la fréquence théorique.

Exercice de fluctuation de fréquence

Pour ceux qui veulent aller encore plus loin, voici un exercice qui reprend les principes et notions vus dans ce cours.

Lors d’un jet d’une pièce de monnaie, il y a 50% de chance de tomber sur face et 50% de chance de tomber sur pile. Simuler cette expérience avec un script python et tracer le résultat sous forme d’un diagramme en secteur.

Voici un exemple de visuel que l’on peut afficher.

Voilà encore un exemple qui illustre la fluctuation de fréquence. Et le fait de plus on augmente le nombre d’échantillon plus on tend vers la probabilité ou la fréquence théorique.

Et une autre image qui illustre la fluctuation d’échantillonnage avec un échantillon de 20 lancers.

Si vous avez aimé l'article vous êtes libre de le partager :)

Laisser un commentaire