====== Échantillonnage ====== On part d'une loi de probabilité quelconque. On souhaite observer ce qui se passe quand on prélève des échantillons et qu'on calcule des moyennes. ===== Loi quelconque ===== Dans le code ci-dessous, on définit une table ''DATA'' qui donne une certaine répartition. Vous voyez qu'il n'y a pas de 9, qu'il y a beaucoup de 12... cela définit la probabilités d'obtenir les différentes valeurs. # echantillonnage.py import numpy as np import matplotlib.pyplot as plt from random import choice DATA = (1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 10, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 19, 19) print("moyenne pop :", np.mean(DATA)) print("écart-type pop :", np.std(DATA)) valeurs, effectifs = np.unique(DATA , return_counts=True) plt.bar(valeurs, effectifs) plt.show() Le graphique vous donne un aperçu de la répartition des valeurs dans cette population. Notez les valeurs de la moyenne et de l'écart-type. Quand vous aurez vu le graphique, vous pourrez supprimer les 3 dernières lignes du code. def alea(): """ renvoie un nombre aléatoire entre 0 et 20 selon la répartition de DATA """ return choice(DATA) ===== Échantillon de taille n ===== On veut une relève un échantillon de taille n. def echantillon(n:int): """ renvoie un tableau contenant n valeur prise aléatoirement """ # à vous ===== Beaucoup d'échantillons ===== On va prélever beaucoup d'échantillons d'une certaine taille ''n'', pour chaque échantillon on va calculer la moyenne, puis on va représenter sur histogramme les moyennes trouvées. n = 10 # choix de n resultats = [] for i in range(1000): e = echantillon(n) m = np.mean(e) resultats.append(m) print("moyenne des moyenne :", np.mean(resultat)) print("écart type :", np.std(resultat)) plt.hist(resultats, density = True) plt.show() Vous pouvez changer la valeur de ''n'' pour voir l'effet sur le résultat. Vous pouvez aussi faire le même travail sur les écarts-types.