Échantillonnage stratifié dans R (avec exemples)



Les chercheurs prélèvent souvent des échantillons dans une population et utilisent les données de l’échantillon pour tirer des conclusions sur la population dans son ensemble.

Une méthode d’échantillonnage couramment utilisée est l’échantillonnage aléatoire stratifié , dans lequel une population est divisée en groupes et un certain nombre de membres de chaque groupe sont sélectionnés au hasard pour être inclus dans l’échantillon.

Ce tutoriel explique comment effectuer un échantillonnage aléatoire stratifié dans R.

Exemple : échantillonnage stratifié dans R

Un lycée est composé de 400 étudiants qui sont soit des étudiants de première année, soit des étudiants de deuxième année, des juniors ou des seniors. Supposons que nous souhaitions prendre un échantillon stratifié de 40 élèves, de sorte que 10 élèves de chaque année soient inclus dans l’échantillon.

Le code suivant montre comment générer un exemple de bloc de données de 400 étudiants :

#make this example reproducible
set.seed(1)

#create data frame
df <- data.frame(grade = rep(c('Freshman', 'Sophomore', 'Junior', 'Senior'), each=100),
                 gpa = rnorm(400, mean=85, sd=3))

#view first six rows of data frame
head(df)

     grade      gpa
1 Freshman 83.12064
2 Freshman 85.55093
3 Freshman 82.49311
4 Freshman 89.78584
5 Freshman 85.98852
6 Freshman 82.53859

Échantillonnage stratifié en utilisant le nombre de lignes

Le code suivant montre comment utiliser les fonctions group_by() et sample_n() du package dplyr pour obtenir un échantillon aléatoire stratifié de 40 élèves au total avec 10 élèves de chaque année :

library(dplyr)

#obtain stratified sample
strat_sample <- df %>%
                  group_by(grade) %>%
                  sample_n(size=10)

#find frequency of students from each grade
table(strat_sample$grade)

 Freshman    Junior    Senior Sophomore 
       10        10        10        10 

Échantillonnage stratifié utilisant une fraction de lignes

Le code suivant montre comment utiliser les fonctions group_by() et sample_frac() du package dplyr pour obtenir un échantillon aléatoire stratifié dans lequel nous sélectionnons au hasard 15 % des élèves de chaque année :

library(dplyr)

#obtain stratified sample
strat_sample <- df %>%
                  group_by(grade) %>%
                  sample_frac(size=.15)

#find frequency of students from each grade
table(strat_sample$grade)

 Freshman    Junior    Senior Sophomore 
       15        15        15        15 

Ressources additionnelles

Types de méthodes d’échantillonnage
Échantillonnage en grappes dans R
Échantillonnage systématique dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *