Стратифицированная выборка в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *