Salta ai contenuti

Test di ipotesi: p-value, potenza, errori di tipo I e II

Il modello A segna 92,1% su un benchmark, il modello B segna 91,4%. A è migliore? La domanda sembra avere una risposta ovvia, e non ce l’ha. Questo capitolo costruisce lo strumento che la risposta la dà davvero — e passa metà del suo tempo a smontare il modo in cui quasi tutti lo leggono male.

C’è una frase che si scrive ogni giorno nei report tecnici, nei post di laboratorio, nelle slide di un confronto fra modelli: “il modello A batte il modello B”. Sotto quella frase c’è quasi sempre un solo numero per parte — due accuratezze, due punteggi, due tassi — e una differenza. La differenza è positiva, quindi A vince. L’inferenza sembra immediata: 92,1 è più di 91,4, fine.

Non è fine. Quei due numeri sono stati misurati su una parte della realtà: mille esempi di test, diecimila, un campione. Su un altro campione estratto dalla stessa distribuzione i numeri sarebbero stati diversi — magari A 91,8 e B 92,0, con il vincitore rovesciato. La differenza di 0,7 punti che hai osservato può essere il sintomo di una superiorità reale di A, oppure il prodotto del caso: il rumore campionario che, da solo, basta a far oscillare due misure equivalenti. Senza uno strumento che distingua i due casi, “A batte B” non è una conclusione, è un’illusione ottica.

Il test di ipotesi è quello strumento. È la procedura formale che prende una differenza osservata e risponde a una domanda precisa: questa differenza è abbastanza grande da non poter essere ragionevolmente attribuita al solo caso? È la macchina che converte “ho visto un numero più alto” in “ho una ragione per credere a una differenza reale” — oppure in “non ce l’ho”.

C’è però un secondo motivo per questo capitolo, ed è più scomodo del primo. Il test di ipotesi produce un numero, il p-value, che è insieme lo strumento statistico più usato della scienza moderna e il più sistematicamente frainteso. La frase che quasi tutti dicono leggendo “p = 0,03” — “c’è solo il 3% di probabilità che il risultato sia dovuto al caso”, oppure “c’è il 97% di probabilità che l’effetto sia reale” — è falsa. Non imprecisa: falsa, e lo è in un modo che cambia la natura di ciò che il test afferma. Questo capitolo dedica una sezione intera a cosa il p-value non è, perché usare uno strumento credendo che dica una cosa mentre ne dice un’altra è peggio che non usarlo. E mostra che dietro la confusione c’è una frattura storica reale: ciò che oggi si insegna come “il test di ipotesi” è in realtà la fusione mal riuscita di due teorie rivali, costruite da persone che non si parlavano.

Il capitolo Intervalli di confidenza ha costruito uno strumento per attaccare a una stima un margine di incertezza: invece di “87,3%”, “87,3% con un intervallo che plausibilmente va dall’85,1% all’89,2%”. Il test di ipotesi è il gemello di quello strumento. Dove l’intervallo di confidenza chiede “quali valori del parametro sono compatibili con i dati?”, il test chiede “uno specifico valore candidato è compatibile con i dati, oppure i dati lo escludono?”. Sono due facce della stessa impalcatura matematica, e l’ultima sezione di questo capitolo mostra esattamente come si saldano.

Per inquadrare i termini, conviene richiamare le fondamenta dell’intera Parte. La popolazione è l’insieme di tutti i casi che interessano — tutti gli input che un modello riceverà, tutti gli utenti di un servizio. Il parametro è un numero che descrive la popolazione: la sua media, una proporzione, una differenza di accuratezza. È fisso ma ignoto. Il campione è la parte che si riesce a osservare. Lo stimatore è la ricetta che dal campione produce un’ipotesi sul parametro. Questi quattro termini vengono dal capitolo Popolazione, campione, stimatore; se uno suona poco familiare, quello è il posto dove fissarlo. Il test di ipotesi vive interamente dentro questo quadro: lavora sempre su un campione, e il suo scopo è dire qualcosa sul parametro che non può vedere.

Il test di ipotesi non ha un solo padre né una sola data di nascita, e questo è il fatto storico centrale del capitolo. Ha due genitori, e i due non andavano d’accordo. Il primo è Ronald Fisher, statistico e genetista britannico, la figura che fra gli anni ‘20 e ‘30 fece della statistica una disciplina sperimentale; il suo libro Statistical Methods for Research Workers del 1925 diffuse i test di significatività presso una generazione di scienziati. Gli altri due sono Jerzy Neyman, statistico polacco poi attivo a Londra e in California, ed Egon Pearson, statistico britannico figlio di Karl Pearson; tra la fine degli anni ‘20 e gli anni ‘30 i due svilupparono un approccio rivale a quello di Fisher. Fisher li attaccò pubblicamente e con asprezza per tutta la vita. Eppure i manuali del dopoguerra fusero i due approcci in un’unica ricetta, e quella ricetta ibrida — incoerente, come vedremo — è ciò che ancora oggi quasi tutti chiamano “test di ipotesi”. La sezione su Fisher contro Neyman-Pearson scioglie questo nodo.

Una distinzione di metodo va messa subito sul tavolo, perché ritorna in ogni esempio. Il test di ipotesi è uno strumento del quadro frequentista della statistica: tratta il parametro come una costante ignota e ragiona su frequenze di lungo periodo — quanto spesso una procedura sbaglia se la si ripete. Esiste un quadro alternativo, quello bayesiano, che tratta il parametro come una quantità incerta dotata di una distribuzione di probabilità, e che risponde a domande diverse. Molti dei fraintendimenti del p-value nascono dal tentare di farne dire qualcosa di bayesiano — “la probabilità che l’ipotesi sia vera” — quando lo strumento è costruito per non poterlo dire. Il capitolo resta dentro il quadro frequentista; il cugino bayesiano compare solo per contrasto, e la sua meccanica vive in Teorema di Bayes e ragionamento bayesiano.

Nel grafo di questa wiki, questo è il settimo capitolo della Parte V. Poggia in modo diretto su Legge dei grandi numeri e teorema del limite centrale: il teorema del limite centrale è ciò che rende note le distribuzioni — normale, t — su cui si appoggiano le statistiche test. Usa la binomiale e la normale di Le distribuzioni comuni, il modo in cui il campione viene estratto di Campionamento, e gli stimatori di Stima puntuale. Il legame più stretto è con Intervalli di confidenza: test e intervallo sono due facce della stessa impalcatura, e l’ultima sezione lo rende esplicito. Guarda avanti verso multiple-testing (in preparazione), che affronta cosa succede quando i test diventano molti, e verso il futuro capitolo statistica-e-ml (in preparazione), sul perché il machine learning senza statistica produce overclaim.

Prima di qualsiasi formula, quattro angoli distinti sul test di ipotesi. Il primo è il processo in tribunale: fissa la logica asimmetrica. Il secondo è il sospetto sulla moneta: fissa il ruolo del caso. Il terzo è il rilevatore di fumo: fissa i due modi in cui un test sbaglia. Il quarto è il misuratore di sorpresa: fissa cosa il p-value misura davvero, ed è la difesa anticipata contro l’errore che il capitolo passerà più tempo a smontare.

Un test di ipotesi è strutturato come un processo penale, e l’analogia non è decorativa: copre quasi tutta la logica.

In tribunale si parte da un presupposto: l’imputato è innocente. Non perché si creda davvero che lo sia, ma perché è lo stato di default, quello che si mantiene finché non arriva una ragione forte per abbandonarlo. Questo presupposto è l’ipotesi nulla, H0H_0: in un test, l’affermazione di “nessun effetto”, “nessuna differenza”, “il caso basta a spiegare ciò che si vede”. Per un confronto fra due modelli, l’ipotesi nulla è “i due modelli hanno la stessa accuratezza”. L’affermazione rivale — “l’imputato è colpevole”, “il modello A è davvero migliore” — è l’ipotesi alternativa, H1H_1: ciò che si vorrebbe dimostrare, ma che va dimostrato.

L’accusa porta prove. Nel test, le prove sono i dati del campione. La domanda che la giuria si pone non è “l’imputato è colpevole?” direttamente, ma una domanda rovesciata: “se l’imputato fosse innocente, quanto sarebbero sorprendenti queste prove?”. Se le prove sono il genere di cosa che capita di continuo anche agli innocenti, non bastano. Se sono il genere di cosa che a un innocente non capita quasi mai, allora il presupposto di innocenza diventa insostenibile e si condanna.

Il verdetto è dove l’analogia diventa precisa, e dove quasi tutti scivolano. Un tribunale non emette mai il verdetto “innocente”. Emette “colpevole” oppure “non colpevole” — e “non colpevole” non significa “abbiamo provato l’innocenza”, significa “l’accusa non ha portato prove sufficienti”. Identico nel test: si rifiuta H0H_0 oppure non si rifiuta H0H_0. Non si “accetta H0H_0”. Non rifiutare l’ipotesi nulla vuol dire soltanto che i dati non bastano a escluderla, non che è stata provata vera. L’assenza di prova non è prova di assenza. Un test che non rifiuta “i due modelli sono uguali” non ha dimostrato che lo sono: ha solo detto che i dati raccolti non bastano a distinguerli.

