É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