Test Chi-quadro
Il test più usato per le tabelle, e i casi in cui non va usato
La quota di complicanze è diversa tra i pazienti operati in due ospedali? La vaccinazione è distribuita in modo diverso tra le fasce d'età? Quando si incrociano due variabili categoriche in una tabella, il test chi-quadro è di solito il primo strumento a cui si pensa.

L'idea, in parole semplici
Supponiamo che due ospedali abbiano operato 400 pazienti ciascuno e che, in totale, ci siano state 72 complicanze. Se i due ospedali fossero identici, ci aspetteremmo circa 36 complicanze per parte. Ne osserviamo invece 48 e 24. Il chi-quadro misura quanto le frequenze osservate si allontanano da quelle "attese se non ci fosse differenza", e dice se lo scarto è troppo grande per essere attribuito al caso.
Come funziona
Il test confronta, cella per cella, le frequenze osservate con quelle attese se le due variabili fossero indipendenti. Più le frequenze osservate si allontanano da quelle attese, più cresce il valore del chi-quadro e più diventa difficile sostenere che le due variabili non siano associate.
Quando non usarlo
- Frequenze attese troppo piccole. La regola pratica più diffusa suggerisce cautela quando più del 20% delle celle ha una frequenza attesa inferiore a 5. In questi casi, tipici delle tabelle 2×2 con pochi eventi, si usa il test esatto di Fisher.
- Dati appaiati. Se le due misure riguardano gli stessi soggetti, per esempio prima e dopo un intervento, il chi-quadro non è adatto: serve il test di McNemar.
- Categorie ordinate. Se una variabile è ordinale, come le classi di età o lo stadio di malattia, un test per il trend sfrutta l'ordine e ha più potenza.
Gli errori più comuni
Il chi-quadro dice se esiste un'associazione, non quanto è forte. Con i grandi archivi sanitari anche differenze minime risultano significative: accanto al test vanno sempre riportate misure di effetto come la differenza tra proporzioni, il rischio relativo o l'odds ratio, con il loro intervallo di confidenza. Inoltre, un'associazione in una tabella può sparire o invertirsi quando si tiene conto di una terza variabile (il paradosso di Simpson). Per aggiustare per più fattori insieme servono i modelli di regressione.
Un esempio in sanità
Due ospedali mostrano quote di mortalità diverse dopo un intervento, e il chi-quadro è significativo. Ma se uno dei due tratta pazienti molto più anziani e complessi, la differenza grezza non dice nulla sulla qualità delle cure. Il chi-quadro è un buon punto di partenza per la descrizione, non per la valutazione.
La statistica e le sue varianti
In una tabella con \(r\) righe e \(c\) colonne, indicati con \(O_{ij}\) le frequenze osservate, \(n_{i\cdot}\) e \(n_{\cdot j}\) i totali di riga e di colonna e \(n\) il totale, le frequenze attese sotto indipendenza sono
$$E_{ij} = \frac{n_{i\cdot}\; n_{\cdot j}}{n}$$e la statistica di Pearson è
$$\chi^2 = \sum_{i=1}^{r}\sum_{j=1}^{c} \frac{(O_{ij} - E_{ij})^2}{E_{ij}}$$che sotto l'ipotesi di indipendenza segue approssimativamente una distribuzione \(\chi^2\) con \((r-1)(c-1)\) gradi di libertà.
Correzione di Yates e test esatto
Nelle tabelle 2×2 la correzione di Yates sottrae 0,5 a ogni \(|O_{ij} - E_{ij}|\): rende il test più conservativo ed è oggi considerata poco utile. Con frequenze attese piccole è preferibile il test esatto di Fisher, che calcola la probabilità delle tabelle possibili a margini fissati con la distribuzione ipergeometrica.
Dati appaiati: McNemar
Con due misure sugli stessi soggetti contano solo le coppie discordanti, \(b\) (sì→no) e \(c\) (no→sì):
$$\chi^2_{McN} = \frac{(b - c)^2}{b + c}$$con 1 grado di libertà (la versione con correzione di continuità usa \((|b-c|-1)^2\) al numeratore).
Misure di effetto
In una tabella 2×2 con celle \(a, b, c, d\) (esposti con e senza evento, non esposti con e senza evento):
$$RR = \frac{a/(a+b)}{c/(c+d)}, \qquad OR = \frac{a\,d}{b\,c}, \qquad \phi = \sqrt{\chi^2/n}$$Per tabelle più grandi si usa la V di Cramér, \(V = \sqrt{\chi^2 / (n\,(\min(r,c)-1))}\), compresa tra 0 e 1.
Il chi-quadro in R
tab <- matrix(c(48, 352, 24, 376), nrow = 2, byrow = TRUE,
dimnames = list(Ospedale = c("A", "B"),
Complicanze = c("Sì", "No")))
test <- chisq.test(tab, correct = FALSE)
test
test$expected
# Poche osservazioni: test esatto di Fisher
fisher.test(matrix(c(7, 13, 1, 19), nrow = 2, byrow = TRUE))
# Dati appaiati (stessi pazienti prima e dopo): McNemar
mcnemar.test(matrix(c(30, 15, 5, 50), nrow = 2))
Come leggere l'output
Per i due ospedali \(\chi^2 = 8{,}79\) con 1 grado di libertà (p = 0,003). La tabella test$expected conferma le frequenze attese: 36 complicanze e 364 pazienti senza complicanze per ciascun ospedale.
Nel secondo esempio, con 40 pazienti in tutto, alcune frequenze attese sono inferiori a 5 e si usa Fisher: p = 0,044, con un odds ratio stimato di 9,7 ma un intervallo di confidenza amplissimo (da 1,05 a 483). Con pochi dati l'associazione c'è, ma la sua entità è quasi indeterminata.
Il test di McNemar, sulle 20 coppie discordanti (15 contro 5), dà \(\chi^2 = 4{,}05\) e p = 0,044. mcnemar.test() applica di default la correzione di continuità.
Vedi anche
Verifica di ipotesi · Scale di misura · Modelli lineari generalizzati
Hai tabelle da analizzare e dubbi sul test giusto?
MISSION
Motivati dalla curiosità e dalla passione, il nostro team si impegna ad offrire soluzioni innovative per affrontare sfide e problemi complessi provenienti da diverse aree e settori. Con la nostra esperienza e competenza siamo in grado di rispondere alle esigenze uniche di ogni progetto.
contatti
info@rhoconsulting.it
Social MEdia