Il secondo angolo isola il ruolo del caso. Un amico ti propone un gioco con una moneta: se esce testa vinci tu, se esce croce vince lui. Lanciate, e lui vince. Vince di nuovo. E ancora. Dopo otto lanci, ha vinto otto volte su otto. A che punto cominci a sospettare che la moneta sia truccata?

Stai facendo, a intuito, un test di ipotesi completo. L’ipotesi nulla è “la moneta è onesta” — testa e croce equiprobabili, il default ragionevole con cui hai accettato di giocare. L’ipotesi alternativa è “la moneta è truccata a favore della croce”. I dati sono la sequenza di otto croci. E la domanda che ti stai ponendo è esattamente la domanda del test: se la moneta fosse onesta, quanto sarebbe raro un risultato così?

Il conto si fa. Con una moneta onesta, otto croci di fila hanno probabilità (1/2)8=1/256(1/2)^8 = 1/256, circa lo 0,4%. È raro. Tre croci di fila, invece, hanno probabilità 1/81/8, il 12,5%: capita a un giocatore su otto, non è niente di strano. È per questo che dopo tre croci non sospetti nulla e dopo otto sì. La tua soglia di sospetto sta da qualche parte in mezzo, e il test di ipotesi non fa che renderla un numero esplicito invece di lasciarla all’istinto.

Il punto da portare via: il caso, da solo, produce sequenze sorprendenti. Una moneta onesta può dare otto croci — succede una volta su 256. Il test non chiede mai “è impossibile che sia stato il caso?”, perché la risposta è quasi sempre no, il caso può quasi tutto. Chiede “è abbastanza improbabile che sia stato il solo caso da rendere più credibile l’alternativa?”. È una domanda di grado, non di certezza. E la risposta a quella domanda di grado è, in una parola, il p-value.

Il terzo angolo anticipa i due modi in cui un test sbaglia. Pensa a un rilevatore di fumo in cucina.

Il rilevatore ha un compito: suonare quando c’è un incendio, tacere quando non c’è. Ma è un sensore imperfetto che deve decidere su un segnale rumoroso — un po’ di vapore della pasta, una fetta di pane appena troppo tostata — e può sbagliare in due modi opposti, non uno.

Può suonare quando non c’è nessun incendio: lo fai scattare il vapore dell’acqua bollente. È un falso allarme. Nel test, è l’errore di tipo I: gridare a un effetto che non c’è, rifiutare H0H_0 quando in realtà era vera.

Può restare muto mentre la cucina va davvero a fuoco: la batteria è scarica, il sensore è sporco. È un allarme mancato. Nel test, è l’errore di tipo II: non accorgersi di un effetto che c’è, non rifiutare H0H_0 quando in realtà era falsa.

I due errori sono in tensione. Se rendi il rilevatore ipersensibile per non mancare mai un incendio, suonerà a ogni toast: pochi allarmi mancati, tantissimi falsi allarmi. Se lo rendi conservativo per non disturbarti con i falsi allarmi, rischierà di tacere su un principio d’incendio vero: pochi falsi allarmi, più allarmi mancati. Non esiste una taratura che azzeri entrambi gli errori contemporaneamente. L’unico modo di migliorare su entrambi i fronti è un sensore migliore — più informazione, segnale più pulito. Nel test, “un sensore migliore” significa un campione più grande. Tieni stretta questa immagine: torna identica nella sezione sugli errori.

Quarto angolo: il p-value come misuratore di sorpresa

Sezione intitolata “Quarto angolo: il p-value come misuratore di sorpresa”

Un ultimo angolo, mirato dritto al numero che questo capitolo passerà più tempo a smontare. Pensa al p-value come a un misuratore di sorpresa tarato su un mondo preciso: il mondo in cui H0H_0 è vera, in cui non c’è alcun effetto.

Il misuratore funziona così. Si entra in quel mondo — il mondo della moneta onesta, dei due modelli identici — e ci si chiede: “i dati che ho raccolto, qui dentro, quanto sono sorprendenti?”. Se i dati sono il genere di cosa che capita di continuo in un mondo senza effetto, il misuratore segna poca sorpresa: p-value alto. Se i dati sono il genere di cosa che in quel mondo non si vede quasi mai, il misuratore segna molta sorpresa: p-value basso. Il p-value è la lancetta di quello strumento, e va da 1 (nessuna sorpresa, dati banali sotto H0H_0) a 0 (sorpresa massima, dati quasi impossibili sotto H0H_0).

Questo angolo rende immediato perché le frasi sbagliate sono sbagliate. Il misuratore è tarato dentro il mondo di H0H_0: dà per scontato che quel mondo sia reale, e da lì misura la stranezza dei dati. Non può, con la stessa lancetta, dirti la probabilità che quel mondo sia reale — è la cornice del suo funzionamento, non il suo output. Chiedere al misuratore di sorpresa “qual è la probabilità che H0H_0 sia vera?” è chiedergli di misurare la stanza in cui è appeso. Tieni anche questa immagine: è la difesa più rapida contro l’errore numero uno della sezione “Cosa il p-value NON è”.

Adesso i pezzi diventano precisi. Un test di ipotesi, qualunque test, ha la stessa anatomia in cinque parti.

Si parte sempre da una coppia. L’ipotesi nulla H0H_0 è l’affermazione di assenza di effetto, e ha una proprietà tecnica importante: è specifica abbastanza da permettere un calcolo. “La moneta è onesta” fissa la probabilità di croce a esattamente 0,5; “i due modelli hanno la stessa accuratezza” fissa la differenza a esattamente 0. Questa specificità è ciò che rende H0H_0 utilizzabile: solo perché H0H_0 inchioda un valore preciso si può poi calcolare cosa essa preveda.

L’ipotesi alternativa H1H_1 è l’affermazione rivale, e di solito è più vaga: “la moneta è truccata verso croce” (p>0,5p > 0{,}5, senza dire quanto), “il modello A è migliore” (differenza >0> 0, senza dire di quanto). L’alternativa può essere bilaterale — “la differenza è diversa da zero”, senza impegnarsi sul segno — o unilaterale — “la differenza è maggiore di zero”. La scelta va fatta prima di vedere i dati: decidere il lato dopo aver guardato il risultato è una delle porte d’ingresso del p-hacking.

La statistica test è un numero, calcolato dal campione, che misura quanto i dati si discostano da ciò che H0H_0 prevede. Misure diverse usano statistiche diverse — più avanti vedremo z, t, chi-quadro — ma tutte hanno la stessa forma di fondo: prendono lo scarto tra ciò che si è osservato e ciò che H0H_0 predice, e lo dividono per una misura della variabilità attesa. Grosso modo:

statistica test=osservatoatteso sotto H0errore standard\text{statistica test} = \frac{\text{osservato} - \text{atteso sotto } H_0}{\text{errore standard}}

Il denominatore è cruciale: trasforma lo scarto grezzo in uno scarto relativo al rumore. Una differenza di accuratezza di due punti significa poco se la misura traballa di cinque punti da un campione all’altro, e moltissimo se traballa di mezzo punto. La statistica test mette lo scarto e il rumore sulla stessa bilancia.

Il fatto decisivo: la statistica test è una variabile aleatoria — cambia da campione a campione — e ha una distribuzione nota quando H0H_0 è vera. Questa è la distribuzione nulla. È il riferimento contro cui si giudica tutto: dice quali valori della statistica sono comuni e quali rari nel mondo in cui H0H_0 vale. Il teorema del limite centrale del capitolo Legge dei grandi numeri e teorema del limite centrale è ciò che, in moltissimi casi, garantisce che quella distribuzione sia conosciuta e maneggevole.

La regione di rifiuto (o regione critica) è l’insieme dei valori della statistica test così estremi che, se osservati, portano a rifiutare H0H_0. Il confine di quella regione è il valore critico. Se la statistica calcolata cade oltre il valore critico, dentro la regione di rifiuto, si rifiuta H0H_0; altrimenti non si rifiuta.

Quanto deve essere lontano il valore critico? Lo decide il livello di significatività α\alpha, scelto prima di guardare i dati. α\alpha è la probabilità che si è disposti ad accettare di rifiutare H0H_0 per sbaglio quando H0H_0 è in realtà vera. La convenzione più diffusa è α=0,05\alpha = 0{,}05: la regione di rifiuto è tagliata in modo che, se H0H_0 è vera, la statistica ci finisca dentro solo il 5% delle volte. Il 5% non ha nulla di sacro — ne parla la sezione “Dove si rompe” — è un’eredità di Fisher, che lo propose come soglia comoda e non come legge.

