Campionamento stratificato in r (con esempi)
I ricercatori spesso prelevano campioni da una popolazione e utilizzano i dati del campione per trarre conclusioni sulla popolazione nel suo insieme.
Un metodo di campionamento comunemente utilizzato è il campionamento casuale stratificato , in cui una popolazione viene divisa in gruppi e un certo numero di membri di ciascun gruppo vengono selezionati casualmente per essere inclusi nel campione.
Questo tutorial spiega come eseguire il campionamento casuale stratificato in R.
Esempio: campionamento stratificato in R
Una scuola superiore è composta da 400 studenti che sono matricole, seconde, junior o senior. Supponiamo di voler prendere un campione stratificato di 40 studenti, in modo che nel campione siano inclusi 10 studenti per ogni classe.
Il codice seguente mostra come generare un frame di dati di esempio di 400 studenti:
#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) gpa grade 1 Freshman 83.12064 2 Freshman 85.55093 3 Freshman 82.49311 4 Freshman 89.78584 5 Freshman 85.98852 6 Freshman 82.53859
Campionamento stratificato utilizzando i conteggi delle righe
Il codice seguente mostra come utilizzare le funzioni group_by() e sample_n() dal pacchetto dplyr per ottenere un campione casuale stratificato di 40 studenti totali con 10 studenti per ciascuna classe:
library (dplyr) #obtain laminated 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
Campionamento stratificato utilizzando frazione di righe
Il codice seguente mostra come utilizzare le funzioni group_by() e sample_frac() dal pacchetto dplyr per ottenere un campione casuale stratificato da cui selezioniamo casualmente il 15% degli studenti di ciascuna classe:
library (dplyr) #obtain laminated 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
Risorse addizionali
Tipi di metodi di campionamento
Campionamento a grappolo in R
Campionamento sistematico in R