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

 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.