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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *