Исследователи часто берут образцы из населения и используют данные из выборки, чтобы сделать выводы о населении в целом.
Одним из широко используемых методов выборки является стратифицированная случайная выборка , при которой население разбивается на группы, и определенное количество членов из каждой группы случайным образом отбирается для включения в выборку.
В этом руководстве объясняется, как выполнить стратифицированную случайную выборку в R.
Пример: стратифицированная выборка в R
Средняя школа состоит из 400 учеников, которые являются первокурсниками, второкурсниками, младшими или старшими. Предположим, мы хотим взять стратифицированную выборку из 40 учащихся, чтобы в выборку было включено по 10 учащихся каждого класса.
В следующем коде показано, как создать образец фрейма данных для 400 учащихся:
#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
Стратифицированная выборка с использованием количества строк
В следующем коде показано, как использовать функции group_by() и sample_n() из пакета dplyr для получения стратифицированной случайной выборки из 40 учащихся по 10 учащихся в каждом классе:
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
Стратифицированная выборка с использованием доли строк
В следующем коде показано, как использовать функции group_by() и sample_frac() из пакета dplyr для получения стратифицированной случайной выборки, в которой мы случайным образом выбираем 15% учащихся из каждого класса:
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
Дополнительные ресурсы
Типы методов отбора проб
Кластерная выборка в R
Систематическая выборка в R