Стратифицированная случайная выборка

Анализ данных опросов на 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...