Warstwowe losowanie próby

Analiza danych ankietowych w Pythonie

EbunOluwa Andrew

Data Scientist

Czym jest warstwowe losowanie próby?

  • Warstwowe losowanie lepiej odzwierciedla populację
  • Technika, w której populację dzieli się na warstwy według podobnych cech
  • Polega na doborze próby tak, aby proporcje odpowiadały populacji

Zmiana demograficzna jako duża grupa ludzi odzwierciedlająca różnorodność populacji

Analiza danych ankietowych w Pythonie

Dlaczego stosować warstwowe losowanie?

  • Minimalizuje błąd selekcji
  • Zwiększa reprezentatywność wybranych grup
  • Przykłady:
    • Szacowanie dochodów różnych populacji
    • Prognozowanie wyników wyborów
    • Szacowanie oczekiwanej długości życia

Ręczny licznik zliczający osoby

Analiza danych ankietowych w Pythonie

Kiedy nie stosować warstwowego losowania?

  • Podgrupy nie powinny się nakładać
    • Osoby należące do wielu grup -> błędna reprezentacja
  • Przykład nakładania się w pytaniu ankietowym
    • Jak długo pracuje Pan/Pani na obecnym stanowisku?
      • 1–2 lata
      • 2–4 lata

Zamyślona kobieta

Analiza danych ankietowych w Pythonie

Wyniki ankiety dotyczącej pracy stacjonarnej w firmie 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 danych ankietowych w Pythonie

Sprawdzenie proporcji w populacji

survey.gender.value_counts(normalize=True)
Female    0.556
Male      0.444
Name: gender, dtype: float64
Analiza danych ankietowych w Pythonie

Wizualizacja proporcji w populacji

import pandas as pd
import matplotlib.pyplot as plt

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

Stosunek kobiet do mężczyzn w ankiecie

Analiza danych ankietowych w Pythonie

Przykład warstwowego losowania

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 danych ankietowych w Pythonie

Sprawdzenie proporcji w próbie

Oryginalna populacja

survey.gender.value_counts(normalize=True)

Próba warstwowa

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 danych ankietowych w Pythonie

Czas na ćwiczenia!

Analiza danych ankietowych w Pythonie

Preparing Video For Download...