l tuo farmaco funziona davvero o è solo un caso? 🧪
E quella promozione marketing ha spostato i consumi o è stata un flop invisibile? 📉
Non tutti i dati sono uguali.
In questo articolo analizziamo come non farsi ingannare dai numeri piccoli usando la Correzione di Yates e perché il Test di Fisher è il migliore amico della ricerca medica.
Se lavori con i dati, non puoi sbagliare il test.
Ecco una guida pratica con esercizi svolti passo dopo passo.
Esercizio 1: Marketing e Acquisti (Test di indipendenza con approfondimento)
In questo scenario, analizziamo l’efficacia di una strategia di marketing utilizzando il test non parametrico del Chi-quadrato.
Tabella di Contingenza (Dati Osservati)
| Promozione | Acquisto SI | Acquisto NO | Totale |
|---|---|---|---|
| Promozione SI | 45 | 30 | 75 |
| Promozione NO | 35 | 40 | 75 |
| Totale | 80 | 70 | 150 |
Svolgimento
1. Definizione delle Ipotesi
- [math]H_0[/math]: Le variabili sono indipendenti (la promozione non influisce sull’acquisto).
- [math]H_1[/math]: Esiste un’associazione tra promozione e acquisto.
2. Calcolo delle Frequenze Attese ([math]E_{ij}[/math])
Sotto l’ipotesi di indipendenza, calcoliamo i valori che ci aspetteremmo di trovare:
- SI/SI e NO/SI: [math]\displaystyle \frac{75 \times 80}{150} = 40[/math]
- SI/NO e NO/NO: [math]\displaystyle \frac{75 \times 70}{150} = 35[/math]
3. Calcolo del [math]\chi^2[/math]
[math]\displaystyle \chi^2 = \frac{(45-40)^2}{40} + \frac{(30-35)^2}{35} + \frac{(35-40)^2}{40} + \frac{(40-35)^2}{35} = 2,678[/math]
4. Decisione Statistica
Con gdl = 1 e [math]\alpha = 0,05[/math], il valore critico è 3,841.
Poiché [math]2,678 < 3,841[/math], non rifiutiamo [math]H_0[/math]. Non c’è evidenza statistica significativa di un legame tra promozione e acquisto.
Approfondimento: Forza dell’associazione (V di Cramer)
Anche se il test non è significativo, calcoliamo il V di Cramer per quantificare l’effetto osservato nel campione:
[math]\displaystyle V = \sqrt{\frac{\chi^2}{n \cdot \min(r-1, c-1)}} = \sqrt{\frac{2,678}{150 \cdot 1}} \approx 0,134[/math]
💡 Osservazione strategica: Il valore [math]V = 0,134[/math] indica un’associazione molto debole. In ambito marketing, questo suggerisce che la promozione ha avuto un impatto minimo, quasi indistinguibile dal caso.
🤔 Risposta alla Domanda di Riflessione
Perché non ci fermiamo al solo risultato del test?
Il test del Chi-quadrato ci dice solo se l’associazione è “reale” (significativa) o probabilmente dovuta al caso. Tuttavia, la significatività dipende fortemente dalla dimensione del campione (n).
- Il V di Cramer ci dice quanto è “grande” l’effetto, indipendentemente dal numero di persone intervistate.
- Ci permette di confrontare studi diversi: potremmo avere un test significativo con 10.000 clienti ma un V di Cramer quasi nullo, indicando che l’effetto, pur reale, è irrilevante per il business.
In sintesi: Il test ci dice se c’è un effetto, il V di Cramer ci dice quanto conta quell’effetto.
Esercizio 2: La Correzione di Continuità di Yates
In questo esercizio analizziamo un test clinico su piccola scala. Quando i campioni sono ridotti, il test [math]\chi^2[/math] standard può diventare troppo “ottimista”: la correzione di Yates serve a rendere il test più prudente e accurato.
🧪 Tabella dei Dati (Campione: 50 pazienti)
| Gruppo | Effetto SI | Effetto NO | Totale |
|---|---|---|---|
| Farmaco | 3 | 22 | 25 |
| Placebo | 8 | 17 | 25 |
| Totale | 11 | 39 | 50 |
Svolgimento
1. Ipotesi e Frequenze Attese
Ipotesi nulla [math]H_0[/math]: Non c’è associazione tra farmaco ed effetto collaterale.
Le frequenze attese ([math]E[/math]) per questa tabella sono:
- Gruppo/SI: [math]\displaystyle \frac{25 \times 11}{50} = 5,5[/math]
- Gruppo/NO: [math]\displaystyle \frac{25 \times 39}{50} = 19,5[/math]
Nota critica: Poiché abbiamo frequenze attese molto vicine a 5 e un totale modesto (50), l’approssimazione alla curva [math]\chi^2[/math] è meno precisa. Applichiamo quindi la correzione di Yates.
2. Calcolo del [math]\chi^2[/math] con Correzione di Yates
La formula di Yates prevede di sottrarre 0,5 dal valore assoluto degli scarti prima di elevarli al quadrato:
[math]\displaystyle \chi^2_{Yates} = \sum \frac{(|O_i – E_i| – 0,5)^2}{E_i}[/math]
Eseguendo i calcoli per le 4 celle:
[math]\displaystyle \chi^2_{Yates} = \frac{(|3-5,5|-0,5)^2}{5,5} + \frac{(|22-19,5|-0,5)^2}{19,5} + \frac{(|8-5,5|-0,5)^2}{5,5} + \frac{(|17-19,5|-0,5)^2}{19,5}[/math]
[math]\displaystyle \chi^2_{Yates} = \frac{2^2}{5,5} + \frac{2^2}{19,5} + \frac{2^2}{5,5} + \frac{2^2}{19,5} \approx 0,727 + 0,205 + 0,727 + 0,205 = \mathbf{1,864}[/math]
3. Verdetto Statistico
Con gdl = 1 e [math]\alpha = 0,05[/math], il valore critico è 3,841.
Confronto: [math]1,864 < 3,841[/math].
Esito: Non rifiutiamo l’ipotesi nulla. Non possiamo affermare che il farmaco riduca significativamente l’effetto collaterale.
🤔 Risposta alla Domanda di Riflessione
In quali situazioni è fondamentale applicare la correzione di Yates?
È fondamentale nelle tabelle di contingenza 2×2 quando il numero totale di osservazioni è piccolo (solitamente [math]N < 100[/math]) o quando le frequenze attese sono basse (vicine a 5).
Qual è lo scopo principale?
- Ridurre l’errore di Tipo I: Il test [math]\chi^2[/math] standard tende a sovrastimare la significatività statistica con campioni piccoli. La correzione di Yates “ammorbidisce” il valore del Chi-quadrato, rendendo più difficile rifiutare l’ipotesi nulla per puro caso.
- Compensare la discretezza: Le frequenze osservate sono numeri interi (discreti), ma la distribuzione [math]\chi^2[/math] è continua. La correzione di 0,5 serve a ridurre l’errore derivante dall’approssimare una variabile discreta con una funzione continua.
Cos’è la Correzione di Yates?
Il test del Chi-quadrato ([math]\chi^2[/math]) si basa su una distribuzione continua, ma i dati che raccogliamo (il numero di persone o pazienti) sono discreti (numeri interi). Quando il campione è piccolo, questa differenza può causare una sovrastima della significatività.
La correzione di Yates consiste nel sottrarre 0,5 alla differenza assoluta tra frequenze osservate ([math]O[/math]) e attese ([math]E[/math]) prima di elevare al quadrato:
[math]\displaystyle \chi^2_{Yates} = \sum \frac{(|O_i – E_i| – 0,5)^2}{E_i}[/math]
Perché si usa? Rende il test più “conservativo”. In pratica, rende più difficile ottenere un risultato significativo, riducendo il rischio di dichiarare efficace un farmaco che in realtà non lo è.
Quando passare al Test Esatto di Fisher?
In medicina, il Test di Fisher è considerato il “gold standard” per campioni molto piccoli. A differenza del Chi-quadrato, che è un test di approssimazione, il test di Fisher calcola la probabilità esatta di ottenere la distribuzione di dati osservata.
La regola d’oro per la scelta:
| Situazione dei dati | Test Consigliato |
|---|---|
| Tutte le frequenze attese sono [math]> 5[/math] e il campione totale [math]N > 40[/math] | Chi-quadrato standard |
| Almeno una frequenza attesa è tra [math]3[/math] e [math]5[/math] | Chi-quadrato con Yates |
| Almeno una frequenza attesa è [math]< 5[/math] (o [math]N[/math] molto piccolo) | Test Esatto di Fisher |
Perché Fisher è preferito in medicina?
Immagina di studiare una malattia rara o un effetto collaterale che si verifica solo in 2 pazienti su 20. In questi casi:
- Il Chi-quadrato (anche con Yates) perde precisione perché si basa su presupposti matematici che richiedono grandi numeri.
- Il Test di Fisher analizza tutte le possibili combinazioni delle tabelle che hanno gli stessi totali marginali e ti dice esattamente quanto è raro il tuo risultato.
⚠️ Attenzione: Oggi, grazie alla potenza dei computer, molti ricercatori usano il Test di Fisher sempre per le tabelle 2×2, a prescindere dalla numerosità, perché è intrinsecamente più preciso e non soffre dei limiti dell’approssimazione continua.
Conclusione rapida:
-
Hai una tabella 2×2 con molti dati? Vai di Chi-quadrato.
-
Hai pochi dati (frequenze attese vicine a 5)? Usa Yates.
-
Hai pochissimi dati (anche solo una cella con frequenza attesa < 5)? Fisher è obbligatorio.
Un esempio pratico dove i due test (Yates vs Fisher) portano a conclusioni diverse sullo stesso set di dati:
Questo è un caso classico nella ricerca clinica: la situazione in cui la scelta del test statistico cambia completamente il destino di una scoperta.
Immaginiamo un piccolo studio su un nuovo farmaco per una malattia rara. Abbiamo solo 20 pazienti.
Il Caso Studio: Farmaco Sperimentale vs Placebo
| Gruppo | Guariti | Non Guariti | Totale |
|---|---|---|---|
| Farmaco | 9 | 1 | 10 |
| Placebo | 4 | 6 | 10 |
| Totale | 13 | 7 | 20 |
A prima vista, il farmaco sembra molto efficace (90% di guarigioni contro il 40% del placebo). Ma la statistica è d’accordo?
1. Test Chi-Quadrato con Correzione di Yates
Calcoliamo le frequenze attese. Per la cella “Farmaco/Guariti” l’atteso è: [math](10 \times 13) / 20 = 6,5[/math].
Poiché abbiamo valori piccoli e una tabella [math]2 \times 2[/math], applichiamo Yates.
Valore [math]\chi^2[/math] calcolato: circa 3,14
Valore Critico ([math]\alpha = 0,05[/math]): 3,84
P-value: 0,076
Conclusione Yates: Il p-value è maggiore di 0,05. Non c’è una differenza significativa. Il farmaco viene scartato perché i risultati potrebbero essere dovuti al caso.
2. Test Esatto di Fisher
Il test di Fisher non usa approssimazioni, ma calcola la probabilità esatta di ottenere questa tabella (o una ancora più estrema) tra tutte le combinazioni possibili con questi totali.
P-value (esatto): 0,029
Conclusione Fisher: Il p-value è minore di 0,05. La differenza è statisticamente significativa. Il farmaco viene promosso alla fase successiva della ricerca.
Perché i risultati sono diversi?
| Test | P-value | Risultato ([math]\alpha=0.05[/math]) |
|---|---|---|
| Yates | 0,076 | ❌ Non Significativo |
| Fisher | 0,029 | ✅ Significativo |
L’eccessiva prudenza di Yates: La correzione di Yates è nota per essere talvolta troppo conservativa. Sottraendo [math]0,5[/math] agli scarti, riduce artificialmente il valore del Chi-quadrato, “punendo” i campioni piccoli e aumentando il rischio di Errore di Tipo II (non vedere un effetto che in realtà esiste).
La precisione di Fisher: Fisher non “stima” la probabilità basandosi su una curva teorica (come quella del Chi-quadrato), ma conta le probabilità reali. In questo caso, Fisher riconosce che passare da 4 a 9 guariti su 10 è un evento molto raro se il farmaco non funzionasse.
💡 Regola pratica per i ricercatori
In presenza di campioni con [math]N < 30[/math] o celle con frequenze attese molto basse, fidati sempre di Fisher. La correzione di Yates era molto popolare quando i calcoli si facevano a mano (perché Fisher è computazionalmente pesante), ma oggi i software rendono Fisher la scelta obbligata per la medicina d’urgenza e le malattie rare.
Perché questi esercizi sono interessanti?
Questi due esempi sono estremamente interessanti perché toccano i due poli opposti della sfida statistica: la sovradeterminazione dei grandi numeri e l’incertezza dei piccoli campioni.
1. Il Paradosso della Significatività nel Marketing (Campioni Grandi)
Nel marketing, con migliaia di dati (Big Data), è facilissimo ottenere un [math]p-value < 0,05[/math]. Questo accade perché il test Chi-quadrato è estremamente sensibile alla dimensione del campione: più dati hai, più è probabile che anche una differenza minima e irrilevante risulti “statisticamente significativa”.
-
Il rischio: Investire migliaia di euro in una campagna pubblicitaria perché “i dati dicono che funziona”, quando in realtà l’effetto pratico è quasi nullo.
-
La soluzione: La V di Cramer. Questo indice ci dice se quella differenza, pur essendo reale, ha un peso concreto. È il passaggio dalla “significatività statistica” alla “significatività pratica”.
2. La Battaglia per la Precisione nella Clinica (Campioni Piccoli)
Nelle malattie rare o nella medicina d’urgenza, non abbiamo il lusso dei grandi numeri. Qui ogni paziente è un “universo” statistico.
-
Il dilemma di Yates vs Fisher:
-
Yates: Introduce una correzione per evitare di dichiarare efficace un farmaco che non lo è (riduce i falsi positivi). Tuttavia, come visto nell’esempio, può essere così conservativo da “uccidere” una scoperta valida, commettendo un Errore di Tipo II (falso negativo).
-
Fisher: È il gold standard perché non “stima” il comportamento dei dati, ma calcola matematicamente ogni singola combinazione possibile.
-
Sintesi
| Contesto | Sfida Principale | Strumento Critico | Obiettivo |
| <strong>Marketing (N grande)</strong> | Evitare l’abbaglio dei grandi numeri | <strong>V di Cramer</strong> | Misurare la forza dell’effetto reale |
| <strong>Clinica (N piccolo)</strong> | Gestire la scarsità di dati | <strong>Test di Fisher</strong> | Ottenere un verdetto esatto e non stimato |
Perché studiarli insieme?
Studiare questi due casi permette di capire che la statistica non è una verità assoluta, ma un set di lenti diverse. Se usi la lente sbagliata (Yates su un campione minuscolo o il solo p-value su un campione immenso), la tua conclusione sarà distorta, con conseguenze reali: budget sprecati nel marketing o farmaci salvavita scartati in medicina.
Checklist Decisionale: Quale Test Usare?
Segui questi passaggi per determinare lo strumento statistico più adatto al tuo set di dati, specialmente nelle tabelle di contingenza [math]2 \times 2[/math].
1. La tabella è [math]2 \times 2[/math]?
- Sì: Puoi procedere con il Chi-Quadrato, la correzione di Yates o il Test Esatto di Fisher.
- No (es. [math]3 \times 2[/math] o superiore): Il Test di Fisher diventa molto complesso computazionalmente (estensione di Freeman-Halton). Si usa generalmente il Chi-Quadrato standard.
2. Le frequenze attese sono tutte [math]> 5[/math]?
- Sì: Il Chi-Quadrato di Pearson standard è affidabile. La distribuzione approssima bene quella teorica.
- No: Se anche una sola cella ha un valore atteso [math]< 5[/math], il Chi-Quadrato standard perde precisione. Usa Fisher.
3. Il campione totale ([math]N[/math]) è [math]< 30[/math]?
- Sì: Evita le approssimazioni. Il Test Esatto di Fisher è la scelta d’elezione perché calcola la probabilità esatta senza basarsi su assunzioni asintotiche.
- No: Con campioni grandi, il Chi-Quadrato e Fisher tendono a convergere verso lo stesso risultato.
4. L’effetto è grande ma il p-value è borderline?
Se osservi una forte differenza tra i gruppi ma il [math]p-value[/math] è vicino a [math]0,05[/math]:
- Attenzione a Yates: Se hai usato la correzione di Yates, potresti essere vittima della sua eccessiva prudenza.
- Verifica con Fisher: Se Fisher dà un risultato significativo mentre Yates no, solitamente si preferisce Fisher per la sua precisione matematica superiore.
5. Serve Precisione o Prudenza?
| Obiettivo | Test Consigliato | Motivazione |
|---|---|---|
| Massima Precisione | Fisher | Calcola la probabilità reale delle combinazioni. |
| Prudenza (Evitare Falsi Positivi) | Yates | Riduce il valore del [math]\chi^2[/math] per compensare l’errore di sovrastima. |
Questa checklist ti aiuta a evitare l’errore metodologico di scegliere il test “che dà il risultato sperato”, guidandoti invece verso il test più robusto per la natura dei tuoi dati.
In statistica, il p-value è come un semaforo: ti dice se puoi passare (significativo) o se devi fermarti (non significativo). Ma non ti dice quanto è veloce la macchina. La V di Cramer serve a questo: misura la potenza dell’effetto.
Ecco lo script completo, aggiornato e reso ancora più leggibile, che integra finalmente anche la forza dell’associazione.
💻 Dal Problema al Codice: I tre “Giudici” e la Forza dell’Effetto
In ricerca clinica e analisi dei dati, il solo p-value può essere ingannevole. Con campioni molto piccoli, rischiamo di non vedere effetti reali (Errore di Tipo II), mentre con campioni molto grandi, ogni minima differenza diventa “significativa”, anche se irrilevante nella pratica.
Per dare un senso pratico a tutta la teoria vista finora, dobbiamo “sporcarci le mani” con i dati. La teoria ci dice che i test sono diversi, ma il seguente codice ci mostrerà quanto possono esserlo. L’obiettivo di questo script è mettere a confronto i tre “giudici” statistici (Pearson, Yates e Fisher) e aggiungere un quarto elemento cruciale: la V di Cramer.
import numpy as np
from scipy import stats
# 1. PREPARAZIONE DEI DATI
# Caso studio: Un piccolo test clinico (N=20)
# Gruppo A (Farmaco): 8 guariti, 2 non guariti
# Gruppo B (Placebo): 2 guariti, 8 non guariti
osservati = np.array([[8, 2],
[2, 8]])
print("--- TABELLA DI CONTINGENZA (N=20) ---")
print(f"Farmaco: {osservati[0]}")
print(f"Placebo: {osservati[1]}")
print("-" * 45)
# 2. CALCOLO DEI P-VALUE (Significatività)
# Pearson: L'ottimista (senza correzione)
res_pearson = stats.chi2_contingency(osservati, correction=False)
p_pearson = res_pearson[1]
chi2_stat = res_pearson[0] # Ci serve per calcolare Cramer dopo
# Yates: Il prudente (con correzione)
res_yates = stats.chi2_contingency(osservati, correction=True)
p_yates = res_yates[1]
# Fisher: Il matematico (esatto)
_, p_fisher = stats.fisher_exact(osservati)
# 3. CALCOLO DELLA V DI CRAMER (Forza dell'effetto)
# Formula per tabelle 2x2: sqrt(chi2 / n_totale)
n_totale = np.sum(osservati)
v_cramer = np.sqrt(chi2_stat / n_totale)
# 4. OUTPUT RISULTATI
print(f"{'TEST':<25} | {'P-VALUE':<10} | {'ESITO (alpha 0.05)'}")
print("-" * 60)
print(f"{'Pearson (Standard)':<25} | {p_pearson:.4f} | {'✅ OK' if p_pearson < 0.05 else '❌ NO'}")
print(f"{'Yates (Corretto)':<25} | {p_yates:.4f} | {'✅ OK' if p_yates < 0.05 else '❌ NO'}")
print(f"{'Fisher (Esatto)':<25} | {p_fisher:.4f} | {'✅ OK' if p_fisher < 0.05 else '❌ NO'}") print("-" * 60) print(f"DIMENSIONE DELL'EFFETTO (V di Cramer): {v_cramer:.4f}") # Interpretazione rapida if v_cramer > 0.5:
print("Interpretazione: L'effetto è massiccio (Relazione Forte)")
elif v_cramer > 0.3:
print("Interpretazione: L'effetto è medio")
else:
print("Interpretazione: L'effetto è debole")
--- TABELLA DI CONTINGENZA (N=20) ---
Farmaco: [8 2]
Placebo: [2 8]
---------------------------------------------
TEST | P-VALUE | ESITO (alpha 0.05)
------------------------------------------------------------
Pearson (Standard) | 0.0073 | ✅ OK
Yates (Corretto) | 0.0253 | ✅ OK
Fisher (Esatto) | 0.0230 | ✅ OK
------------------------------------------------------------
DIMENSIONE DELL'EFFETTO (V di Cramer): 0.6000
Interpretazione: L'effetto è massiccio (Relazione Forte)
Questo script non è solo un esercizio di programmazione, ma risolve il dilemma del ricercatore che si trova davanti a un bivio metodologico.
1. La discrepanza tra i “Giudici”
In un campione così piccolo ($N=20$), noterai che il Pearson restituisce un p-value molto basso (0,0073), quasi “troppo bello per essere vero”. Yates invece è molto più severo (0,0253$. Se i dati fossero stati leggermente più equilibrati, Yates avrebbe potuto “bocciare” il farmaco mentre Pearson lo avrebbe “promosso”. Questo codice ti insegna a non fidarti del test più permissivo solo perché ti dà ragione.
2. Fisher come arbitro finale
In medicina, il risultato di Fisher (0,0230) è quello che dovresti scrivere nel tuo articolo. Perché? Perché non si basa su una stima curva (come il Chi-Quadrato) ma calcola ogni singola combinazione possibile. Con soli 20 pazienti, Fisher è l’unico che non ti sta mentendo.
3. La V di Cramer: Il peso della scoperta
L’aspetto più interessante è il valore di Cramer (0,60).
-
Il p-value ti dice che la differenza tra guariti (8) e non guariti (2) non è un caso.
-
La V di Cramer ti dice che quella differenza è enorme.
In un contesto di business o clinico, questo significa che anche se il campione è piccolo, il segnale è così forte che vale la pena investire in uno studio più grande. È la differenza tra dire “forse funziona” e dire “funziona alla grande, portatemi altri dati”.
Articoli di approfondimento
👉 Test Chi-Quadro: guida completa con esempi pratici e Python
👉 Esercizi svolti su Test Chi-Quadro e la legge di Mendel
👉 Relazioni tra due caratteri statistici
👉 Test Chi-Quadrato per l’indipendenza: guida con 6 esercizi svolti
👉Il Test Chi-Quadrato senza paura: 3 esercizi e p-value spiegato davvero
👉 Test Chi-Quadrato per l’indipendenza: 5 esercizi risolti e scenari attuali





