Échantillonnage aléatoire stratifié

Analyser des données de sondage avec Python

EbunOluwa Andrew

Data Scientist

Qu'est-ce que l'échantillonnage aléatoire stratifié ?

  • L'échantillonnage stratifié reflète mieux la {{1}} de la population
  • La population est divisée en unités distinctes (strates) selon des attributs similaires
  • On rééchantillonne les données pour que les proportions correspondent à la population

Changements démographiques illustrant l'évolution de la diversité d'une population

Analyser des données de sondage avec Python

Pourquoi utiliser l'échantillonnage aléatoire stratifié ?

  • Réduit le biais de sélection
  • Améliore la représentativité de certains groupes
  • Exemples :
    • Estimer le revenu pour des populations variées
    • Estimer des résultats de sondages électoraux
    • Estimer l'espérance de vie

Compteur manuel pour dénombrer des personnes

Analyser des données de sondage avec Python

Quand ne pas utiliser l'échantillonnage aléatoire stratifié

  • Les sous-groupes ne doivent pas se chevaucher
    • Sujets appartenant à plusieurs groupes -> mauvaise représentation
  • Exemple de chevauchement dans une question de sondage
    • Depuis combien de temps travaillez-vous à votre emploi actuel ?
      • 1-2 ans
      • 2-4 ans

femme qui réfléchit

Analyser des données de sondage avec Python

Résultats du sondage sur le travail sur place chez 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         |

Analyser des données de sondage avec Python

Vérifier les proportions dans la population

survey.gender.value_counts(normalize=True)
Female    0.556
Male      0.444
Name: gender, dtype: float64
Analyser des données de sondage avec Python

Tracer les proportions de la population

import pandas as pd
import matplotlib.pyplot as plt

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

Ratio femmes-hommes dans le sondage

Analyser des données de sondage avec Python

Exemple d'échantillonnage stratifié

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         |

Analyser des données de sondage avec Python

Vérifier les proportions dans l'échantillon

Population d'origine

survey.gender.value_counts(normalize=True)

Échantillon stratifié

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
Analyser des données de sondage avec Python

Passons à la pratique !

Analyser des données de sondage avec Python

Preparing Video For Download...