Gestratificeerde bemonstering in r (met voorbeelden)
Onderzoekers nemen vaak steekproeven uit een populatie en gebruiken de gegevens uit de steekproef om conclusies te trekken over de populatie als geheel.
Een veelgebruikte steekproefmethode is de gestratificeerde willekeurige steekproef , waarbij een populatie in groepen wordt verdeeld en een bepaald aantal leden uit elke groep willekeurig wordt geselecteerd om in de steekproef te worden opgenomen.
In deze zelfstudie wordt uitgelegd hoe u gestratificeerde willekeurige steekproeven uitvoert in R.
Voorbeeld: gestratificeerde bemonstering in R
Een middelbare school bestaat uit 400 studenten die eerstejaars, tweedejaars, junior of senior zijn. Stel dat we een gestratificeerde steekproef van 40 leerlingen willen nemen, zodat uit elke klas 10 leerlingen in de steekproef worden opgenomen.
De volgende code laat zien hoe u een voorbeeldgegevensframe van 400 studenten genereert:
#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
Gestratificeerde bemonstering met behulp van rijtellingen
De volgende code laat zien hoe u de functies group_by() en sample_n() uit het dplyr- pakket kunt gebruiken om een gestratificeerde willekeurige steekproef van in totaal 40 leerlingen te verkrijgen met 10 leerlingen uit elke klas:
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
Gestratificeerde bemonstering met behulp van een fractie van rijen
De volgende code laat zien hoe u de functies group_by() en sample_frac() uit het dplyr- pakket kunt gebruiken om een gestratificeerde willekeurige steekproef te verkrijgen waaruit we willekeurig 15% van de leerlingen in elke klas selecteren:
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
Aanvullende bronnen
Soorten bemonsteringsmethoden
Clusterbemonstering in R
Systematische bemonstering in R