Il p-value è il modo moderno di riportare il risultato, e merita una definizione data con cura, parola per parola:

Il p-value è la probabilità, calcolata assumendo che H0H_0 sia vera, di osservare una statistica test estrema almeno quanto quella effettivamente ottenuta.

Tre clausole, tutte indispensabili. Calcolata assumendo H0H_0 vera: il p-value vive interamente dentro l’ipotesi nulla, è un conto fatto nel mondo in cui non c’è effetto. Almeno quanto: non si guarda la probabilità del risultato esatto, ma quella del risultato osservato più tutti quelli ancora più estremi nella direzione dell’alternativa. Estrema: lontana da ciò che H0H_0 prevede.

A parole, il p-value risponde a: “se non ci fosse alcun effetto, quanto spesso il solo caso produrrebbe dati sorprendenti come i miei, o di più?”. Un p-value piccolo significa che i dati osservati sarebbero rari in un mondo senza effetto — e quindi quel mondo, H0H_0, è in tensione con ciò che si è visto. Un p-value grande significa che i dati sono perfettamente compatibili con l’assenza di effetto.

Il p-value e la regione di rifiuto sono due modi di dire la stessa cosa: rifiutare H0H_0 “quando la statistica entra nella regione di rifiuto a livello α\alpha” equivale esattamente a rifiutare H0H_0 “quando pαp \le \alpha”. Il p-value è più informativo perché è un numero continuo, non un sì/no: p=0,001p = 0{,}001 e p=0,049p = 0{,}049 portano entrambi a rifiutare a α=0,05\alpha = 0{,}05, ma raccontano quantità di tensione con H0H_0 molto diverse.

Messi insieme, i cinque pezzi formano una procedura che si ripete identica per ogni test. Eccola come lista, perché è la sequenza che si esegue ogni volta che si confrontano due modelli o si valuta un A/B test:

  1. Formulare H0H_0 e H1H_1 prima di vedere i dati. H0H_0 è l’assenza di effetto, H1H_1 ciò che si vuole dimostrare; si decide subito se l’alternativa è uni- o bilaterale.
  2. Scegliere α\alpha, sempre prima dei dati. È il rischio di falso positivo che si è disposti a correre; 0,05 è la convenzione, non l’obbligo.
  3. Calcolare la statistica test dal campione: lo scarto tra osservato e atteso, diviso per l’errore standard.
  4. Confrontare con la distribuzione nulla per ottenere il p-value: quanto sarebbero rari dati così sotto H0H_0.
  5. Decidere: se pαp \le \alpha si rifiuta H0H_0, altrimenti non si rifiuta — ricordando che “non rifiutare” non è “accettare”.

L’ordine non è negoziabile. I passi 1 e 2 vengono prima del passo 3 non per pedanteria, ma perché spostarli dopo aver visto i dati è la radice tecnica del p-hacking: scegliere il lato dell’alternativa, o la soglia, guardando il risultato, distrugge la garanzia che α\alpha dovrebbe fornire. La sezione “Dove si rompe” torna su questo.

L’anatomia in cinque parti è sempre la stessa; ciò che cambia da un test all’altro è la forma della statistica test e la distribuzione nulla contro cui la si giudica. Tre test coprono la grande maggioranza dei casi pratici. Non serve impararne le formule a memoria — quasi sempre le calcola una libreria — ma serve sapere quale si applica quando, perché applicare il test sbagliato produce un p-value preciso e privo di senso.

Lo z-test confronta una media (o una proporzione) osservata con un valore atteso, e si usa quando la variabilità della popolazione è nota a priori, oppure quando il campione è abbastanza grande da poterla stimare senza errore apprezzabile. La statistica è

z=xˉμ0σ/nz = \frac{\bar x - \mu_0}{\sigma / \sqrt n}

dove xˉ\bar x è la media osservata, μ0\mu_0 il valore previsto da H0H_0, σ\sigma la deviazione standard della popolazione e nn la dimensione del campione. La distribuzione nulla è la normale standard — la curva a campana centrata in zero — e il teorema del limite centrale è ciò che la garantisce. Per α=0,05\alpha = 0{,}05 bilaterale, il valore critico è il celebre 1,96: se z>1,96|z| > 1{,}96 si rifiuta. L’A/B test dell’Esempio 3 più avanti è, nella sostanza, uno z-test su due proporzioni.

Il t-test risponde alla stessa domanda dello z-test — una media è diversa da un valore atteso? — ma nel caso più realistico in cui σ\sigma non è nota e va stimata dai dati stessi con la deviazione standard campionaria ss. La statistica ha la stessa forma,

t=xˉμ0s/nt = \frac{\bar x - \mu_0}{s / \sqrt n}

ma con ss al posto di σ\sigma la distribuzione nulla non è più la normale: è la t di Student, una campana simile alla normale ma con le code più spesse. Le code più spesse sono la traccia di un’incertezza in più — non si conosce la variabilità vera, la si è stimata — e rendono il test un po’ più prudente con campioni piccoli. La t dipende da un parametro, i gradi di libertà, pari a n1n-1: meno dati, code più spesse; al crescere di nn la t converge alla normale e t-test e z-test diventano indistinguibili. Il t-test ha tre varianti — a un campione, a due campioni indipendenti, appaiato — e quella appaiata è esattamente lo strumento per confrontare due modelli misurati sugli stessi esempi con una metrica continua.

Decoder storico. La distribuzione t fu pubblicata nel 1908 da William Sealy Gosset, un chimico che lavorava al controllo qualità del birrificio Guinness a Dublino. Gosset doveva trarre conclusioni da campioni piccolissimi di malto e luppolo, dove l’approssimazione normale falliva. La Guinness vietava ai dipendenti di pubblicare per non rivelare segreti industriali, e Gosset firmò il suo lavoro — The Probable Error of a Mean, sulla rivista Biometrika — con lo pseudonimo “Student”. Il test porta ancora quel nome.

Lo z-test e il t-test lavorano su numeri continui — medie, proporzioni. Il test del chi-quadro (si scrive χ2\chi^2) lavora su dati categoriali: conteggi, frequenze, “quante volte è capitata la categoria X”. Ha due usi principali. Il primo è la bontà di adattamento: i dati osservati seguono una distribuzione attesa? Per esempio, un dado lanciato 600 volte produce le sei facce con le frequenze che ci si aspetterebbe da un dado equo? Il secondo è il test di indipendenza su una tabella di contingenza: due variabili categoriali sono associate o indipendenti? Per esempio, in un A/B test, la variante mostrata (A o B) è associata all’esito (conversione sì/no)?

La statistica confronta le frequenze osservate OO con quelle attese EE sotto H0H_0:

χ2=(OE)2E\chi^2 = \sum \frac{(O - E)^2}{E}

Ogni cella contribuisce con lo scarto al quadrato tra osservato e atteso, normalizzato dall’atteso. Se i dati combaciano con H0H_0 la somma è piccola; se se ne discostano, cresce. La distribuzione nulla è la distribuzione chi-quadro, anch’essa indicizzata dai gradi di libertà. Il test del chi-quadro fu introdotto da Karl Pearson, matematico britannico fondatore della statistica moderna, in un lavoro del 1900: fu il primo test di ipotesi formale della storia della statistica, e aprì la strada a tutto ciò che è venuto dopo — Fisher, Neyman, lo stesso Egon Pearson, figlio di Karl, costruirono sulle fondamenta che quel paper aveva posato.

In sintesi: dato continuo e varianza nota o campione grande, z-test; dato continuo e varianza stimata dai dati, t-test; dato categoriale e conteggi, chi-quadro. Tutti e tre seguono lo stesso copione — statistica test, distribuzione nulla, p-value — e tutti e tre danno un numero valido solo se le loro assunzioni reggono. La sezione “Dove si rompe” torna su questo punto: un test applicato a dati che ne violano le assunzioni produce un p-value dall’aria rigorosa e dal contenuto vuoto.

Esiste anche una famiglia di test che fa molte meno assunzioni: i test di permutazione e i metodi basati sul bootstrap. Invece di appoggiarsi a una distribuzione nulla teorica — normale, t, chi-quadro — costruiscono la distribuzione nulla dai dati stessi, rimescolando le etichette migliaia di volte per vedere quanto spesso il caso produce una differenza grande quanto quella osservata. Sono particolarmente utili in machine learning, dove le metriche di interesse (un punteggio F1, un BLEU, un win rate) hanno distribuzioni che nessuna formula classica descrive bene. La meccanica del ricampionamento è il tema di bootstrap (in preparazione).

