Échantillonnage aléatoire simple et systématique

Échantillonnage en Python

James Chapman

Curriculum Manager, DataCamp

Échantillonnage aléatoire simple

Une main pige un papier plié dans un bocal de tirage.

Boules de loterie en mouvement.

Échantillonnage en Python

Échantillonnage aléatoire simple de cafés

Grains de café disposés en rangées et en colonnes.

Grains de café disposés en rangées et en colonnes, dont certains sont grisés.

É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 
Échantillonnage en Python

Échantillonnage systématique

Grains de café disposés en rangées et en colonnes.

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

É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
É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  
É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'arrière-goût selon les indices.

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

Échantillonnage en Python

Rendre l'échantillonnage systématique sécuritaire

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'arrière-goût selon les indices après avoir mélangé l'ensemble de données.

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

Échantillonnage en Python

Passons à la pratique !

Échantillonnage en Python

Preparing Video For Download...