Menu
CoddyTech

Les moyennes d’échantillon varient

Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 20 sur 64.

Un échantillon de 30 colis donne une estimation de leur poids moyen. Faites un nouveau tirage et vous en obtenez une autre. Voici 40 échantillons :

40 points, un par échantillon de 30 colis, dispersés entre environ 7,2 et 8,8 kg autour d’une ligne pointillée indiquant la moyenne réelle de tous les colis, soit 8,05 kg

Pour les collecter, répète l’échantillonnage dans une boucle, ajoute chaque moyenne à une liste, puis transforme la liste en tableau :

means = []
for i in range(5):
    sample = rng.choice(parcels, size=30, replace=False)
    means.append(sample.mean())
means = np.array(means)
print(np.round(means, 2))

Cela affiche :

[7.98 8.05 8.12 8.19 8.76]

Une moyenne d’échantillon est elle-même aléatoire, et means.std() mesure l’ampleur de ses variations. Le score de test d’un modèle est une telle moyenne : un autre jeu de test le ferait varier.

challenge icon

Défi

Moyen

Un jardinier mesure chaque semaine un échantillon aléatoire des 1800 plants de bambou d’une pépinière. De combien la moyenne de l’échantillon peut-elle varier d’une semaine à l’autre ?

Complète sample_means(data, size, count) : tire count échantillons de size valeurs de data, sans prendre deux fois la même valeur dans un échantillon, et ajoute la moyenne de chaque échantillon. Les dernières lignes du code de départ appellent cette fonction et affichent le rapport.

Pour une autre pépinière et des échantillons de 10 :

200 means of 10 plants: 105.25 to 137.13 cm
Spread of the means (std): 5.27 cm

Essayez vous-même

import numpy as np

size = int(input())

# Ne modifiez pas les lignes ci-dessous : la hauteur en cm de chaque plant de bambou
rng = np.random.default_rng(20)
heights = np.round(rng.normal(95, 15, size=1800), 1)


def sample_means(data, size, count):
    means = []
    # Écrivez votre code ci-dessous : prélevez count échantillons de size valeurs et conservez chaque moyenne

    return np.array(means)


# Ne modifiez pas les lignes ci-dessous
means = sample_means(heights, size, 200)
print(f"200 means of {size} plants: {np.round(means.min(), 2)} to {np.round(means.max(), 2)} cm")
print(f"Spread of the means (std): {np.round(means.std(), 2)} cm")
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Statistiques pour le ML

Entraînez-vous par vous-même : Compilateur Python en ligne