Eșantionare aleatorie stratificată

Analiza datelor din sondaje în Python

EbunOluwa Andrew

Data Scientist

Ce este eșantionarea aleatorie stratificată

  • Eșantionarea stratificată reflectă mai bine populația
  • Tehnica în care populația este împărțită în unități discrete (straturi) pe baza unor atribute comune
  • Presupune reeșantionarea datelor astfel încât proporțiile să corespundă populației

Schimbare demografică ilustrând diversitatea unei populații

Analiza datelor din sondaje în Python

De ce se folosește eșantionarea aleatorie stratificată?

  • Minimizează eroarea de selecție
  • Crește reprezentativitatea anumitor grupuri din populație
  • Exemple:
    • Estimarea venitului pentru populații diverse
    • Estimarea rezultatelor alegerilor
    • Estimarea speranței de viață

Contor de numărare manuală a persoanelor

Analiza datelor din sondaje în Python

Când nu se folosește eșantionarea aleatorie stratificată

  • Subgrupurile nu trebuie să se suprapună
    • Subiecții care aparțin mai multor grupuri -> reprezentare incorectă
  • Exemplu de suprapunere într-o întrebare de sondaj
    • De cât timp lucrați la locul actual de muncă?
      • 1-2 ani
      • 2-4 ani

Femeie gândindu-se

Analiza datelor din sondaje în Python

Rezultatele sondajului privind munca la birou la firma 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         |

Analiza datelor din sondaje în Python

Verificarea proporțiilor în populație

survey.gender.value_counts(normalize=True)
Female    0.556
Male      0.444
Name: gender, dtype: float64
Analiza datelor din sondaje în Python

Reprezentarea grafică a proporțiilor

import pandas as pd
import matplotlib.pyplot as plt

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

Raportul femei-bărbați în sondaj

Analiza datelor din sondaje în Python

Exemplu de eșantionare stratificată

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         |

Analiza datelor din sondaje în Python

Verificarea proporțiilor în eșantion

Populația originală

survey.gender.value_counts(normalize=True)

Eșantion stratificat

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
Analiza datelor din sondaje în Python

Să exersăm!

Analiza datelor din sondaje în Python

Preparing Video For Download...