층화 임의추출

Python으로 설문 데이터 분석하기

EbunOluwa Andrew

Data Scientist

층화 임의추출이란?

  • 층화추출은 모집단을 더 잘 반영합니다
  • 유사한 속성으로 모집단을 불연속 단위(층)로 나누는 기법
  • 표본 비율이 모집단과 일치하도록 재추출합니다

인구집단의 다양성 변화(큰 집단의 구성 변화)

Python으로 설문 데이터 분석하기

층화 임의추출을 쓰는 이유

  • 선택 편향을 최소화
  • 특정 집단의 대표성 향상
  • 예시:
    • 이질적 지역의 소득 추정
    • 선거 여론 추정
    • 기대수명 추정

휴대용 카운터로 인원 수를 세는 모습

Python으로 설문 데이터 분석하기

층화 임의추출을 쓰지 말아야 할 때

  • 하위 집단은 서로 겹치면 안 됩니다
    • 여러 집단에 속하면 왜곡 발생
  • 중복되는 설문 문항 예시
    • 현재 직장에서 근무한 기간은?
      • 1-2년
      • 2-4년

생각하는 여성

Python으로 설문 데이터 분석하기

ABC사의 출근 근무 설문 결과

| employee_id | gender | onsite_work |
|-------------|--------|-------------|
|    fffe6838 | Male   | Yes         |
|   fffe12184 | Female | Yes         |
|    fffe9404 | Female | Yes         |
|   fffe17578 | Male   | Yes         |
|   fffe22257 | Female | Yes         |
|    fffe6217 | Male   | Yes         |
|    fffe7828 | Female | Yes         |
|   fffe18192 | Male   | Yes         |
|    fffe2839 | Female | Yes         |
|   fffe16173 | Female | Yes         |

Python으로 설문 데이터 분석하기

모집단의 비율 확인

survey.gender.value_counts(normalize=True)
Female    0.556
Male      0.444
Name: gender, dtype: float64
Python으로 설문 데이터 분석하기

모집단 비율 시각화

import pandas as pd
import matplotlib.pyplot as plt

survey.gender.value_counts().plot.pie()

설문: 여성 대 남성 비율

Python으로 설문 데이터 분석하기

층화추출 예시

strat_sample = 
survey.groupby(
  'gender', group_keys = False).apply(
  lambda x: x.sample(frac = 0.1))
| employee_id | gender | onsite_work |
|-------------|--------|-------------|
|    fffe4934 | Female | Yes         |
|    fffe3958 | Female | Yes         |
|      fffe18 | Female | Yes         |
|     fffe283 | Female | Yes         |
|   fffe20382 | Female | Yes         |
|    fffe8721 | Male   | Yes         |
|    fffe5955 | Male   | Yes         |
|    fffe7081 | Male   | Yes         |
|     fffe353 | Male   | Yes         |
|    fffe1765 | Male   | Yes         |

Python으로 설문 데이터 분석하기

표본의 비율 확인

원 모집단

survey.gender.value_counts(normalize=True)

층화표본

strat_sample.gender.value_counts(
  normalize=True))
Female    0.556
Male      0.444
Name: gender, dtype: float64
Female    0.56
Male      0.44
Name: gender, dtype: float64
Python으로 설문 데이터 분석하기

연습해 봅시다!

Python으로 설문 데이터 분석하기

Preparing Video For Download...