Ora la sezione per cui questo capitolo esiste. Il p-value è il numero più riportato e più frainteso della scienza moderna. Gli errori che seguono non sono sviste da principianti distratti: li commettono ricercatori che pubblicano e usano p-value ogni settimana. Nel 2016, per la prima volta nei suoi quasi 180 anni di storia, l’American Statistical Association — l’associazione di categoria degli statistici negli Stati Uniti — pubblicò una presa di posizione ufficiale su un singolo concetto statistico: lo ASA Statement on p-Values, firmato da Ronald Wasserstein e Nicole Lazar (The American Statistician, 2016). Che un’intera disciplina senta il bisogno di un comunicato per spiegare come non leggere uno dei suoi strumenti dice quanto il fraintendimento sia profondo.

L’errore numero uno: il p-value non è la probabilità che H0 sia vera

Sezione intitolata “L’errore numero uno: il p-value non è la probabilità che H0 sia vera”

Ecco la frase, nella sua forma più comune:

“Ho ottenuto p = 0,03, quindi c’è solo il 3% di probabilità che l’ipotesi nulla sia vera” — oppure, equivalentemente, “c’è il 97% di probabilità che l’effetto sia reale”.

Questa frase è falsa. La ragione è una sola, e una volta vista non si dimentica: il p-value è una probabilità sui dati, non sull’ipotesi. Il p-value è

p=P(dati estremi almeno cosıˋH0 vera)p = P(\text{dati estremi almeno così} \mid H_0 \text{ vera})

cioè la probabilità dei dati, dato che H0H_0 è vera. La frase sbagliata lo legge come

P(H0 veradati)P(H_0 \text{ vera} \mid \text{dati})

cioè la probabilità che H0H_0 sia vera, dati i dati. Sono due probabilità condizionate diverse, con il condizionante e il condizionato scambiati di posto, e scambiarli è un errore logico con un nome: la fallacia del condizionale trasposto, nota anche come fallacia dell’accusatore.

Un esempio rende lo scambio palpabile. La probabilità che una persona parli italiano dato che è il Papa è altissima — vicina a 1. La probabilità che una persona sia il Papa dato che parla italiano è vicina a zero: ci sono decine di milioni di persone che parlano italiano e un solo Papa. P(AB)P(A \mid B) e P(BA)P(B \mid A) possono essere lontanissime. Leggere "p=0,03p = 0{,}03" come “3% di probabilità che H0H_0 sia vera” fa esattamente questo scambio: confonde P(datiH0)P(\text{dati} \mid H_0) con P(H0dati)P(H_0 \mid \text{dati}).

C’è anche una ragione più profonda per cui la frase non può funzionare. Per arrivare a P(H0dati)P(H_0 \mid \text{dati}) — la probabilità che la nulla sia vera — servirebbe sapere quanto H0H_0 fosse plausibile prima di raccogliere i dati: il suo prior. Una differenza fra due modelli quasi identici parte da un’aspettativa diversa rispetto a una differenza fra un modello e una sua versione palesemente migliorata. Il p-value non contiene quel prior, non lo ha mai chiesto, e quindi non può restituire P(H0dati)P(H_0 \mid \text{dati}). Quella quantità esiste — è il risultato di un ragionamento bayesiano, il tema di Teorema di Bayes e ragionamento bayesiano — ma il p-value non è quella quantità e non vi si converte senza informazione aggiuntiva.

L’errore numero due: non è la probabilità che sia “tutto caso”

Sezione intitolata “L’errore numero due: non è la probabilità che sia “tutto caso””

Variante della stessa confusione: ”p=0,03p = 0{,}03, quindi c’è solo il 3% di probabilità che il risultato sia dovuto al caso”. Falsa, e per un motivo quasi comico: il p-value parte assumendo che sia tutto caso. ”H0H_0 vera” significa esattamente “non c’è effetto, è tutto rumore campionario”. Il p-value è un conto fatto dentro quel mondo. Non può quindi essere la probabilità di quel mondo: lo dà per scontato per poter calcolare. Chiedere al p-value “qual è la probabilità che sia tutto caso?” è come chiedere a una mappa disegnata assumendo che la Terra sia piatta qual è la probabilità che la Terra sia piatta.

L’errore numero tre: un p-value grande non prova H0

Sezione intitolata “L’errore numero tre: un p-value grande non prova H0”

Specularmente: ”p=0,40p = 0{,}40, quindi i due modelli sono uguali”. No. Un p-value grande dice solo che i dati non bastano a rifiutare H0H_0 — è il “non colpevole” del tribunale, non l‘“innocente”. Le ragioni di un p-value grande sono almeno due, e una non ha niente a che vedere con l’assenza di effetto: il campione potrebbe essere troppo piccolo per vedere un effetto che pure esiste. Un test con potenza bassa restituisce p-value grandi anche quando l’alternativa è vera. “Non ho trovato una differenza” e “ho trovato che non c’è differenza” sono affermazioni diverse, e solo la seconda richiederebbe un test progettato apposta — un test di equivalenza.

L’errore numero quattro: significativo non vuol dire importante

Sezione intitolata “L’errore numero quattro: significativo non vuol dire importante”

p<0,001p < 0{,}001, l’effetto è enorme.” Non segue. Il p-value non misura la dimensione dell’effetto, misura quanto solidamente lo si è distinto dal rumore. Con un campione abbastanza grande, una differenza di accuratezza dello 0,01% — reale ma del tutto irrilevante in pratica — produce un p-value minuscolo e “altamente significativo”. La significatività statistica risponde a “questo effetto è distinguibile dal caso?”; la rilevanza pratica risponde a “questo effetto è grande abbastanza da contare?”. Sono due domande diverse, e un p-value risponde solo alla prima. È il principio 5 dello ASA Statement, ed è il motivo per cui un p-value andrebbe sempre accompagnato da una stima della dimensione dell’effetto — tipicamente un intervallo di confidenza.

Se "p=0,03p = 0{,}03" non significa nessuna delle frasi sopra, cosa significa? Una sola cosa, e va detta con la sua intera clausola condizionale:

“Se non ci fosse alcun effetto, dati come quelli che ho osservato — o ancora più estremi — comparirebbero solo nel 3% dei campioni.”

Tutto qui. È un’affermazione sulla rarità dei dati in un mondo ipotetico senza effetto, non sulla probabilità di quel mondo. Da lì si può fare un passo di ragionamento — “dati così rari sotto H0H_0 rendono H0H_0 poco credibile” — ma è un passo di giudizio, non un’uguaglianza, e non trasforma il 3% in una probabilità di H0H_0.

Lo ASA Statement riassume questa intera sezione in due dei suoi sei principi. Principio 2: il p-value non misura la probabilità che l’ipotesi studiata sia vera, né la probabilità che i dati siano stati prodotti dal solo caso. Principio 5: un p-value non misura la dimensione di un effetto né l’importanza di un risultato. Una rassegna sistematica della stessa annata — Greenland e colleghi, Statistical tests, P values, confidence intervals, and power: a guide to misinterpretations (European Journal of Epidemiology, 2016) — elenca venticinque fraintendimenti distinti, e annota che non esiste un’interpretazione del p-value che sia insieme semplice, intuitiva, corretta e a prova di errore. L’interpretazione corretta è quella lunga, con il “se” davanti. Ogni versione abbreviata che hai sentito è quasi certamente una delle venticinque.

Riprendiamo il rilevatore di fumo e rendiamolo preciso. Un test produce una decisione binaria — rifiuto o non rifiuto H0H_0 — e la realtà ha due stati — H0H_0 vera o H0H_0 falsa. Quattro combinazioni, due corrette e due errori.

H0H_0 è veraH0H_0 è falsa
Rifiuto H0H_0Errore di tipo I (falso positivo)Decisione corretta
Non rifiuto H0H_0Decisione correttaErrore di tipo II (falso negativo)

L’errore di tipo I è il falso allarme: rifiutare H0H_0 quando è vera, gridare a un effetto che non c’è. La sua probabilità è α\alpha, lo stesso livello di significatività che taglia la regione di rifiuto. Questo chiude un cerchio: scegliere α=0,05\alpha = 0{,}05 significa costruire un test che, quando H0H_0 è vera, la rifiuta per sbaglio nel 5% dei casi. α\alpha non è una proprietà che si scopre dopo: è una manopola che si gira prima.

L’errore di tipo II è l’allarme mancato: non rifiutare H0H_0 quando è falsa, lasciar passare un effetto reale. La sua probabilità si chiama β\beta.

La potenza di un test è 1β1 - \beta: la probabilità di rifiutare H0H_0 quando è davvero falsa, cioè di accorgersi di un effetto che c’è. Un test con potenza alta è un buon rilevatore: quando l’incendio c’è, suona. Un test con potenza bassa è un sensore con la batteria scarica — può tacere su effetti reali, e i suoi p-value grandi non vanno letti come “non c’è niente” ma come “non ho gli strumenti per vedere”.

