Il campionamento è un processo fondamentale nella ricerca e nella statistica, consentendo di trarre conclusioni significative da un sottoinsieme rappresentativo di una popolazione più ampia. In questo articolo, esamineremo il concetto di campionamento e i principali metodi utilizzati per selezionare campioni rappresentativi. Attraverso esempi pratici in codice Python e considerazioni teoriche, illustreremo l’importanza di una selezione accurata del campione e le applicazioni dei diversi metodi di campionamento.
Il Campionamento
Il campionamento è il processo di selezione di un sottoinsieme rappresentativo di una popolazione più ampia per condurre un’analisi statistica o una ricerca. Piuttosto che raccogliere dati da un’intera popolazione, che potrebbe essere costosa, impegnativa o addirittura impossibile, i ricercatori selezionano un campione di individui o elementi che riflettono le caratteristiche della popolazione nel suo complesso.
Il campionamento è fondamentale in statistica perché permette di fare inferenze sulla popolazione più ampia senza la necessità di raccogliere dati da tutti i suoi membri. Tuttavia, è importante che il campione sia selezionato in modo casuale o rappresentativo per evitare bias e garantire che le conclusioni tratte siano valide per l’intera popolazione.
Il Campione e la Popolazione
Si usano spesso i termini campione e popolazione, è importante ben puntualizzare questi due concetti prima di andare avanti, dato che si tratta, nel contesto della statistica, di due concetti ben distinti.
La popolazione rappresenta l’intero gruppo di individui, oggetti, eventi o altre entità che si vogliono studiare o analizzare. È l’insieme completo e definito di elementi su cui si intendono fare inferenze statistiche. Ad esempio, se si sta studiando l’altezza degli studenti di una scuola, la popolazione sarebbero tutti gli studenti di quella scuola.
Un campione è un sottoinsieme selezionato dalla popolazione. È un gruppo di individui estratti dalla popolazione che vengono utilizzati per condurre un’analisi statistica. L’obiettivo del campionamento è quello di ottenere un gruppo rappresentativo della popolazione, in modo da poter fare inferenze valide sull’intera popolazione. Ad esempio, se si vuole studiare l’altezza degli studenti di una scuola, un campione potrebbe essere costituito da 100 studenti selezionati casualmente dalla lista completa degli studenti della scuola.
In breve, la principale differenza tra popolazione e campione è che la popolazione rappresenta l’intero gruppo di interesse, mentre il campione è un sottoinsieme selezionato dalla popolazione che viene studiato o analizzato per fare inferenze sulla popolazione stessa.
Ma come si fa a sapere se il campione è rappresentativo della popolazione?
Determinare se un campione è veramente rappresentativo di una popolazione è fondamentale per garantire che le conclusioni tratte dall’analisi del campione siano valide per l’intera popolazione. Ci sono diversi metodi e criteri che possono essere utilizzati per valutare se un campione è rappresentativo:
- Casualità nel Campionamento: Il campione deve essere selezionato in modo casuale dalla popolazione. Questo significa che ogni individuo o elemento della popolazione ha una probabilità conosciuta e uguale di essere selezionato per far parte del campione. L’uso di tecniche di campionamento casuale, come il campionamento casuale semplice o il campionamento sistematico, può aiutare a garantire la casualità nella selezione del campione.
- Ampiezza del Campione: Il campione dovrebbe essere sufficientemente ampio da catturare la variabilità presente nella popolazione. Un campione troppo piccolo potrebbe non essere rappresentativo della diversità della popolazione, mentre un campione più grande offre una migliore probabilità di rappresentatività.
- Rappresentatività delle Caratteristiche: Il campione dovrebbe riflettere le caratteristiche chiave della popolazione. Ad esempio, se la popolazione è composta per il 60% da donne e per il 40% da uomini, il campione dovrebbe riflettere proporzionalmente questa suddivisione per genere.
- Assenza di Bias nel Campionamento: È importante evitare bias nel processo di campionamento che potrebbero influenzare i risultati. Ad esempio, il campionamento per convenienza, dove si selezionano individui in base alla loro disponibilità o accessibilità, potrebbe introdurre un bias nella composizione del campione.
- Valutazione Statistica: Possono essere utilizzate analisi statistiche per valutare se il campione è rappresentativo della popolazione. Ad esempio, confrontando le caratteristiche demografiche o altre variabili chiave del campione con quelle della popolazione.
- Confronto con la Letteratura Esistente: Quando possibile, confrontare le caratteristiche del campione con quelle di altre ricerche o studi precedentemente condotti sulla stessa popolazione può aiutare a valutare la rappresentatività del campione.
Nel complesso, una combinazione di metodi e criteri può essere utilizzata per valutare se un campione è veramente rappresentativo di una popolazione. È importante prestare attenzione a questi aspetti durante la progettazione dello studio e l’analisi dei dati al fine di garantire l’affidabilità e la validità delle conclusioni tratte dall’analisi del campione.
Metodi di Campionamento
I metodi di campionamento sono progettati per garantire che il campione sia rappresentativo della popolazione di interesse, e la scelta del metodo dipende dalla natura della ricerca, dalle risorse disponibili e da altri fattori rilevanti. Un campionamento accurato è essenziale per garantire che i risultati ottenuti dagli studi siano affidabili e generalizzabili alla popolazione di riferimento.
Ci sono diversi metodi di campionamento, e la scelta del metodo dipende dall’obiettivo dello studio e dalle caratteristiche della popolazione. Ecco alcuni dei principali metodi di campionamento:
- Campionamento casuale semplice
- Campionamento sistematico
- Campionamento stratificato
- Campionamento per cluster
- Campionamento conveniente
- Campionamento per quote
La scelta del metodo dipende dalla natura della ricerca e dalle risorse disponibili. È importante selezionare un metodo che minimizzi il rischio di bias e fornisca risultati rappresentativi della popolazione di interesse. Vediamo adesso con dei semplici esempi implementati in Python i diversi metodi di campionamento.
Implementiamo in Python alcuni metodi di campionamento : definizione di una popolazione di prova
Per poter implementare dei metodi di campionamento con Python, sarà necessario dapprima creare una popolazione che simuli il più possibile una reale, a tal proposito genereremo dei valori casuali descriveranno le caratteristiche di ciascun elemento della popolazione. Il numero di elementi dovrebbe essere enorme, però per semplicità di esempio ci limiteremo a 100 soggetti. In Python, un buon modo per contenere una definizione è tramite un DataFrame di pandas.
import numpy as np
import pandas as pd
# Creazione di una popolazione di esempio
popolazione = pd.DataFrame({
'ID': range(1, 101), # Identificatori univoci per gli individui
'Età': np.random.randint(18, 70, size=100), # Età casuale tra 18 e 70 anni
'Genere': np.random.choice(['Maschio', 'Femmina'], size=100), # Genere casuale
'Reddito': np.random.normal(50000, 10000, size=100) # Reddito casuale con media 50000 e deviazione standard 10000
})
popolazione
La variabile popolazione
è un dataframe e rappresenta una popolazione immaginaria composta da 100 individui, ognuno con un identificatore unico, un’età casuale, un genere casuale e un reddito casuale. Questo è solo un esempio sintetico di una popolazione che potrebbe essere utilizzata per scopi di analisi statistica o di simulazione. Eseguendo il frammento di codice precedente, otterremo infatti un dataframe con 100 diversi individui distribuiti in maniera uniforme tra le varie età possibili (tra 18 e 70 anni) e con un valore di reddito distribuito “normalmente”. I valori contenuti all’interno varieranno di esecuzione in esecuzione. Nel mio caso ho ottenuto il seguene risultato.
Possiamo anche usare un grafico di visualizzazione della popolazione, mediante un istogramma a barre per vedere come questa sia distribuita tra le varie fasce di età:
import matplotlib.pyplot as plt
import seaborn as sns
# Grafico dell'istogramma per visualizzare la distribuzione dell'età
plt.figure(figsize=(10, 6))
sns.histplot(popolazione['Età'], bins=10, kde=True, color='skyblue')
plt.title('Distribuzione dell\'età nella popolazione')
plt.xlabel('Età')
plt.ylabel('Frequenza')
plt.grid(True)
plt.show()
Eseguendo otterrete un grafico simile al seguente (la popolazione è casuale e varia di esecuzione in esecuzione):
Adesso che abbiamo a disposizione una popolazione da campionare, possiamo passare ad analizzare i vari metodi di campionamento con un esempio specifico per ciascuno di essi.
Campionamento Casuale Semplice
Il campionamento casuale semplice è uno dei metodi di campionamento più semplici e fondamentali in statistica. Consiste nel selezionare casualmente un campione di individui dalla popolazione senza alcun tipo di stratificazione o suddivisione. In altre parole, ogni individuo della popolazione ha la stessa probabilità di essere selezionato per far parte del campione. Questo metodo è ampiamente utilizzato perché è facile da implementare e fornisce una stima non distorta delle caratteristiche della popolazione.
# Campionamento Casuale Semplice
def campionamento_casuale_semplice(popolazione, n):
return popolazione.sample(n)
# Esempio di utilizzo del campionamento casuale semplice per selezionare 10 individui
campione_casuale = campionamento_casuale_semplice(popolazione, 10)
print("Campionamento Casuale Semplice:")
print(campione_casuale)
Eseguendo il codice si ottiene il seguente risultato:
Campionamento Casuale Semplice:
ID Età Genere Reddito
23 24 40 Maschio 47057.493589
53 54 30 Femmina 43314.519576
22 23 54 Maschio 55331.285750
64 65 33 Femmina 37930.508571
8 9 50 Maschio 52217.491928
94 95 56 Femmina 53533.749445
42 43 35 Maschio 56122.820007
72 73 20 Femmina 48841.169206
93 94 32 Maschio 44026.799018
0 1 45 Maschio 31610.923128
Un buon metodo per vedere la bontà del campione rispetto alla popolazione è per via grafica. Attraverso la sovrapposizione del campione sulla popolazione si possono intuire molte cose. Implementiamo quindi il codice necessario.
import matplotlib.pyplot as plt
import seaborn as sns
# Grafico dell'istogramma sovrapposto per visualizzare la distribuzione dell'età nella popolazione e nel campione casuale
plt.figure(figsize=(10, 6))
# Distribuzione dell'età nella popolazione
sns.histplot(popolazione['Età'], bins=10, kde=True, color='skyblue', label='Popolazione')
# Distribuzione dell'età nel campione casuale
sns.histplot(campione_casuale['Età'], bins=10, kde=True, color='salmon', label='Campione Casuale')
plt.title('Distribuzione dell\'età: Popolazione vs Campione Casuale')
plt.xlabel('Età')
plt.ylabel('Densità')
plt.legend()
plt.show()
Eseguendolo si ottiene un grafico simile al seguente:
Campionamento Stratificato
Il campionamento stratificato è una tecnica di campionamento che suddivide la popolazione in gruppi omogenei chiamati “strati“, e quindi seleziona un campione casuale da ciascuno di questi strati. Questo metodo è utilizzato quando la popolazione presenta eterogeneità in alcune caratteristiche chiave, e l’obiettivo è quello di garantire che il campione rifletta accuratamente questa eterogeneità.
Inizialmente, la popolazione viene divisa in gruppi omogenei o strati in base a una caratteristica o variabile di interesse. Ad esempio, se stiamo studiando il reddito degli individui, possiamo suddividere la popolazione in strati basati su fasce di reddito come basso, medio e alto. Dopo aver definito gli strati, un campione casuale viene selezionato da ciascuno di essi. È importante che la selezione dei campioni all’interno di ogni strato avvenga in modo casuale, per garantire la rappresentatività del campione complessivo. Una volta selezionati i campioni da ciascuno strato, questi vengono combinati per formare il campione stratificato complessivo.
Il campionamento stratificato è utile quando la popolazione presenta variazioni significative nelle caratteristiche di interesse e quando si desidera assicurare che il campione rifletta accuratamente questa diversità. È particolarmente efficace nel ridurre la varianza stimata e migliorare l’accuratezza delle stime statistiche rispetto al campionamento casuale semplice, specialmente quando gli strati sono omogenei all’interno ma eterogenei tra di loro.
Ad esempio, se stiamo conducendo uno studio sulla soddisfazione lavorativa degli impiegati di un’azienda, potremmo suddividere la popolazione in strati basati sul livello di anzianità (ad esempio, neo-assunti, impiegati di lungo corso, dirigenti) e quindi selezionare un campione casuale da ciascuno di questi gruppi per formare un campione stratificato.
Passiamo ora alla nostra popolazione di esempio e vediamo come applicare in Python il campionamento stratificato. In questo caso utilizzeremo l’età come elemento per identificare gli strati.
# Campionamento Stratificato per età
def campionamento_stratificato(popolazione, n, stratificazione):
campione = pd.DataFrame()
for valore, proporzione in stratificazione.items():
strato = popolazione[popolazione['Età'] == valore]
if strato.empty: # Verifica se ci sono individui nel dato strato
print("Non ci sono elementi della popolazione con ", valore, " anni");
print("Modifica la popolazione o cambia l'età.")
return campione
else:
#Verifica se ci sono abbastanza individui nel dato strato
if len(strato) < int (n* proporzione) :
print("Non ci sono sufficienti elementi della popolazione con ", valore, " anni");
return campione
else:
campione_strato = strato.sample(int(n * proporzione))
campione = pd.concat([campione, campione_strato])
return campione
# Esempio di utilizzo del campionamento stratificato per età per selezionare 20 individui
stratificazione_età = {20: 0.2, 30: 0.3, 40: 0.2, 50: 0.3} # Proporzioni per ciascun strato di età
campione_stratificato_età = campionamento_stratificato(popolazione, 10, stratificazione_età)
print("\nCampionamento Stratificato per Età:")
print(campione_stratificato_età)
Eseguendo si ottiene il seguente risultato:
Campionamento Stratificato per Età:
ID Età Genere Reddito
72 73 20 Femmina 48841.169206
19 20 20 Maschio 27652.171738
60 61 30 Femmina 47997.253246
29 30 30 Femmina 57350.430925
53 54 30 Femmina 43314.519576
23 24 40 Maschio 47057.493589
68 69 40 Maschio 71418.672209
8 9 50 Maschio 52217.491928
6 7 50 Femmina 52083.648955
76 77 50 Femmina 56092.811905
Quando si utilizza il campionamento stratificato, l’obiettivo principale è quello di garantire che il campione rifletta accuratamente la distribuzione delle caratteristiche chiave presenti nella popolazione. Sebbene la visualizzazione diretta di un campione stratificato rispetto alla popolazione intera possa non essere sempre utile, ci sono altre visualizzazioni che possono essere utili per analizzare e interpretare i risultati del campionamento stratificato.
Per esempio, la più semplice sarà quella di estrarre dalla popolazione gli strati presi in considerazione nel campionamento e confrontarli direttamente con il campione. In questo caso, possiamo confrontare elementi simili.
import matplotlib.pyplot as plt
# Calcola le proporzioni nella popolazione
proporzioni_popolazione = {eta: len(popolazione[popolazione['Età'] == eta]) / len(popolazione) for eta in stratificazione_età.keys()}
# Calcola le proporzioni nel campione
proporzioni_campione = {eta: len(campione_stratificato_età[campione_stratificato_età['Età'] == eta]) / len(campione_stratificato_età) for eta in stratificazione_età.keys()}
# Età e valori delle proporzioni
eta = list(stratificazione_età.keys())
proporzioni_pop = list(proporzioni_popolazione.values())
proporzioni_camp = list(proporzioni_campione.values())
# larghezza delle barre
larghezza_barra = 0.35
# Posizione delle barre sul grafico
posizioni = range(len(eta))
# Creazione del grafico a barre
plt.figure(figsize=(10, 6))
plt.bar(posizioni, proporzioni_pop, larghezza_barra, label='Popolazione', color='skyblue')
plt.bar([p + larghezza_barra for p in posizioni], proporzioni_camp, larghezza_barra, label='Campione', color='salmon')
# Etichette e titolo
plt.xlabel('Età')
plt.ylabel('Proporzione')
plt.title('Confronto delle proporzioni tra popolazione e campione per età')
plt.xticks([p + larghezza_barra / 2 for p in posizioni], eta)
plt.legend()
plt.show()
Eseguendo si ottiene:
Campionamento Sistematico
Il campionamento sistematico è una tecnica di campionamento in cui gli individui della popolazione vengono selezionati a intervalli regolari, utilizzando un processo sistematico. Questo metodo coinvolge la divisione della popolazione in una lista ordinata e la selezione di ogni k-esimo elemento da questa lista, dove k è il cosiddetto “intervallo di campionamento“.
L’intervallo di campionamento, indicato con k, rappresenta il numero di elementi della popolazione tra ciascuna selezione. Ad esempio, se abbiamo una popolazione di 1000 individui e scegliamo un intervallo di campionamento di 10, selezioneremo ogni 10-esimo individuo per far parte del campione. La popolazione viene ordinata in base a una caratteristica di interesse. Questa caratteristica può essere qualsiasi variabile che consenta di assegnare un ordine agli individui della popolazione, come un identificatore univoco o una caratteristica numerica. Dopo aver definito l’intervallo di campionamento e ordinato la popolazione, il campione viene selezionato selezionando ogni k-esimo elemento dalla lista ordinata. Ad esempio, se l’intervallo di campionamento è 10, verrà selezionato il primo, l’undicesimo, il ventunesimo e così via fino a completare il campione desiderato.
Il campionamento sistematico è spesso utilizzato quando la popolazione è già ordinata o quando è difficile ottenere un campione casuale completo. Questa tecnica è relativamente semplice da implementare e può essere efficiente quando la popolazione è grande e la distribuzione degli individui è uniforme. Tuttavia, è importante notare che il campionamento sistematico può portare a una potenziale introduzione di bias se l’ordine della popolazione segue un modello che non rappresenta accuratamente la variazione nella caratteristica di interesse. Pertanto, è consigliabile eseguire un’analisi critica dei risultati ottenuti tramite il campionamento sistematico.
Anche in questo caso implementiamo tale metodo di campionamento sulla nostra popolazione mediante codice Python.
# Campionamento Sistematico
def campionamento_sistematico(popolazione, n):
k = len(popolazione) // n # Numero di individui in ciascun intervallo
start = np.random.randint(0, k) # Punto di partenza casuale
indici_campionati = np.arange(start, len(popolazione), step=k)
return popolazione.iloc[indici_campionati]
# Esempio di utilizzo del campionamento sistematico per selezionare 15 individui
campione_sistematico = campionamento_sistematico(popolazione, 15)
print("\nCampionamento Sistematico:")
print(campione_sistematico)
Eseguendo il codice otterremo un risultato simile a quello seguente:
Campionamento Sistematico:
ID Età Genere Reddito
2 3 66 Maschio 36209.708795
8 9 50 Maschio 52217.491928
14 15 19 Maschio 59488.020354
20 21 59 Maschio 52281.092250
26 27 41 Femmina 45637.428874
32 33 59 Maschio 56938.093466
38 39 55 Femmina 48112.279971
44 45 22 Maschio 43064.521536
50 51 58 Femmina 45626.053208
56 57 29 Maschio 44075.861492
62 63 45 Femmina 37632.610395
68 69 40 Maschio 71418.672209
74 75 33 Femmina 57040.608872
80 81 31 Femmina 60087.206583
86 87 35 Femmina 57539.632811
92 93 58 Maschio 56846.637925
98 99 55 Femmina 58269.081870
In questo caso, graficamente è possibile seguire lo stesso approccio che avevamo fatto con il campionamento casuale semplice paragonando direttamente il campione con la popolazione di riferimento. Il codice sarà quindi lo stesso:
import matplotlib.pyplot as plt
import seaborn as sns
# Grafico dell'istogramma sovrapposto per visualizzare la distribuzione dell'età nella popolazione e nel campione casuale
plt.figure(figsize=(10, 6))
# Distribuzione dell'età nella popolazione
sns.histplot(popolazione['Età'], bins=10, kde=True, color='skyblue', label='Popolazione')
# Distribuzione dell'età nel campione casuale
sns.histplot(campione_sistematico['Età'], bins=10, kde=True, color='salmon', label='Campione Sistematico')
plt.title('Distribuzione dell\'età: Popolazione vs Campione Sistematico')
plt.xlabel('Età')
plt.ylabel('Densità')
plt.legend()
plt.show()
Eseguendo si otterrà un risultato simile al seguente:
Campionamento per Conglomerati
Il campionamento per conglomerati è una tecnica di campionamento in cui la popolazione è divisa in gruppi, chiamati “conglomerati“, e viene selezionato casualmente un sottoinsieme di questi conglomerati per formare il campione. Questa tecnica è utile quando la popolazione è naturalmente organizzata in gruppi o cluster e quando non è pratico o possibile selezionare individualmente gli elementi della popolazione.
I conglomerati sono gruppi omogenei di individui all’interno della popolazione. Possono essere definiti in base a criteri geografici, sociali, o altri fattori che riflettono la struttura naturale della popolazione. Ad esempio, se stiamo studiando l’istruzione primaria in una determinata area geografica, i conglomerati potrebbero essere le scuole presenti in quella zona. Dopo aver definito i conglomerati, viene selezionato casualmente un sottoinsieme di essi per formare il campione. Questa selezione avviene utilizzando una tecnica di campionamento casuale, come il campionamento casuale semplice o il campionamento sistematico. Una volta selezionati i conglomerati, è possibile eseguire ulteriori campionamenti all’interno di ciascun conglomerato per selezionare gli individui o gli elementi specifici da includere nel campione. Questo può essere fatto utilizzando altre tecniche di campionamento, come il campionamento casuale semplice o stratificato.
Il campionamento per conglomerati è particolarmente utile quando la popolazione è estesa e dispersa su un’ampia area geografica o quando è costosa o difficile selezionare individualmente gli elementi della popolazione. Questa tecnica consente di semplificare il processo di campionamento, concentrandosi sulla selezione di gruppi rappresentativi della popolazione anziché singoli individui. Tuttavia, è importante tenere presente che il campionamento per conglomerati può portare a una minore precisione rispetto ad altre tecniche di campionamento, poiché gli individui all’interno di ciascun conglomerato potrebbero non essere completamente rappresentativi della popolazione complessiva. Pertanto, è importante valutare attentamente i trade-off tra efficienza e precisione quando si utilizza questa tecnica di campionamento.
Utilizziamo tale metodo di campionamento sulla nostra popolazione:
# Campionamento per Conglomerati
def campionamento_conglomerati(popolazione, n, num_conglomerati):
conglomerati = np.array_split(popolazione, num_conglomerati)
campione = pd.concat([cong.sample(1) for cong in conglomerati], axis=0)
return campione.head(n)
# Esempio di utilizzo del campionamento per conglomerati per selezionare 10 individui
campione_conglomerati = campionamento_conglomerati(popolazione, 10, 5)
print("\nCampionamento per Conglomerati:")
print(campione_conglomerati)
Eseguendo si ottiene il seguente risultato:
Campionamento per Conglomerati:
ID Età Genere Reddito
13 14 38 Maschio 54431.923830
23 24 40 Maschio 47057.493589
42 43 35 Maschio 56122.820007
75 76 68 Femmina 46846.543534
97 98 68 Femmina 65424.049687
Anche qui si segue lo stesso approccio grafico precedente:
Campionamento per Quote
Il campionamento per quote è una tecnica di campionamento non probabilistico in cui la popolazione viene suddivisa in gruppi, chiamati “quote“, in base a determinate caratteristiche di interesse. Successivamente, vengono selezionati individui da ciascuna quota fino a quando non viene raggiunto un numero predeterminato per quota. Questo metodo è utilizzato per garantire che il campione rifletta le proporzioni specificate delle caratteristiche di interesse presenti nella popolazione, ma non garantisce la casualità nella selezione degli individui.
Le quote sono suddivisioni della popolazione in base a specifiche caratteristiche demografiche o socio-economiche, come età, genere, livello di istruzione, reddito, ecc. Queste quote sono selezionate in modo che riflettano le proporzioni desiderate di ciascuna caratteristica all’interno della popolazione. Dopo aver definito le quote, gli individui vengono selezionati in modo non casuale da ciascuna quota fino a quando non viene raggiunto il numero predeterminato di individui per quota. La selezione degli individui può essere effettuata in vari modi, ad esempio utilizzando elenchi di contatti, interviste in strada o tramite telefonate. Una volta selezionati gli individui da ogni quota, essi vengono combinati per formare il campione complessivo. Poiché gli individui sono stati selezionati da ciascuna quota per garantire che il campione rifletta le proporzioni desiderate delle caratteristiche di interesse, si spera che il campione sia rappresentativo della popolazione complessiva.
Il campionamento per quote è spesso utilizzato quando non è possibile utilizzare tecniche di campionamento probabilistico, come il campionamento casuale semplice, e quando è necessario garantire che il campione rifletta determinate caratteristiche della popolazione. Tuttavia, è importante notare che il campionamento per quote può introdurre bias se le quote non sono selezionate in modo accurato o se la selezione degli individui all’interno di ciascuna quota non è casuale. Pertanto, è fondamentale prestare attenzione alla progettazione e all’implementazione del campionamento per quote per garantire la rappresentatività e l’affidabilità del campione ottenuto.
Vediamo applicato sulla nostra popolazione:
# Campionamento per Quote
def campionamento_per_quote(popolazione, quote):
campione = pd.DataFrame()
for caratteristica, valore in quote.items():
subset = popolazione[popolazione[caratteristica] == valore]
campione = pd.concat([campione, subset.sample(frac=0.5)]) # Esempio: selezioniamo il 50% dei casi per ogni quota
return campione
# Esempio di utilizzo del campionamento per quote per selezionare 15 individui
quote_selezionate = {'Genere': 'Maschio', 'Età': 30} # Esempio di quote selezionate
campione_per_quote = campionamento_per_quote(popolazione, quote_selezionate)
print("\nCampionamento per Quote:")
print(campione_per_quote)
Eseguendo si ottiene il seguente risultato:
Campionamento per Quote:
ID Età Genere Reddito
12 13 47 Maschio 50494.805745
42 43 35 Maschio 56122.820007
89 90 47 Maschio 54316.737208
19 20 20 Maschio 27652.171738
0 1 45 Maschio 31610.923128
1 2 23 Maschio 48628.544758
4 5 59 Maschio 54784.751412
40 41 47 Maschio 54137.476921
21 22 36 Maschio 50930.358974
57 58 62 Maschio 49578.663366
32 33 59 Maschio 56938.093466
17 18 44 Maschio 52603.519321
49 50 25 Maschio 29760.793004
18 19 31 Maschio 44897.492406
99 100 59 Maschio 50753.883077
56 57 29 Maschio 44075.861492
44 45 22 Maschio 43064.521536
16 17 38 Maschio 53294.428008
11 12 61 Maschio 51187.683528
61 62 37 Maschio 48465.486961
55 56 43 Maschio 65461.395936
43 44 43 Maschio 42726.482913
20 21 59 Maschio 52281.092250
91 92 39 Maschio 45134.680573
35 36 25 Maschio 54373.659220
47 48 62 Maschio 51030.227021
53 54 30 Femmina 43314.519576
15 16 30 Femmina 54783.609752
Anche in questo caso si può seguire lo stesso approccio grafico.
Campionamento Opportunistico o di Convenienza
Il campionamento opportunistico, anche noto come campionamento di convenienza, è una tecnica di campionamento non probabilistico in cui gli individui vengono selezionati in base alla loro disponibilità e accessibilità. In questo tipo di campionamento, non vi è alcuna preoccupazione per garantire una rappresentazione casuale o statistica della popolazione, ma piuttosto si selezionano gli individui che sono facilmente accessibili o disponibili per lo studio.
Gli individui sono selezionati in base alla loro disponibilità e accessibilità al ricercatore o all’organizzazione che sta conducendo lo studio. Questo può includere persone che sono facili da contattare, raggiungere o coinvolgere nel processo di ricerca. Poiché la selezione degli individui avviene in base alla loro disponibilità e accessibilità, il campionamento opportunistico non segue un processo casuale. Di conseguenza, i risultati ottenuti da questo tipo di campionamento potrebbero non essere rappresentativi della popolazione più ampia. Il campionamento opportunistico è spesso utilizzato quando è difficile o costoso eseguire un campionamento casuale o quando non è possibile ottenere un campione rappresentativo della popolazione. Questa tecnica è comune nelle situazioni in cui i ricercatori hanno accesso solo a una piccola parte della popolazione o quando si studiano gruppi specifici di individui all’interno di una popolazione più ampia.
Il campionamento opportunistico può essere utile quando si desidera ottenere informazioni preliminari su un argomento o quando si vuole esplorare rapidamente un fenomeno senza impegnarsi in un campionamento più rigoroso. Tuttavia, è importante notare che i risultati ottenuti da questo tipo di campionamento possono essere influenzati da variabili non controllate e potrebbero non essere generalizzabili alla popolazione più ampia. Pertanto, è fondamentale interpretare i risultati del campionamento opportunistico con cautela e considerare le sue limitazioni nel contesto dell’analisi condotta.
# Campionamento Opportunistico o di Convenienza
def campionamento_opportunistico(popolazione, n):
return popolazione.sample(n)
# Esempio di utilizzo del campionamento opportunistico per selezionare 12 individui
campione_opportunistico = campionamento_opportunistico(popolazione, 12)
print("\nCampionamento Opportunistico:")
print(campione_opportunistico)
Eseguendo si ottiene il seguente risultato:
Campionamento Opportunistico:
ID Età Genere Reddito
38 39 55 Femmina 48112.279971
76 77 50 Femmina 56092.811905
58 59 55 Femmina 48248.155652
17 18 44 Maschio 52603.519321
16 17 38 Maschio 53294.428008
12 13 47 Maschio 50494.805745
77 78 64 Femmina 50534.615248
59 60 62 Femmina 48844.506631
31 32 53 Femmina 46028.730966
15 16 30 Femmina 54783.609752
85 86 42 Femmina 34303.037721
55 56 43 Maschio 65461.395936
Graficamente possiamo avere una situazione come la seguente: