การสุ่มตัวอย่างแบบแบ่งชั้นภูมิ

การวิเคราะห์ข้อมูลแบบสำรวจด้วย Python

EbunOluwa Andrew

Data Scientist

การสุ่มตัวอย่างแบบแบ่งชั้นภูมิคืออะไร

  • การสุ่มแบบแบ่งชั้นภูมิสะท้อนประชากรได้ดีกว่า
  • แบ่งประชากรออกเป็นหน่วยย่อย (strata) ตามคุณลักษณะที่คล้ายกัน
  • ปรับสัดส่วนของตัวอย่างให้ตรงกับประชากร

การเปลี่ยนแปลงทางประชากรศาสตร์ที่สะท้อนความหลากหลายในกลุ่มคน

การวิเคราะห์ข้อมูลแบบสำรวจด้วย Python

ทำไมต้องใช้การสุ่มแบบแบ่งชั้นภูมิ?

  • ลดความลำเอียงในการเลือกตัวอย่าง
  • เพิ่มความเป็นตัวแทนของกลุ่มประชากรเฉพาะ
  • ตัวอย่างการใช้งาน:
    • ประมาณรายได้ของประชากรกลุ่มต่าง ๆ
    • ประมาณผลการเลือกตั้ง
    • ประมาณอายุขัย

มือที่ถือเครื่องนับจำนวนคน

การวิเคราะห์ข้อมูลแบบสำรวจด้วย Python

เมื่อใดไม่ควรใช้การสุ่มแบบแบ่งชั้นภูมิ

  • กลุ่มย่อยต้องไม่ทับซ้อนกัน
    • หากผู้ตอบอยู่ในหลายกลุ่ม -> เกิดการแทนค่าที่ผิดพลาด
  • ตัวอย่างการทับซ้อนในคำถามสำรวจ
    • ทำงานในตำแหน่งปัจจุบันมานานเท่าใด?
      • 1-2 ปี
      • 2-4 ปี

ผู้หญิงกำลังคิด

การวิเคราะห์ข้อมูลแบบสำรวจด้วย Python

ผลสำรวจการทำงาน onsite ที่บริษัท 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...