I due errori sono in tensione, esattamente come per il rilevatore di fumo. A parità di campione, stringere la regione di rifiuto — abbassare α\alpha per avere meno falsi allarmi — la allontana dai valori che l’alternativa produrrebbe, e quindi alza β\beta: meno falsi positivi, più effetti mancati. Allargarla fa il contrario. Non esiste una scelta di α\alpha che azzeri entrambi gli errori: si può solo decidere come distribuirli.

L’unico modo di ridurre entrambi gli errori insieme è far migliorare il sensore. Per un test, “sensore migliore” si traduce in modi concreti: un campione più grande (più dati restringono la distribuzione della statistica e separano meglio i due mondi), un effetto reale più grande (più facile da vedere), una varianza più piccola nei dati (meno rumore in cui l’effetto si nasconde). La potenza dipende da quattro leve: α\alpha, dimensione del campione nn, dimensione dell’effetto, variabilità. Fissate tre, la quarta è determinata.

Da qui l’analisi di potenza a priori, una pratica che si fa prima di raccogliere i dati: fissati α\alpha (per esempio 0,05), la potenza desiderata (per convenzione spesso 0,80) e la più piccola dimensione di effetto che interessa rilevare, si calcola il campione nn necessario. È il calcolo che dice “per poter distinguere un miglioramento di un punto di accuratezza dal rumore, mi servono almeno N esempi di test”. Saltarlo porta alla situazione frustrante in cui, a esperimento concluso, ci si accorge che il test non aveva la risoluzione per rispondere alla domanda — e un p-value grande resta ambiguo tra “non c’è effetto” e “non avevo abbastanza dati”.

Perché un tribunale fissa α\alpha molto basso — preferisce molti colpevoli assolti a un innocente condannato? Perché ha deciso che l’errore di tipo I è il più grave. La scelta di α\alpha codifica un giudizio di valore su quale errore costa di più. In un controllo qualità di sicurezza — un test che cerca un difetto pericoloso — l’errore costoso è l’opposto: mancare il difetto (tipo II) può uccidere, un falso allarme costa solo un’ispezione in più, e quindi si vorrà β\beta piccolo anche al prezzo di un α\alpha più alto. Non c’è una taratura universalmente giusta: c’è la taratura che riflette i costi del problema concreto. La statistica fornisce la macchina; quale errore temere di più è una decisione che la macchina non prende.

Fisher contro Neyman-Pearson: due framework, non uno

Sezione intitolata “Fisher contro Neyman-Pearson: due framework, non uno”

Qui si scioglie il nodo storico. Ciò che la sezione “La meccanica” ha presentato come un’unica procedura ordinata è in realtà la fusione di due teorie rivali, costruite negli stessi anni da persone in conflitto aperto, e fuse in seguito da chi scriveva i manuali. Le due teorie rispondono a domande diverse, e capirne la differenza è ciò che spiega perché il p-value resta così frainteso: lo si usa, nella stessa frase, per fare due lavori che appartengono a due teorie incompatibili.

Il primo framework è quello di Ronald Fisher, diffuso a partire da Statistical Methods for Research Workers (1925). I suoi tratti:

  • C’è una sola ipotesi: la nulla H0H_0. Nessuna ipotesi alternativa esplicita. Si mette alla prova H0H_0 e basta.
  • Il p-value è una misura continua di evidenza contro H0H_0, da pesare in un singolo esperimento. Più piccolo, più forte l’evidenza contro la nulla. Il p-value è il risultato, da riportare e interpretare per quello che è.
  • Nessun errore di tipo II, nessuna potenza: senza un’alternativa specificata non esiste un “effetto da mancare” ben definito, quindi questi concetti semplicemente non compaiono.
  • Nessun α\alpha fisso obbligatorio. Fisher trattava la soglia come contestuale, da valutare caso per caso e anche dopo aver visto i dati. Il celebre 0,05 era un’indicazione di comodità — “un valore conveniente” — non una legge.

Per Fisher il test è uno strumento di ragionamento induttivo: serve a imparare qualcosa da questo esperimento.

Il secondo framework nasce poco dopo, tra il 1928 e gli anni ‘30, dal lavoro di Jerzy Neyman ed Egon Pearson. Tratti opposti su quasi ogni punto:

  • Ci sono due ipotesi, H0H_0 e H1H_1, entrambe specificate in anticipo.
  • Niente p-value come evidenza. Si fissano α\alpha e β\beta prima di vedere i dati, si costruisce la regione di rifiuto, e si prende una decisione binaria: rifiuto o non rifiuto. Il risultato non è un grado di evidenza, è un’azione.
  • α\alpha e β\beta sono tassi di errore di lungo periodo: garanzie sulla frequenza con cui la procedura sbaglia se viene ripetuta molte volte. Non dicono nulla sul singolo esperimento in corso.
  • La potenza 1β1-\beta è centrale, e va calcolata a priori.

Per Neyman e Pearson il test non è ragionamento, è una regola di comportamento induttivo: una politica di decisione che, applicata di routine a tanti problemi, mantiene i tassi di errore sotto controllo. Neyman lo disse esplicitamente — il test non dice se questa particolare ipotesi è vera, dice come comportarsi in modo che, sul lungo periodo, ci si sbagli abbastanza di rado.

La differenza è di sostanza, non di vocabolario. Per Fisher il numero importante esce dai dati (il p-value) e parla di questo esperimento. Per Neyman-Pearson i numeri importanti si fissano prima dei dati (α\alpha, β\beta) e parlano della procedura sul lungo periodo. Una teoria misura evidenza in un caso singolo; l’altra controlla frequenze di errore su molti casi.

Un modo concreto di sentire la distanza tra i due framework: si immagini di aver ottenuto p=0,03p = 0{,}03 e di chiedere a ciascuno dei due cosa significa. Il Fisher risponde: “i tuoi dati sono in una certa tensione con H0H_0 — il caso, da solo, li produrrebbe il 3% delle volte; pesa questa evidenza insieme a tutto il resto che sai”. Non c’è una soglia, non c’è una decisione obbligata, c’è un grado di evidenza da interpretare con giudizio. Il Neyman-Pearson risponde in modo del tutto diverso: “non mi interessa il valore 0,03 in sé; mi interessa solo se cade dentro o fuori la regione di rifiuto che ho fissato in anticipo. È dentro? Allora rifiuto H0H_0 e agisco di conseguenza, sapendo che questa regola, applicata sempre, mi farà sbagliare per falso positivo non più del 5% delle volte”. Il primo legge un numero come evidenza; il secondo esegue una regola e non guarda nemmeno il numero, solo se ha superato la soglia. Sono due usi incompatibili dello stesso dato.

Fisher e Neyman si combatterono per decenni, con toni personali e pubblici. Eppure, a partire dagli anni ‘40, i manuali di statistica fecero una cosa che nessuno dei due avrebbe approvato: cucirono insieme i due approcci in un’unica ricetta da insegnare agli studenti, spesso senza accorgersi che i pezzi non combaciavano. È quello che oggi si chiama NHST, null hypothesis significance testing, ed è la procedura che la sezione “La meccanica” ha descritto.

La ricetta ibrida fa, nell’ordine, questo: formula H0H_0 e H1H_1 (preso da Neyman-Pearson); fissa α=0,05\alpha = 0{,}05 (Neyman-Pearson); calcola un p-value (Fisher); e poi — qui l’incoerenza — usa quel p-value sia come misura di evidenza alla Fisher sia come se fosse il tasso di errore α\alpha alla Neyman-Pearson, trattando "p=0,03p = 0{,}03" come se contemporaneamente quantificasse l’evidenza di questo studio e garantisse una frequenza di errore. Ma il p-value è un dato del campione, varia da esperimento a esperimento; α\alpha è una soglia fissata a priori, costante. Sono oggetti diversi. La fusione li tratta come se fossero lo stesso, e mescola due domande — “quanta evidenza in questo studio?” e “quale tasso di errore sul lungo periodo?” — che le due teorie tenevano accuratamente separate.

Lo psicologo Gerd Gigerenzer ha dato a questo ibrido un nome tagliente: il null ritual, il rituale della nulla — una procedura meccanica eseguita senza comprenderne le radici, in cui si fissa sempre α=0,05\alpha = 0{,}05, si calcola sempre un p-value, e si confonde sistematicamente cosa quel numero possa e non possa dire. Molti dei fraintendimenti della sezione precedente nascono proprio qui: il p-value viene letto come un tasso di errore (eredità Neyman-Pearson) o come la probabilità di un’ipotesi (cosa che nessuno dei due framework gli ha mai attribuito) perché la procedura ibrida non chiarisce mai da quale teoria ogni pezzo provenga.

Da ricordare, perché è la radice della confusione: quando in un report si legge “p = 0,03, significativo a α = 0,05”, si stanno usando in una frase sola un concetto di Fisher (il p-value come evidenza) e un concetto di Neyman-Pearson (α come soglia di una regola di decisione). Funziona come ricetta operativa, ma le due metà rispondono a domande diverse, e dimenticarlo è il primo passo verso ogni cattiva interpretazione.

