R의 계층화된 샘플링(예제 포함)
연구자들은 종종 모집단에서 표본을 채취하고 표본의 데이터를 사용하여 모집단 전체에 대한 결론을 도출합니다.
일반적으로 사용되는 샘플링 방법은 계층화 무작위 샘플링 으로, 모집단을 그룹으로 나누고 각 그룹에서 특정 수의 구성원을 무작위로 선택하여 표본에 포함시킵니다.
이 튜토리얼에서는 R에서 계층화된 무작위 샘플링을 수행하는 방법을 설명합니다.
예: R의 계층화된 샘플링
고등학교는 신입생, 2학년, 3학년, 4학년 학생 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
행 개수를 사용한 계층화된 샘플링
다음 코드는 dplyr 패키지의 group_by() 및 Sample_n() 함수를 사용하여 각 학년에서 10명의 학생으로 구성된 총 40명의 학생으로 구성된 계층화된 무작위 표본을 얻는 방법을 보여줍니다.
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
행의 일부를 사용한 계층화된 샘플링
다음 코드는 dplyr 패키지의 group_by() 및 Sample_frac() 함수를 사용하여 각 학년의 학생 중 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