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