Quattro esempi, da domini eterogenei, per vedere la stessa macchina al lavoro su problemi diversi.

Riprendiamo la moneta dell’intuizione e portiamola al numero. Un amico propone il gioco; in dieci lanci, esce croce nove volte. La moneta è truccata?

H0H_0: la moneta è onesta, P(croce)=0,5P(\text{croce}) = 0{,}5. H1H_1 (unilaterale): la moneta è truccata verso croce, P(croce)>0,5P(\text{croce}) > 0{,}5. La statistica naturale è il numero di croci osservato, 9; la sua distribuzione sotto H0H_0 è la binomiale con n=10n = 10 e p=0,5p = 0{,}5, dalla distribuzione binomiale del capitolo Le distribuzioni comuni.

Il p-value è la probabilità, sotto H0H_0, di un risultato estremo almeno quanto 9 croci — quindi 9 croci o 10 croci. La binomiale dà P(9)=10/1024P(9) = 10/1024 e P(10)=1/1024P(10) = 1/1024, per un totale di 11/10240,01111/1024 \approx 0{,}011. Il p-value è circa 0,011: in un mondo con la moneta onesta, un risultato così sbilanciato comparirebbe in poco più di un campione su cento. A α=0,05\alpha = 0{,}05 si rifiuta H0H_0.

La lettura corretta del risultato: non “c’è l’1,1% di probabilità che la moneta sia onesta”. L’1,1% è la rarità di questo dato nel mondo in cui la moneta è onesta. Che poi quella rarità renda poco credibile l’onestà della moneta è un passo di buon senso, ma il numero 0,011 resta una probabilità sui dati, non sull’ipotesi.

Esempio 2: il modello A batte davvero il modello B?

Sezione intitolata “Esempio 2: il modello A batte davvero il modello B?”

Lo scenario del cappello introduttivo, reso concreto. Due modelli vengono valutati sullo stesso test set di 2.000 esempi. Il modello A risponde correttamente a 1.842 esempi (92,1%), il modello B a 1.828 (91,4%). A è migliore?

H0H_0: i due modelli hanno la stessa accuratezza sulla popolazione di tutti i possibili input. H1H_1: le accuratezze sono diverse (test bilaterale). Poiché i due modelli sono valutati sugli stessi esempi, la scelta corretta non è confrontare le due accuratezze come se venissero da campioni indipendenti: i risultati sono appaiati. Ciò che conta sono solo gli esempi su cui i due modelli discordano — quelli che A azzecca e B sbaglia, e viceversa. È la logica del test di McNemar, il test appropriato per confrontare due classificatori sugli stessi dati. Supponiamo che A azzecchi e B sbagli in 40 casi, e B azzecchi e A sbagli in 26 casi: i 1.802 casi in cui entrambi concordano non portano informazione sulla differenza.

Sotto H0H_0, ognuno dei 66 casi discordanti dovrebbe andare a favore dell’uno o dell’altro con probabilità 0,5 — è di nuovo una moneta onesta, lanciata 66 volte. Si è osservato 40 a favore di A. Il p-value è la probabilità, sotto H0H_0, di uno sbilanciamento estremo almeno quanto 40 su 66 (in entrambe le direzioni, perché il test è bilaterale). Il conto binomiale dà un p-value attorno a 0,12. A α=0,05\alpha = 0{,}05, non si rifiuta H0H_0.

La conclusione operativa non è “A e B sono uguali”. È: con 2.000 esempi, il vantaggio osservato di 0,7 punti di A è dentro il rumore campionario — i dati non bastano a distinguere i due modelli. Se la differenza fosse reale e si volesse poterla rilevare, l’analisi di potenza direbbe di quanto ampliare il test set. Questo è il punto su cui insiste tutto il capitolo: “92,1 contro 91,4” sembra una conclusione e non lo è; lo diventa solo dopo che un test ha parlato — e qui il test ha detto di non concludere.

Vale la pena soffermarsi sul perché il test appaiato è la scelta giusta e non un dettaglio. Se si trattassero le due accuratezze come misure indipendenti — come se A e B fossero stati valutati su due test set diversi — si butterebbe via l’informazione più preziosa: il fatto che molti esempi sono facili per entrambi e molti difficili per entrambi. Quella struttura condivisa è rumore comune che, in un confronto appaiato, si cancella, lasciando emergere il segnale della differenza. Ignorarla gonfia l’errore standard e rende il test molto meno potente. È lo stesso principio di un esperimento prima-dopo sulla stessa persona invece che su due persone diverse: confrontare ciò che condivide un contesto comune isola meglio l’effetto. Per questo, sui benchmark — dove i due modelli vedono sempre gli stessi esempi — il confronto appaiato non è un’opzione fra le tante, è quello corretto.

Un dominio diverso: una decisione di prodotto. Si testano due versioni del prompt di sistema di un assistente. La versione A viene servita a 4.000 utenti, e 520 completano l’azione obiettivo: tasso di conversione 13,0%. La versione B viene servita ad altri 4.000 utenti, e 600 completano: tasso 15,0%. B converte due punti meglio. Si spedisce B?

H0H_0: le due versioni hanno lo stesso tasso di conversione. H1H_1: i tassi sono diversi. Qui i due gruppi di utenti sono distinti — non è un confronto appaiato — quindi il test naturale è uno z-test per due proporzioni (o, in modo del tutto equivalente per due gruppi, un chi-quadro su una tabella due per due). La statistica test misura la differenza osservata 0,02 in unità del suo errore standard, costruito dall’ipotesi che le due conversioni vere coincidano. Con questi numeri la statistica z vale circa 2,7, e il p-value bilaterale corrispondente è circa 0,007. A α=0,05\alpha = 0{,}05 si rifiuta H0H_0: la differenza di due punti è oltre il rumore plausibile, e i dati sostengono che B converte davvero meglio.

Due avvertenze, però, da non saltare. Primo: il test dice che la differenza è distinguibile dal caso, non che sia grande. Due punti di conversione possono valere molto o poco a seconda del prodotto — è il principio 5 dello ASA, significatività non è importanza. Secondo: questo risultato è onesto solo se le due versioni sono state confrontate una volta sola, su un campione dimensionato in anticipo. Se si fosse guardato il p-value ogni giorno fermandosi appena è sceso sotto 0,05 (optional stopping), o se si fossero provate dieci varianti di prompt riportando solo la vincente, il p-value di 0,007 non varrebbe più: sarebbe p-hacking, e ne parla la sezione che segue.

Un esempio da un dominio ancora diverso, per fissare l’errore numero uno con una scena concreta. Un nuovo test diagnostico per una malattia rara ha un livello di significatività α=0,05\alpha = 0{,}05: progettato in modo che, su una persona sana, scatti per errore solo nel 5% dei casi. Una persona risulta positiva. Qual è la probabilità che sia malata?

L’istinto risponde “95%”. È sbagliato, ed è esattamente l’errore del condizionale trasposto. Il 5% è P(positivosano)P(\text{positivo} \mid \text{sano}) — una probabilità sul dato, dato lo stato. La domanda chiede P(malatopositivo)P(\text{malato} \mid \text{positivo}) — lo stato, dato il dato. Per rispondere serve un’informazione che il test non contiene: quanto la malattia è rara, il tasso di base.

Numeri concreti. La malattia colpisce 1 persona su 1.000. Su 100.000 persone, 100 sono malate e 99.900 sane. Il test, sui 99.900 sani, produce circa 5%×99.9004.9955\% \times 99.900 \approx 4.995 falsi positivi. Sui 100 malati ne individua, poniamo, 90. Totale dei positivi: 4.995+90=5.0854.995 + 90 = 5.085. Di questi, solo 90 sono davvero malati. La probabilità di essere malati dato un test positivo è 90/5.0851,8%90 / 5.085 \approx 1{,}8\% — non 95%. La stragrande maggioranza dei positivi sono falsi positivi, perché i sani sono moltissimi di più dei malati.

Lo stesso meccanismo vale per il p-value di un esperimento: rifiutare H0H_0 con p<0,05p < 0{,}05 non significa che c’è solo il 5% di probabilità di aver gridato al falso effetto. Quanto spesso un rifiuto è un falso positivo dipende anche da quanto spesso, nei problemi che si affrontano, H0H_0 è davvero falsa — il tasso di base degli effetti reali. Se si testano cento ipotesi quasi tutte senza effetto reale, una buona fetta dei rifiuti “significativi” saranno falsi positivi, esattamente come quasi tutti i positivi del test diagnostico sono sani. La meccanica di questo conto è quella del Teorema di Bayes.

La significatività non è la dimensione dell’effetto

Sezione intitolata “La significatività non è la dimensione dell’effetto”

C’è una distinzione che attraversa tutti e quattro gli esempi e merita una sezione propria, perché è la fonte di una classe intera di overclaim: la differenza tra significatività statistica e dimensione dell’effetto.

