Стратифікована вибірка в 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
Систематична вибірка в Р

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *