Échantillonnage aléatoire simple et systématique

L’échantillonnage en Python

James Chapman

Curriculum Manager, DataCamp

Échantillonnage aléatoire simple

Une main tire un papier plié d’une urne de tombola.

Boules de loterie en mouvement.

L’échantillonnage en Python

Échantillonnage aléatoire simple de cafés

Grains de café disposés en lignes et colonnes.

Grains de café en lignes et colonnes, dont certains sont grisés.

L’échantillonnage en Python

Échantillonnage aléatoire simple avec pandas

coffee_ratings.sample(n=5, random_state=19000113)
     total_cup_points         variety country_of_origin  aroma  flavor  \
437             83.25            None          Colombia   7.92    7.75   
285             83.83  Yellow Bourbon            Brazil   7.92    7.50   
784             82.08            None          Colombia   7.50    7.42   
648             82.58         Caturra          Colombia   7.58    7.50   
155             84.58         Caturra          Colombia   7.42    7.67  

     aftertaste  body  balance  
437        7.25  7.83     7.58  
285        7.33  8.17     7.50  
784        7.42  7.67     7.42  
648        7.42  7.67     7.42  
155        7.75  8.08     7.83 
L’échantillonnage en Python

Échantillonnage systématique

Grains de café disposés en lignes et colonnes.

Grains de café en lignes et colonnes, la plupart grisés sauf ceux sur une diagonale.

L’échantillonnage en Python

Échantillonnage systématique - définir l’intervalle

sample_size = 5

pop_size = len(coffee_ratings)
print(pop_size)
1338
interval = pop_size // sample_size

print(interval)
267
L’échantillonnage en Python

Échantillonnage systématique - sélectionner les lignes

coffee_ratings.iloc[::interval]
      total_cup_points  variety country_of_origin  aroma  flavor  aftertaste  \
0                90.58     None          Ethiopia   8.67    8.83        8.67   
267              83.92     None          Colombia   7.83    7.75        7.58   
534              82.92  Bourbon       El Salvador   7.50    7.50        7.75   
801              82.00   Typica            Taiwan   7.33    7.50        7.17   
1068             80.50    Other            Taiwan   7.17    7.17        7.17   

      body  balance  
0     8.50     8.42  
267   7.75     7.75  
534   7.92     7.83  
801   7.50     7.33  
1068  7.17     7.25  
L’échantillonnage en Python

Le problème de l’échantillonnage systématique

coffee_ratings_with_id = coffee_ratings.reset_index()
coffee_ratings_with_id.plot(x="index", y="aftertaste", kind="scatter")
plt.show()

Nuage de points des scores d’aftertaste selon les index.

L’échantillonnage systématique n’est sûr que si aucun motif n’apparaît sur ce nuage de points

L’échantillonnage en Python

Sécuriser l’échantillonnage systématique

shuffled = coffee_ratings.sample(frac=1)

shuffled = shuffled.reset_index(drop=True).reset_index()
shuffled.plot(x="index", y="aftertaste", kind="scatter") plt.show()

Nuage de points des scores d’aftertaste selon les index après mélange du jeu de données.

Mélanger les lignes + échantillonnage systématique équivaut à un échantillonnage aléatoire simple

L’échantillonnage en Python

Passons à la pratique !

L’échantillonnage en Python

Preparing Video For Download...