Il test di ipotesi risponde a una sola domanda — “questo effetto è distinguibile dal caso?” — e la risposta è un sì/no, modulato dal p-value. Ma “distinguibile dal caso” e “grande abbastanza da contare” sono due proprietà indipendenti, e il test misura solo la prima. La dimensione dell’effetto — di quanto il modello A supera B, di quanti punti la conversione migliora — è un’altra quantità, e il p-value, da solo, non la riporta.

Le due si possono combinare in tutti e quattro i modi. Un effetto grande e significativo: B converte cinque punti meglio, su un campione ampio, p<0,001p < 0{,}001. È il caso in cui agire è facile. Un effetto piccolo ma significativo: con un test set di un milione di esempi, una differenza di accuratezza dello 0,02% produce un p-value minuscolo — la macchina statistica conferma che la differenza è reale, ma è una differenza che a nessuno interessa. Un effetto grande ma non significativo: il modello A sembra superare B di tre punti, ma il test set ha solo 200 esempi e il p-value è 0,3 — l’effetto potrebbe essere reale e rilevante, ma i dati non bastano a distinguerlo dal rumore. E un effetto piccolo e non significativo: nessun segnale e nessuna ragione di crederci.

Il caso pericoloso è il secondo, perché è quello che produce titoli ingannevoli. “Differenza altamente significativa (p<0,001p < 0{,}001)” suona come una scoperta importante; può essere una differenza dello 0,02% gonfiata a “significativa” da un campione enorme. È il principio 5 dello ASA Statement reso operativo. La difesa è semplice e va resa abitudine: accanto a ogni p-value, riportare sempre la dimensione dell’effetto e la sua incertezza — tipicamente un intervallo di confidenza sulla differenza. Un p-value dice se credere che ci sia un effetto; l’intervallo dice quanto è grande l’effetto a cui si sta credendo. Servono entrambi, e l’ultima sezione del capitolo mostra che sono due viste sullo stesso oggetto.

Per chi costruisce e valuta sistemi AI, il test di ipotesi non è statistica accademica: è ciò che separa un confronto fra modelli che informa da uno che inganna.

Il caso più frequente è la comparazione fra due modelli. Ogni volta che si dichiara “il modello nuovo batte la baseline”, sotto c’è un confronto di numeri misurati su un campione finito, e quella dichiarazione è un’inferenza statistica che richiede un test. La regola operativa: prima di scrivere “A è meglio di B”, formulare H0H_0 (“stessa performance”) e sottoporla a un test. Se i modelli sono valutati sugli stessi esempi — caso quasi sempre vero per i benchmark — il confronto è appaiato e il test di McNemar (per accuratezza) o un t-test appaiato (per metriche continue) è la scelta giusta; un test che tratti le due misure come indipendenti spreca informazione. Il libro di Rotem Dror e colleghi, The Hitchhiker’s Guide to Testing Statistical Significance in Natural Language Processing (ACL 2018), offre un protocollo di scelta del test pensato proprio per i confronti fra modelli.

La significatività di un miglioramento di benchmark è la stessa domanda sotto altra veste. Un nuovo modello che guadagna 0,3 punti su un eval sta migliorando, o quei 0,3 punti sono dentro la variabilità della misura? Senza un test — o, equivalentemente, senza un intervallo di confidenza sulla differenza — il numero non è interpretabile. Un report tecnico onesto accompagna ogni differenza riportata con un p-value o con un intervallo; un report che mette in tabella solo i punteggi nudi chiede al lettore di fare un atto di fede.

L’A/B testing di prodotto è il test di ipotesi nella sua forma più diretta: due varianti — di un prompt, di un modello, di una feature — servite a due gruppi di utenti, e un test (z-test su due proporzioni, chi-quadro) che dice se la differenza di conversione osservata è segnale o rumore. La disciplina qui è procedurale prima che statistica: dimensionare il campione prima con un’analisi di potenza, fissare la metrica e la soglia prima, e non fermare il test appena il p-value sembra favorevole.

C’è infine un uso difensivo del test, che vale come abitudine mentale. Quando si legge il claim di qualcun altro — il post di un laboratorio che annuncia un modello “migliore del 2%”, la slide di un fornitore con un punteggio di benchmark — le domande da farsi sono: su quanti esempi? con quale test, o con quale intervallo? è stato un confronto unico o uno fra molti? Un claim di superiorità senza una di queste informazioni non è ancora valutabile. Il test di ipotesi, da questo lato, non serve a produrre i propri numeri ma a interrogare quelli altrui.

In sintesi, una checklist operativa per chi confronta due modelli o due varianti e vuole un risultato difendibile:

  • Decidere H0H_0, H1H_1 e α\alpha prima di guardare i risultati. Scriverli, se serve, per non essere tentati di cambiarli dopo.
  • Dimensionare il campione con un’analisi di potenza. Quale differenza minima conta rilevare? Da lì discende quanti esempi di test, o quanti utenti, servono. Un eval troppo piccolo non distingue ciò che doveva distinguere.
  • Scegliere il test giusto per la struttura dei dati. Stessi esempi per i due modelli, dato binario: McNemar. Stessi esempi, metrica continua: t-test appaiato. Gruppi di utenti distinti: z-test su due proporzioni o chi-quadro. In dubbio, un test di permutazione fa pochissime assunzioni.
  • Includere la varianza di addestramento. Se i modelli a confronto sono stati addestrati, raccogliere più run con seed diversi: la differenza fra architetture va separata dalla differenza fra semi.
  • Riportare la dimensione dell’effetto, non solo il p-value. Accanto al test, l’intervallo di confidenza sulla differenza: dice di quanto i due modelli differiscono, non solo se differiscono.
  • Contare i confronti. Se si è testato un modello su molti benchmark, o molte varianti di prompt, applicare una correzione per test multipli prima di celebrare il vincitore.

Il test di ipotesi è uno strumento solido, ma poggia su assunzioni e su una disciplina procedurale, e quando saltano il test produce conclusioni sbagliate con un’aria di rigore numerico.

Il p-hacking. È il modo di rottura più diffuso e più insidioso. Il termine fu coniato da Joseph Simmons, Leif Nelson e Uri Simonsohn nel loro articolo False-Positive Psychology (Psychological Science, 2011). Il p-hacking è l’insieme di pratiche — spesso non malevole, spesso inconsapevoli — con cui si manipola l’analisi finché il p-value scende sotto la soglia: provare molte varianti dell’analisi e riportare solo quelle significative; aggiungere dati e ricontrollare il p-value, fermandosi appena diventa favorevole (optional stopping); includere o escludere outlier e covariate finché il test passa; testare molte variabili e riportare solo le vincenti; formulare l’ipotesi dopo aver visto i risultati (HARKing, Hypothesizing After the Results are Known). Ognuno di questi gesti, preso da solo, sembra una scelta d’analisi legittima. L’effetto cumulativo non lo è: Simmons e colleghi mostrarono, con simulazioni, che la flessibilità non dichiarata dell’analista può gonfiare il tasso di falsi positivi dal 5% nominale fino a circa il 60%. La garanzia "α=0,05\alpha = 0{,}05" vale solo se l’analisi è stata decisa in cieco, prima dei dati; ogni decisione presa guardando il p-value distrugge esattamente la proprietà che rende il test affidabile.

La crisi della replicabilità. Il p-hacking, sommato al publication bias — le riviste pubblicano risultati significativi e rifiutano i nulli — ha prodotto una conseguenza misurabile su intere discipline. Il Reproducibility Project: Psychology (Open Science Collaboration, Science, 2015) ha ripetuto cento studi pubblicati di psicologia: solo circa il 36% delle repliche ha dato un risultato significativo, contro il 97% degli studi originali, e le dimensioni d’effetto nelle repliche erano in media circa la metà. Un corpo di risultati “significativi” che, rifatti, in gran parte svaniscono. È il contesto in cui nel 2016 lo ASA Statement è arrivato come presa di posizione ufficiale: non perché la teoria del p-value fosse sbagliata, ma perché il suo uso rituale e mal compreso stava producendo letteratura non affidabile.

La soglia 0,05 trattata come una legge di natura. Il 5% è una convenzione storica, ereditata da una scelta di comodità di Fisher. Non c’è nessuna discontinuità reale tra p=0,049p = 0{,}049 e p=0,051p = 0{,}051: dicotomizzare a 0,05 trasforma un numero continuo in un sì/no, e butta via informazione. Due studi con p=0,04p = 0{,}04 e p=0,06p = 0{,}06 portano spesso evidenza quasi identica, eppure il primo viene celebrato come “significativo” e il secondo archiviato. La soglia è un’utilità operativa, non un confine ontologico.

