더북(TheBook)

층화 임의 추출

데이터가 중첩 없이 분할될 수 있는 경우(즉, 서로 교집합이 없는 집합들로 나뉠 수 있는 경우) 그리고 각 분할의 성격이 명확히 다른 경우 층화 임의 추출Stratified Random Sampling을 수행하여 더 정확한 분석 결과를 얻을 수 있다.

예를 들어, 남성 20%, 여성 80%로 구성된 집단이 있을 때 이 집단의 일부를 표본으로 뽑아 키를 측정한 뒤 전체 집단의 평균 키를 예상한다고 가정해보자. 성별에 따라 키의 차이가 존재할 것이므로, 성별을 고려하여 표본을 추출하는 것이 중요할 것이다. 그런데 단순 임의 추출을 이 데이터에 적용하게 되면 전체 데이터로부터 각 데이터를 같은 확률로 뽑는다. 그 결과 남성이 우연히 20%보다 많이 추출되거나 적게 추출될 수 있다. 이렇게 뽑힌 표본에서 평균 키를 계산하게 되면 평균 키가 집단의 실제 평균보다 우연히 작거나 크게 추정될 위험이 있다.

이 데이터의 경우 남성 데이터와 여성 데이터를 떼놓고 각각으로부터 표본을 추출함으로써 남성과 여성의 표본 비율을 20% : 80%로 유지할 수 있다. 이를 층화 임의 추출이라 하며 데이터를 남성, 여성으로 분할한 것을 ‘층’이라고 부른다.

층화 임의 추출을 하게 되면 뽑힌 남성의 표본을 사용해 남성 키의 평균을 추정할 수 있고, 여성 표본을 사용해 여성 키의 평균을 추정할 수 있다는 장점이 있다. 다시 말해 전체 평균뿐만 아니라 층별(성별) 평균 키의 추정이 가능해진다. 더 자세한 설명은 참고자료 [4]를 참고하기 바란다.

층화 임의 추출은 sampling::strata( ) 함수를 사용한다.

표 7-8 층화 임의 추출

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  # 선택된 유닛에 대한 벡터 또는 표본 데이터 프레임
)

반환 값은 표본으로 선택된 데이터다.

<Note> 포아송 추출

각 데이터의 추출 확률을 다르게 설정하고 각 데이터를 독립적으로 추출하는 경우다. 예를 들어, N개의 데이터를 뽑을 때 각 데이터가 뽑힐 확률을 λ1, λ2, ..., λN으로 놓아 각각 독립적으로 추출하는 경우를 말한다. 참고자료 [5]를 참고하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.