Molti dati non sono misure ma conteggi in categorie: quante volte esce ogni faccia di un dado, quanti errori per tipo di browser, quanti clienti per fascia di soddisfazione. Per chiedersi se questi conteggi sono compatibili con un'ipotesi, lo strumento classico è il test del chi quadrato. È semplice da calcolare anche a mano e insegna bene la logica dei test: confrontare ciò che si osserva con ciò che ci si aspetterebbe.
L'idea di base
Per ogni categoria si confronta la frequenza osservata O con quella attesa E sotto l'ipotesi nulla, e si sommano gli scarti in questo modo:
χ² = Σ (O − E)² / E
Gli scarti sono elevati al quadrato, così quelli positivi e negativi non si annullano, e divisi per l'atteso, così uno scarto di 10 pesa di più in una categoria che ne attendeva 20 che in una che ne attendeva 1.000. Se l'ipotesi nulla è vera, la statistica segue approssimativamente una distribuzione chi quadrato con un certo numero di gradi di libertà. Valori grandi indicano scarti difficili da attribuire al caso.
Primo uso: test di adattamento
Il test di adattamento verifica se una distribuzione osservata è compatibile con una distribuzione teorica.
Il dado è equilibrato?
Lanciamo un dado 120 volte. Se è equilibrato, ci aspettiamo 20 uscite per faccia.
| Faccia | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| Osservato | 15 | 22 | 18 | 25 | 17 | 23 |
| Atteso | 20 | 20 | 20 | 20 | 20 | 20 |
| (O − E)² / E | 1,25 | 0,20 | 0,20 | 1,25 | 0,45 | 0,45 |
La somma è χ² = 3,8. I gradi di libertà sono il numero di categorie meno uno, cioè 5: una volta fissati cinque conteggi e il totale, il sesto è determinato. Con 5 gradi di libertà, un valore di 3,8 corrisponde a un p-value di circa 0,58. Le oscillazioni osservate sono del tutto normali per un dado equilibrato.
Questo esempio mostra anche quanto sia facile vedere schemi nel rumore: il 4 è uscito 25 volte e l'1 solo 15, una differenza che a occhio sembra notevole ma che il caso produce di frequente.
Secondo uso: test di indipendenza
Il test di indipendenza verifica se due variabili categoriche sono associate. I dati si organizzano in una tabella di contingenza.
Gli errori dipendono dal browser?
Analizziamo 3.000 sessioni di un'applicazione web, mille per ciascuno di tre browser:
| Con errore | Senza errore | Totale | |
|---|---|---|---|
| Browser A | 30 | 970 | 1.000 |
| Browser B | 50 | 950 | 1.000 |
| Browser C | 40 | 960 | 1.000 |
| Totale | 120 | 2.880 | 3.000 |
Se errore e browser fossero indipendenti, ogni browser avrebbe lo stesso tasso complessivo di errore, 120/3.000 = 4%. Le frequenze attese si calcolano come totale di riga × totale di colonna / totale generale: 40 errori e 960 sessioni senza errore per ciascun browser.
- Contributi degli errori: 10²/40 + 10²/40 + 0 = 5,0.
- Contributi delle sessioni senza errore: 10²/960 + 10²/960 + 0 ≈ 0,21.
- χ² ≈ 5,21.
I gradi di libertà sono (righe − 1) × (colonne − 1) = 2 × 1 = 2. Il p-value è circa 0,074. Con α = 0,05 non si rifiuta l'indipendenza: la differenza tra il 3% del browser A e il 5% del browser B potrebbe essere dovuta al caso. Con un numero di sessioni dieci volte maggiore e gli stessi tassi, invece, la differenza risulterebbe nettamente significativa.
Con Python
from scipy.stats import chi2_contingency
tabella = [[30, 970], [50, 950], [40, 960]]
chi2, p, gdl, attese = chi2_contingency(tabella)
print(chi2, p, gdl)
Per le tabelle 2 × 2 la funzione applica per impostazione predefinita la correzione di Yates, che rende il test un po' più prudente; si può disattivare con correction=False.
Le condizioni d'uso
Il test si basa su un'approssimazione che funziona solo se:
- le osservazioni sono indipendenti: ogni unità compare una sola volta nella tabella;
- i dati sono conteggi, non percentuali o medie: applicare il test a percentuali dà risultati privi di senso;
- le frequenze attese non sono troppo piccole: una regola pratica comune chiede che siano almeno 5 nella grande maggioranza delle celle.
Quando le frequenze attese sono piccole, per esempio in tabelle 2 × 2 con pochi casi, si usa il test esatto di Fisher, che non ricorre all'approssimazione.
Cosa il test non dice
- Non misura la forza dell'associazione. Con campioni enormi anche associazioni deboli risultano significative. Per la forza si usano indici come la V di Cramér o, più semplicemente, il confronto diretto delle percentuali.
- Non dice dove sta la differenza. Un χ² significativo in una tabella grande indica che qualche cella si discosta dall'atteso; per capire quale bisogna guardare i contributi delle singole celle o i residui standardizzati.
- Non stabilisce un nesso causale. Se gli errori sono più frequenti con un browser, la causa può essere il browser stesso, ma anche il tipo di utenti o di dispositivi che lo usano.
In sintesi
- Il chi quadrato confronta frequenze osservate e attese in categorie.
- Il test di adattamento verifica una distribuzione teorica, quello di indipendenza un'associazione.
- I gradi di libertà sono k − 1 per l'adattamento e (r − 1)(c − 1) per l'indipendenza.
- Va applicato a conteggi indipendenti con frequenze attese non troppo piccole.
- Un risultato significativo non indica né la forza né la causa dell'associazione.