L’optional stopping nei test in produzione. Una forma di p-hacking così comune nell’A/B testing da meritare una voce a parte. Una dashboard di esperimento mostra il p-value che si aggiorna in tempo reale man mano che arrivano utenti. La tentazione è guardarlo ogni giorno e fermare il test “appena diventa significativo”. Sembra efficienza; è un errore. Sotto H0H_0, il p-value oscilla casualmente nel tempo, e prima o poi scenderà sotto 0,05 anche se non c’è alcun effetto — basta aspettare il momento giusto. Fermarsi a quel momento garantisce un falso positivo. Un test in produzione va dimensionato in anticipo con un’analisi di potenza, e letto a campione completo; chi vuole davvero poter sbirciare durante la raccolta deve usare metodi sequenziali progettati apposta, che pagano ogni sbirciata con una soglia più severa.

La caccia alla significatività su molti test. Se si eseguono molti test — un modello su venti benchmark, venti varianti di iperparametri, una classifica con centinaia di confronti — e si tiene solo ciò che risulta “significativo”, il tasso di errore complessivo non è più il 5%. Con venti test indipendenti, anche se nessun effetto è reale, ci si aspetta in media un risultato “significativo” per puro caso. È il problema dei test multipli, e i leaderboard di modelli ne sono pieni: molti distacchi in cima a una classifica sono dentro il rumore, e l’ordine esatto delle prime posizioni è in buona parte casuale. La correzione di questo problema — Bonferroni, FDR — è il tema di multiple-testing (in preparazione).

Le assunzioni del test specifico. Ogni test ha le sue. Lo z-test e il t-test assumono che la distribuzione della statistica sia (approssimativamente) normale — garanzia che il teorema del limite centrale dà per campioni grandi, ma che con nn piccolo e dati molto asimmetrici può non valere. Il test del chi-quadro assume frequenze attese non troppo piccole in ogni cella. Quasi tutti i test assumono osservazioni indipendenti: se gli esempi di test sono correlati — più domande sullo stesso documento, più task dalla stessa template, valutazioni dello stesso annotatore — la dimensione effettiva del campione è minore di nn, l’errore standard reale è più grande di quello calcolato, e il p-value risulta più piccolo del dovuto. È un errore subdolo, perché nn sembra grande e rassicurante mentre l’informazione vera è molto meno.

Il test valido sul benchmark sbagliato. Il test di ipotesi controlla l’incertezza dovuta al campionamento. Non controlla l’errore sistematico. Se il test set è contaminato — esempi finiti nei dati di addestramento del modello — il p-value resta matematicamente valido ma misura la cosa sbagliata: certifica una superiorità che è memorizzazione, non capacità. Allo stesso modo, un test non corregge un benchmark difettoso: se le etichette sono sbagliate, nessun p-value lo segnala. Un test impeccabile su dati viziati produce una conclusione viziata, con la cravatta del rigore statistico.

La varianza da seed, dimenticata. Specifico del machine learning. Lo stesso modello, riaddestrato con un seed casuale diverso, ottiene un’accuratezza diversa: la procedura di training è essa stessa una sorgente di variabilità. Confrontare due modelli da un singolo run ciascuno ignora questa varianza, e può scambiare per “differenza fra architetture” ciò che è solo “differenza fra due semi”. Un confronto onesto raccoglie più run per modello e include la variabilità fra run nel test — altrimenti H0H_0 e H1H_1 non sono nemmeno formulate sulla quantità giusta.

Test di ipotesi e intervallo di confidenza non sono due strumenti separati: sono due viste sulla stessa impalcatura matematica, e renderlo esplicito chiarisce entrambi.

La relazione, in una frase: un intervallo di confidenza al 1α1-\alpha è esattamente l’insieme dei valori del parametro che un test bilaterale al livello α\alpha non rifiuterebbe. Si guardi l’intervallo come l’esito di infiniti test in parallelo — uno per ogni valore candidato del parametro. I valori dentro l’intervallo sono quelli che, messi alla prova come ipotesi nulla, sopravvivrebbero al test; i valori fuori sono quelli che il test rifiuterebbe. Il capitolo Intervalli di confidenza presentava questa idea dal lato dell’intervallo — “l’intervallo come insieme di candidati sopravvissuti”; qui la si vede dal lato del test.

La conseguenza pratica è diretta e si usa di continuo. Per sapere se due modelli differiscono, si può costruire l’intervallo di confidenza sulla differenza di accuratezza: se quell’intervallo esclude lo zero, il test bilaterale rifiuta H0H_0 (nessuna differenza) al livello corrispondente; se contiene lo zero, non lo rifiuta. “L’intervallo sulla differenza esclude lo zero” e “il test è significativo” sono la stessa affermazione detta in due modi.

C’è però una ragione forte per preferire, quando si può, l’intervallo al solo p-value. Il p-value comprime tutto in un numero che risponde a una sola domanda — “distinguibile dal caso, sì o no?” — e nasconde la dimensione dell’effetto. L’intervallo di confidenza risponde alla stessa domanda (guardando se contiene lo zero) e in più dice di quanto i due valori differiscono e con quanta precisione lo si è misurato. Un intervallo sulla differenza di accuratezza pari a [0,1%; 0,3%][0{,}1\%;\ 0{,}3\%] esclude lo zero — “significativo” — ma rivela un effetto minuscolo; un intervallo [2%; 14%][2\%;\ 14\%] esclude anch’esso lo zero ma segnala un effetto grande e misurato male. Il p-value, da solo, confonde questi due casi in un’unica etichetta “significativo”. È il motivo per cui una parte della comunità statistica — il movimento che va sotto il nome di New Statistics — raccomanda di riportare intervalli di confidenza al posto, o accanto, ai p-value: contengono la decisione del test e qualcosa in più.

  • Intervalli di confidenza — il gemello del test di ipotesi: un intervallo al 1α1-\alpha è l’insieme dei valori che un test al livello α\alpha non rifiuterebbe. L’intervallo dice anche la dimensione dell’effetto, che il solo p-value nasconde.
  • Popolazione, campione, stimatore — fissa i quattro termini di base (popolazione, parametro, campione, stimatore) su cui poggia ogni test.
  • Stima puntuale — la statistica test si costruisce a partire da uno stimatore e dal suo errore standard; questo capitolo li introduce.
  • Legge dei grandi numeri e teorema del limite centrale — il teorema del limite centrale è ciò che rende note le distribuzioni nulle (normale, t) su cui si appoggiano z-test e t-test.
  • Le distribuzioni comuni — la binomiale governa il p-value della moneta e del test di McNemar; la normale è la distribuzione nulla dello z-test.
  • Campionamento — il test controlla l’incertezza campionaria ma non il bias di campionamento: un test set raccolto male produce un p-value valido attorno alla domanda sbagliata.
  • Teorema di Bayes e ragionamento bayesiano — la quantità che il p-value non è — la probabilità che H0H_0 sia vera dati i dati — si ottiene solo con il ragionamento bayesiano, che richiede un prior; lì c’è anche il conto del tasso di base dell’Esempio 4.
  • multiple-testing (in preparazione) — eseguire molti test e tenere solo i significativi gonfia il tasso di errore complessivo; le correzioni di Bonferroni e FDR rispondono a questo, ed è il problema dei leaderboard.
  • statistica-e-ml (in preparazione) — perché un machine learning senza disciplina statistica produce sistematicamente overclaim: il test di ipotesi è uno degli strumenti che lo prevengono.
  • Ronald L. Wasserstein, Nicole A. Lazar, The ASA Statement on p-Values: Context, Process, and Purpose, The American Statistician, vol. 70, n. 2, 2016. La presa di posizione ufficiale dell’American Statistical Association: sei principi sul cosa il p-value è e, soprattutto, cosa non è. Breve e leggibile.
  • Sander Greenland et al., Statistical tests, P values, confidence intervals, and power: a guide to misinterpretations, European Journal of Epidemiology, vol. 31, n. 4, 2016. Venticinque fraintendimenti di p-value, intervalli e potenza, ciascuno spiegato e corretto. La rassegna di riferimento sugli errori.
  • Joseph P. Simmons, Leif D. Nelson, Uri Simonsohn, False-Positive Psychology, Psychological Science, vol. 22, n. 11, 2011. L’articolo che ha coniato il termine “p-hacking” e mostrato, con simulazioni, come la flessibilità non dichiarata dell’analista gonfi i falsi positivi.
  • Jose D. Perezgonzalez, Fisher, Neyman-Pearson or NHST? A tutorial for teaching data testing, Frontiers in Psychology, vol. 6, 2015. Il confronto chiaro e didattico dei due framework storici e dell’ibrido NHST che li ha fusi.
  • Rotem Dror, Lotem Peled-Cohen, Segev Shlomov, Roi Reichart, Statistical Significance Testing for Natural Language Processing, Morgan & Claypool, 2020. Come scegliere e applicare i test di significatività quando si confrontano modelli; pensato per chi lavora in NLP e machine learning.