Campionamento casuale stratificato

Analisi dei dati da sondaggio in Python

EbunOluwa Andrew

Data Scientist

Che cos’è il campionamento casuale stratificato

  • Lo stratificato riflette meglio la popolazione
  • Si divide la popolazione in unità (strati) con attributi simili
  • Si ri-campiona per far coincidere le proporzioni con la popolazione

Cambiamento demografico con maggiore diversità nella popolazione

Analisi dei dati da sondaggio in Python

Perché usare il campionamento casuale stratificato?

  • Riduce il bias di selezione
  • Aumenta la rappresentatività di certi gruppi
  • Esempi:
    • Stimare il reddito in popolazioni diverse
    • Stimare i sondaggi elettorali
    • Stimare l’aspettativa di vita

Contapezzi a mano per contare le persone

Analisi dei dati da sondaggio in Python

Quando non usare il campionamento stratificato

  • I sottogruppi non devono sovrapporsi
    • Se un soggetto cade in più gruppi -> misrappresentazione
  • Esempio di sovrapposizione in un sondaggio
    • Da quanto lavori nel tuo attuale impiego?
      • 1-2 anni
      • 2-4 anni

donna pensierosa

Analisi dei dati da sondaggio in Python

Risultati del sondaggio sul lavoro in sede presso l’azienda 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         |

Analisi dei dati da sondaggio in Python

Verifica le proporzioni sulla popolazione

survey.gender.value_counts(normalize=True)
Female    0.556
Male      0.444
Name: gender, dtype: float64
Analisi dei dati da sondaggio in Python

Grafica le proporzioni sulla popolazione

import pandas as pd
import matplotlib.pyplot as plt

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

Rapporto donne/uomini nel sondaggio

Analisi dei dati da sondaggio in Python

Esempio di campionamento stratificato

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         |

Analisi dei dati da sondaggio in Python

Verifica le proporzioni sul campione

Popolazione originale

survey.gender.value_counts(normalize=True)

Campione stratificato

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
Analisi dei dati da sondaggio in Python

Vamos praticar!

Analisi dei dati da sondaggio in Python

Preparing Video For Download...