층화 임의 추출
데이터가 중첩 없이 분할될 수 있는 경우(즉, 서로 교집합이 없는 집합들로 나뉠 수 있는 경우) 그리고 각 분할의 성격이 명확히 다른 경우 층화 임의 추출Stratified Random Sampling을 수행하여 더 정확한 분석 결과를 얻을 수 있다.
예를 들어, 남성 20%, 여성 80%로 구성된 집단이 있을 때 이 집단의 일부를 표본으로 뽑아 키를 측정한 뒤 전체 집단의 평균 키를 예상한다고 가정해보자. 성별에 따라 키의 차이가 존재할 것이므로, 성별을 고려하여 표본을 추출하는 것이 중요할 것이다. 그런데 단순 임의 추출을 이 데이터에 적용하게 되면 전체 데이터로부터 각 데이터를 같은 확률로 뽑는다. 그 결과 남성이 우연히 20%보다 많이 추출되거나 적게 추출될 수 있다. 이렇게 뽑힌 표본에서 평균 키를 계산하게 되면 평균 키가 집단의 실제 평균보다 우연히 작거나 크게 추정될 위험이 있다.
이 데이터의 경우 남성 데이터와 여성 데이터를 떼놓고 각각으로부터 표본을 추출함으로써 남성과 여성의 표본 비율을 20% : 80%로 유지할 수 있다. 이를 층화 임의 추출이라 하며 데이터를 남성, 여성으로 분할한 것을 ‘층’이라고 부른다.
층화 임의 추출을 하게 되면 뽑힌 남성의 표본을 사용해 남성 키의 평균을 추정할 수 있고, 여성 표본을 사용해 여성 키의 평균을 추정할 수 있다는 장점이 있다. 다시 말해 전체 평균뿐만 아니라 층별(성별) 평균 키의 추정이 가능해진다. 더 자세한 설명은 참고자료 [4]를 참고하기 바란다.
층화 임의 추출은 sampling::strata( ) 함수를 사용한다.
sampling::strata : 주어진 데이터에 대해 층화 임의 추출을 수행한다. |
sampling::strata( data, # 데이터 프레임 또는 행렬 stratanames=NULL, # 층화 추출에 사용할 변수들 size, # 각 층의 크기 # method는 데이터를 추출하는 방법으로, 다음 4가지 중 하나로 지정한다. # - srswor : 비복원 단순 임의 추출(Simple Random Sampling WithOut Replacement) # - srswr : 복원 단순 임의 추출(Simple Random Sampling With Replacement) # - poisson : 포아송 추출 # - systematic : 계통 추출 method=c("srswor", "srswr", "poisson", "systematic"), pik, # 각 데이터를 표본에 포함할 확률 description=FALSE # TRUE면 표본의 크기와 모집단의 크기를 출력한다. ) 반환 값은 ID_unit(선택된 유닛에 대한 식별자), Stratum(유닛 층), Prob(유닛을 포함할 확률)를 저장한 객체다. |
sampling::getdata : 표본 추출을 수행한 뒤 데이터 프레임으로부터 값을 추출한다. |
sampling::getdata(
data,
m # 선택된 유닛에 대한 벡터 또는 표본 데이터 프레임
)
반환 값은 표본으로 선택된 데이터다. |
각 데이터의 추출 확률을 다르게 설정하고 각 데이터를 독립적으로 추출하는 경우다. 예를 들어, N개의 데이터를 뽑을 때 각 데이터가 뽑힐 확률을 λ1, λ2, ..., λN으로 놓아 각각 독립적으로 추출하는 경우를 말한다. 참고자료 [5]를 참고하기 바란다.