Metodi di Campionamento
metodo Probabilistico
Campionamento Probabilistico
Tecniche e Codice PythonIl campionamento probabilistico è una tecnica statistica che permette di selezionare un sottoinsieme rappresentativo di una popolazione, garantendo che ogni elemento abbia una probabilità nota e diversa da zero di essere scelto.
Esistono diverse tecniche di campionamento, tra cui:
- Campionamento casuale semplice (Random Sampling)
- Campionamento sistematico (Systematic Sampling)
- Campionamento stratificato (Stratified Sampling)
- Campionamento a grappolo (Cluster Sampling)
Di seguito, spiegheremo ciascun metodo con un esempio pratico e il relativo codice Python, eseguibile su Google Colab.
Campionamento Casuale Semplice (Random Sampling)
Il campionamento casuale semplice seleziona casualmente gli elementi da un dataset, garantendo che ogni elemento abbia la stessa probabilità di essere scelto.Esempio Python
import pandas as pd
import numpy as np
# Creiamo un dataset di esempio
df = pd.DataFrame({'ID': range(1, 101), 'Valore': np.random.randint(1, 100, 100)})
# Campionamento casuale di 10 elementi
sample_random = df.sample(n=10, random_state=42)
print(sample_random)
Campionamento Sistematico (Systematic Sampling)
Il campionamento sistematico seleziona elementi a intervalli regolari da un dataset ordinato.Esempio Python
# Definiamo l'intervallo di selezione
k = 10 # Selezioniamo ogni 10° elemento
# Scegliamo un punto di partenza casuale
start = np.random.randint(0, k)
# Selezioniamo gli elementi sistematicamente
sample_systematic = df.iloc[start::k]
print(sample_systematic)
Campionamento Stratificato (Stratified Sampling)
Nel campionamento stratificato, il dataset viene suddiviso in gruppi omogenei (strati) e poi si estrae casualmente un numero proporzionale di elementi da ciascun gruppo.
from sklearn.model_selection import train_test_split
# Creiamo una colonna "Gruppo" casuale
df['Gruppo'] = np.random.choice(['A', 'B', 'C'], size=len(df))
# Campionamento stratificato
train, sample_stratified = train_test_split(df, test_size=0.1, stratify=df['Gruppo'], random_state=42)
print(sample_stratified)
Campionamento a Grappolo (Cluster Sampling)
Nel campionamento a grappolo, la popolazione viene suddivisa in gruppi (grappoli) e poi si selezionano casualmente alcuni gruppi interi per l'analisi.
Esempio Python
# Creiamo una colonna "Cluster" casuale
df['Cluster'] = np.random.choice(range(1, 6), size=len(df))
# Selezioniamo un cluster casuale
cluster_scelto = np.random.choice(df['Cluster'].unique())
sample_cluster = df[df['Cluster'] == cluster_scelto]
print(sample_cluster)
Conclusione
Il campionamento probabilistico è fondamentale per analisi statistiche accurate.Scegliere la tecnica giusta dipende dal tipo di dati e dagli obiettivi della ricerca.
Tutti i codici presentati possono essere testati direttamente su Google Colab.