Correlazione e causalità: vedere non è fare
Karl Pearson inventò il coefficiente che misura quanto due grandezze si muovono insieme — e nella stessa opera ammise, in una nota a piè di pagina, che da quel numero non si può risalire a cosa causa cosa. Questo capitolo è su quella frattura: perché un’associazione, anche fortissima e statisticamente solidissima, non dice se intervenire cambierà qualcosa — e perché ogni modello di machine learning predittivo vive interamente sul lato sbagliato di quella frattura.
Perché questo capitolo
Sezione intitolata “Perché questo capitolo”Tutta la Parte V, fino a qui, ha risposto a una sola domanda, declinata in molte forme: questa associazione è reale o è rumore?. Un campione mostra che chi usa la feature A converte di più; un test di ipotesi dice se quella differenza regge contro il caso campionario; la correzione per test multipli dice se regge anche dopo aver guardato venti feature invece di una. Macchinario potente, e necessario.
Ma c’è una domanda che quel macchinario non tocca, e che quasi sempre è quella che interessa davvero. Non “l’associazione è reale?”, bensì: se intervengo, cambia qualcosa?. Un’azienda non vuole sapere che gli utenti che cliccano il bottone verde convertono di più. Vuole sapere se colorare il bottone di verde farà convertire di più. Sono due affermazioni diverse. La prima è statistica descrittiva sui dati osservati. La seconda è una previsione su un mondo in cui qualcuno è intervenuto — un mondo che, finché non si interviene davvero, non è stato osservato.
Un test di ipotesi può confermare con che chi beve caffè vive più a lungo. Quel risultato può essere campionariamente solido e causalmente privo di valore: forse chi beve caffè ha uno stile di vita che protegge la salute, e il caffè è solo una spia. La significatività misura la robustezza di un’associazione contro il caso. Non dice nulla sulla sua direzione, sulla presenza di una causa nascosta, su cosa accadrebbe se la causa cambiasse. Confondere i due piani — l’associazione e la causa — è probabilmente l’errore più antico e più costoso della statistica applicata.
C’è poi la ragione che rende questo capitolo non opzionale per chi costruisce sistemi AI. Il machine learning predittivo è, meccanicamente, una macchina di correlazione: impara quali pattern nei dati accompagnano l’esito da prevedere, senza distinguere i pattern che causano l’esito da quelli che gli si accompagnano per coincidenza o per una causa comune. Finché il modello si limita a prevedere, va bene. Nel momento in cui qualcuno usa le sue previsioni per decidere un’azione — quale paziente dimettere, quale prezzo applicare, quale mossa far compiere a un agente — sta usando una macchina di correlazione per una domanda causale. È lo stesso errore del caffè, ripetuto su scala industriale.
Il capitolo procede così. Prima fissa cosa misura davvero un coefficiente di correlazione, e quanto poco. Poi costruisce il confine fra associazione e causa, e il vocabolario per attraversarlo: il modello a grafi di Pearl, gli esiti potenziali di Rubin, l’esperimento randomizzato. Infine torna sul machine learning con strumenti per capire perché un modello accuratissimo può essere un consigliere pessimo — e perché un agente che decide ha bisogno di un tipo di conoscenza che la sola predizione non gli dà.
Contesto
Sezione intitolata “Contesto”La massima che apre ogni corso di statistica — “correlation does not imply causation”, “la correlazione non implica la causazione” — è quasi coeva alla scoperta della correlazione stessa. Comparve in stampa negli anni 1890, lo stesso decennio in cui Karl Pearson (matematico e statistico britannico, 1857-1936, fra i fondatori della statistica moderna) formalizzava il coefficiente di correlazione, sviluppando un’idea del cugino Francis Galton sulla regressione verso la media.
Pearson stesso ebbe con quel principio un rapporto ambiguo. In alcuni passaggi suggerì che la causalità fosse un concetto pre-scientifico, un residuo metafisico, e che la scienza matura dovesse accontentarsi della correlazione. Eppure, in una nota a piè di pagina della seconda edizione (1900) della sua opera The Grammar of Science, ammise: “where we find correlation we cannot always predict causation” — dove troviamo correlazione non possiamo sempre prevedere la causazione. Una recensione su Science, lo stesso anno, bollò il modo in cui il libro scivolava dalla correlazione alla causalità come “scarcely allowable”, a malapena ammissibile.
Per buona parte del Novecento la statistica convisse con quella frattura tenendola aperta: misurava associazioni, lasciava la causalità agli esperimenti, e fuori dagli esperimenti si limitava a un cauto silenzio. Una svolta pratica arrivò negli anni ‘20 dallo statistico britannico Ronald Fisher, che formalizzò la randomizzazione come principio degli esperimenti agricoli: assegnare i trattamenti per sorteggio era il modo per rendere lecito il salto dalla differenza osservata alla conclusione causale. Ma quel salto restava confinato all’esperimento; fuori dal campo sperimentale, parlare di cause era considerato poco rigoroso.
Il pensiero causale rigoroso fuori dal laboratorio è arrivato più tardi, e lungo due strade. La prima, dagli anni ‘70, è il modello dei potential outcomes di Donald Rubin, che riformula la causalità come un problema di dati mancanti — e affonda le radici nella tesi del 1923 dello statistico polacco Jerzy Neyman. La seconda, dagli anni ‘90, sono i modelli causali strutturali di Judea Pearl, che le danno un linguaggio grafico e un’algebra. Le due strade — lo vedremo — descrivono la stessa realtà con notazioni diverse, e il loro arrivo ha trasformato l’inferenza causale da tabù metodologico a disciplina con strumenti propri.
Nel grafo di questa wiki questo è il nono capitolo della Parte V. Poggia sui capitoli precedenti: la nozione di campione e popolazione, gli strumenti del test di ipotesi, il problema del bias di campionamento. Usa concetti della Parte IV: la covarianza e l’indipendenza da probabilita-base (in preparazione), la probabilità condizionata da bayes-base (in preparazione).
E guarda avanti verso regressione-statistica (in preparazione), che è il modo più comune — e più frainteso — di “controllare per i confondenti”, e verso statistica-e-ml (in preparazione), dove la confusione correlazione/causalità si rivela una delle sorgenti più costanti dell’overclaim nel machine learning.
Vale la pena dire fin d’ora che “causalità” qui ha un significato preciso e modesto. Non si tratta della grande questione filosofica — cosa sia, in ultima analisi, una causa — ma di una nozione operativa: causa se intervenire su , a parità di tutto il resto, cambia la distribuzione di . È una definizione che si misura, almeno in linea di principio, con un esperimento. Tutto il capitolo lavora con questa nozione operativa, e la differenza fra essa e la correlazione è già abbastanza ricca da riempire un capitolo intero.
L’intuizione
Sezione intitolata “L’intuizione”Prima del formalismo, tre angoli. Il primo — la mappa e il territorio — fissa cosa misura davvero un coefficiente di correlazione, e quanto poco. Il secondo — il termometro nascosto — fissa il meccanismo del confondente, che è la prima e più comune ragione per cui un’associazione inganna. Il terzo — vedere contro fare — fissa la distinzione concettuale che regge tutto il resto del capitolo: la differenza tra osservare un valore e imporlo.
Primo angolo: la mappa e il territorio
Sezione intitolata “Primo angolo: la mappa e il territorio”Una correlazione è una mappa. Comprime la relazione tra due variabili in un solo numero, , compreso fra e . Come ogni mappa, è utile proprio perché butta via quasi tutto: tiene un’unica informazione — quanto le due variabili tendono a salire e scendere insieme, lungo una retta — e scarta il resto.
Il “lungo una retta” non è un dettaglio. Il coefficiente di Pearson, il più comune, misura solo la componente lineare della relazione. Immagina una nuvola di punti a forma di parabola perfetta: , con distribuito simmetricamente attorno allo zero. La relazione è ferrea — dato , conosci esattamente — eppure il coefficiente di Pearson vale circa zero. Per ogni ramo crescente della parabola ce n’è uno calante che lo bilancia: la retta migliore che ci passa in mezzo è piatta. La mappa “Pearson” di quel territorio dice “nessuna relazione”, e mente.
C’è un esempio storico che rende il punto indimenticabile, il cosiddetto quartetto di Anscombe: il statistico Francis Anscombe nel 1973 costruì quattro insiemi di dati con la stessa identica correlazione (e le stesse medie, le stesse varianze) ma quattro forme completamente diverse — una nuvola lineare, una curva, una retta con un singolo outlier estremo, una colonna verticale di punti. Quattro territori irriconoscibili, un’unica mappa. La lezione di Anscombe è una sola riga: prima di fidarti di un coefficiente, guarda lo scatterplot.
Vale anche il rovescio. Un vicino a dice che i punti stanno quasi su una retta a pendenza positiva. Non dice perché. Non dice se è a tirare , o a tirare , o un terzo attore a tirare entrambi, o se è capitato per caso. La mappa registra che due città sono vicine; non registra se una strada le collega, né in che senso la si percorre.
C’è un terzo limite, più sottile, che vale anticipare. Anche quando la relazione è lineare e è alto, il numero non dice quanto sia grande l’effetto in termini concreti. Un fra due variabili dice che si dispongono ben allineate su una retta, ma non dice se quella retta è ripida o quasi piatta: la pendenza — di quanto cambia per ogni unità di — è un’informazione diversa, che non contiene. Si possono avere correlazioni altissime con effetti praticamente irrilevanti, e correlazioni modeste con effetti enormi. La mappa registra l’allineamento, non la scala del territorio.
Tenere a mente questi limiti — Pearson è cieco a tutto ciò che non è lineare, muto su tutto ciò che riguarda il perché, e silenzioso sulla grandezza dell’effetto — è il primo passo. Tutto il capitolo è la storia di cosa quella mappa, da sola, non può dirti.
Secondo angolo: il termometro nascosto
Sezione intitolata “Secondo angolo: il termometro nascosto”D’estate le gelaterie vendono di più. D’estate, anche, più persone affogano. Mese per mese, le due serie — coni venduti, annegamenti — salgono e scendono quasi all’unisono: la correlazione è alta e positiva. Eppure nessuno crede che vietare il gelato salverebbe vite, o che chiudere le piscine farebbe calare le vendite di stracciatella.
La spiegazione è ovvia non appena la si nomina: c’è un termometro nascosto. La temperatura — o, più in generale, la stagione calda — è una causa comune. Il caldo spinge la gente a comprare gelato; lo stesso caldo la spinge verso acqua, mare, piscine, e quindi verso le occasioni di annegare. Il gelato e gli annegamenti non hanno alcun legame diretto: si muovono insieme perché qualcos’altro li muove entrambi.
Questa terza variabile che muove le altre due — la temperatura, nell’esempio — si chiama confondente (in inglese confounder). È il meccanismo numero uno con cui un’associazione inganna. E il punto cruciale è che il confondente non lascia traccia nel coefficiente di correlazione: i dati di “coni venduti” e “annegamenti” portano in sé il segno del termometro, ma il termometro stesso non compare in nessuna delle due colonne. Per scoprirlo devi sospettarlo, cercarlo, e misurarlo a parte.
C’è un modo semplice per smascherarlo, quando lo conosci: guarda la correlazione dentro un’unica stagione. Prendi solo i giorni d’estate e correla coni e annegamenti: la correlazione crolla quasi a zero. Prendi solo i giorni d’inverno: stessa cosa. L’associazione esisteva solo perché stavi confrontando estate e inverno tutti insieme; isolando la stagione, sparisce. Questo gesto — guardare la relazione separatamente dentro ogni livello del confondente — si chiama stratificazione, ed è lo strumento di base per neutralizzare un confondente noto e misurato. Le tre parole “noto e misurato” sono il punto in cui, più avanti, tutto si complica.
C’è anche un’asimmetria che merita una riga. Un confondente può creare una correlazione dal nulla — gelato e annegamenti — ma può anche mascherarne una vera, o perfino invertirne il segno. Se due variabili hanno un legame causale positivo ma un confondente le lega in senso negativo abbastanza forte, la correlazione osservata può risultare nulla o negativa. Non si può quindi nemmeno dire “la correlazione osservata è almeno un limite inferiore dell’effetto vero”: il confondimento può spingere la stima in qualsiasi direzione. È questo che rende l’associazione, da sola, un indizio così debole.
Terzo angolo: vedere contro fare
Sezione intitolata “Terzo angolo: vedere contro fare”I primi due angoli mostrano che la correlazione inganna. Il terzo dice dove si nasconde il confine, e va enunciato nel modo più netto possibile, perché è il cardine del capitolo.
Ci sono due domande che il linguaggio quotidiano — e perfino la notazione statistica classica — confonde di continuo:
- Vedere: dato che osservo un certo valore di , cosa mi aspetto per ? Esempio: “tra le persone che vedo bere molto caffè, qual è la longevità media?”.
- Fare: se impongo un certo valore di con un intervento, cosa succede a ? Esempio: “se prendo un gruppo di persone e le faccio bere molto caffè, di quanto cambia la loro longevità?”.
Sembrano la stessa domanda. Non lo sono. Nel “vedere”, le persone che bevono molto caffè sono persone che hanno scelto di farlo: portano con sé tutto ciò che le ha portate a quella scelta — abitudini, reddito, stress, salute di partenza. Quando guardi la loro longevità, guardi l’effetto del caffè intrecciato con l’effetto di tutto il resto. Nel “fare”, invece, sei tu a decidere chi beve caffè, e puoi deciderlo in modo da spezzare quell’intreccio. La domanda “fare” isola l’effetto del caffè; la domanda “vedere” lo lascia confuso con tutto il contesto che ha generato la scelta.
Un’immagine aiuta. “Vedere” è leggere un termometro: registri lo stato del mondo così com’è. “Fare” è spostare la lancetta del termostato: cambi il mondo e osservi cosa segue. Chi confonde le due cose crede di poter abbassare la febbre raffreddando il termometro. Il termometro e il termostato si somigliano — entrambi parlano di temperatura — ma uno la misura e l’altro la causa, e agire sul primo come se fosse il secondo non produce nulla. Quasi ogni errore di questo capitolo, in fondo, è una variante di questa confusione.
La correlazione, e con essa tutta la statistica della Parte V fino a qui, vive sul lato del vedere: descrive i dati così come sono stati osservati. La causalità è il lato del fare: parla di mondi in cui qualcuno è intervenuto. Le due cose coincidono in un caso particolare — quando non ci sono confondenti — e divergono in tutti gli altri. Judea Pearl, di cui parleremo fra poco, ha costruito un’intera teoria su questa distinzione, e le ha dato perfino una notazione: per il vedere, per il fare. Tenere distinti i due simboli è tenere distinti i due piani.
Quarto angolo: la scala a tre gradini
Sezione intitolata “Quarto angolo: la scala a tre gradini”C’è un modo per ordinare tutto questo. Pearl, in The Book of Why, propone una scala della causalità a tre gradini, e ogni gradino richiede un linguaggio che il precedente non ha.
Il primo gradino è l’associazione: vedere. Sono le domande del tipo “se osservo , cosa mi aspetto per ?”. Qui vivono la correlazione, la probabilità condizionata, e quasi tutto il machine learning predittivo. Per rispondere basta guardare i dati così come sono — ed è questo che rende il primo gradino tanto accessibile quanto limitato: non chiede di immaginare nulla che non sia già nei dati.
Il secondo gradino è l’intervento: fare. Sono le domande “se impongo , cosa succede a ?”. Qui non basta guardare i dati osservati: serve immaginare di agire sul sistema. Una correlazione, da sola, non sale a questo gradino — serve un esperimento, o un modello causale che dichiari le sue assunzioni.
Il terzo gradino è il controfattuale: immaginare. Sono le domande “dato che è successo e ho visto , cosa sarebbe successo se non fosse accaduto?”. È il gradino più alto, quello del rimpianto e della responsabilità — “se avessi preso l’altra strada” — e richiede di ragionare su mondi possibili che non si sono realizzati.
Il controfattuale è anche il gradino in cui vive il framework di Rubin che vedremo: l’effetto causale individuale è la differenza fra ciò che è accaduto e ciò che sarebbe accaduto. È un gradino più esigente dell’intervento, perché non chiede “cosa succede in media se intervengo”, ma “cosa sarebbe successo a questa unità specifica” — una domanda su un mondo controfattuale individuale, non su una distribuzione di popolazione.
La scala è utile perché rende visibile un errore strutturale: usare uno strumento del primo gradino per rispondere a una domanda del secondo o del terzo. Un modello predittivo, per quanto accurato, è un abitante del primo gradino. Chiedergli “cosa succede se intervengo” è chiedere a una mappa stradale di prevedere il traffico dopo che hai chiuso una strada: la mappa descrive le strade che ci sono, non quelle che hai appena cambiato.
Un aspetto importante della scala è che i gradini non si possono saltare verso l’alto. Dai soli dati di associazione, in generale, non si ricava un effetto di intervento: serve un ingrediente in più — un esperimento, oppure assunzioni causali esplicite. È un risultato, non un’opinione: nessun algoritmo, per quanto sofisticato, estrae causalità da dati puramente osservativi senza che qualcuno abbia aggiunto, da qualche parte, un’ipotesi sul mondo. Questa asimmetria è la ragione per cui “più dati” non risolve il problema della causalità: dieci miliardi di osservazioni restano dieci miliardi di osservazioni sul primo gradino.
La meccanica
Sezione intitolata “La meccanica”Misurare l’associazione: Pearson e Spearman
Sezione intitolata “Misurare l’associazione: Pearson e Spearman”Il coefficiente di correlazione di Pearson prende due variabili e restituisce un numero. Definizione, con e le due variabili, e le loro medie campionarie:
Leggiamola pezzo per pezzo. Al numeratore c’è la covarianza: per ogni punto si moltiplica lo scarto di dalla sua media per lo scarto di dalla sua. Se i due scarti hanno spesso lo stesso segno — quando è sopra la sua media anche lo è — i prodotti sono positivi e la somma cresce: le variabili si muovono insieme. Se hanno spesso segno opposto, la somma è negativa. La covarianza, da sola, però dipende dalle unità di misura: misurare un’altezza in metri o in centimetri ne cambia il valore.
Il denominatore ripara questo. Dividere per il prodotto delle due deviazioni standard (, , la dispersione tipica di ciascuna variabile) normalizza il risultato. In parole povere: è la covarianza ripulita dalle unità di misura, e per costruzione cade sempre fra e . Il segno dà la direzione della relazione lineare; il valore assoluto ne dà la forza; significa assenza di relazione lineare — e solo di quella.
Vale la pena fissare un’intuizione geometrica. Centrare i dati — sottrarre a ogni variabile la sua media — trasforma le due colonne in due vettori nello spazio dei dati. La correlazione di Pearson, in quel quadro, è il coseno dell’angolo fra i due vettori centrati. Un angolo di zero gradi (vettori paralleli) dà ; un angolo retto (vettori ortogonali) dà ; un angolo di 180 gradi dà . Da qui si vede subito perché vive in : un coseno non può uscirne. E si vede anche perché non è “indipendenza” ma solo “ortogonalità”: due vettori possono essere perpendicolari e legati da una relazione curva fortissima. La correlazione misura l’angolo, non il legame.
Quando i dati non sono adatti a Pearson — relazione curva ma monotòna, presenza di outlier che sbilanciano la retta, variabili ordinali senza una scala numerica vera — si usa il coefficiente di Spearman, , proposto dallo psicologo britannico Charles Spearman nel 1904. La ricetta è semplice: invece di lavorare sui valori grezzi, si lavora sui loro ranghi. Si ordinano le dal più piccolo al più grande e si sostituisce ciascuno con la sua posizione (); lo stesso per le ; poi si applica la formula di Pearson a quelle coppie di ranghi.
L’effetto è che Spearman misura la relazione monotòna — “quando una cresce, l’altra cresce” — senza pretendere che sia lineare. La relazione ha esatto (l’ordine dei valori è perfettamente preservato) mentre Pearson è inferiore a 1. Spearman è inoltre non parametrico — non assume una forma particolare per la distribuzione dei dati — e robusto agli outlier, perché un valore enorme diventa solo “il rango più alto”, non un numero che trascina la retta. È la mappa giusta quando il territorio non è una retta ma una salita.
Un esempio chiarisce la robustezza. Supponi dieci coppie di dati ben allineate, con un’undicesima coppia il cui valore di è un errore di battitura: invece di . Pearson, che lavora sui valori grezzi, viene trascinato da quel numero enorme e può cambiare sensibilmente. Spearman vede solo “il rango più alto” — l’undicesima posizione su undici — esattamente come se il valore fosse . Un outlier sposta il valore grezzo ma non il suo rango, e per questo Spearman lo assorbe quasi senza scossoni. È una proprietà comoda quando i dati arrivano dal mondo reale, dove gli errori di misura e i valori anomali sono la norma.
Esiste una terza misura di uso comune, il tau di Kendall, che conta direttamente le coppie di osservazioni concordanti (entrambe le variabili crescono) contro le discordanti (una cresce, l’altra cala). È un’altra misura di associazione monotòna, con la stessa filosofia non parametrica di Spearman e un’interpretazione leggermente diversa. Per gli scopi di questo capitolo Pearson e Spearman bastano come i due rappresentanti delle due famiglie: la relazione lineare e la relazione monotòna.
Resta il limite che tutte queste misure condividono, e che nessuna formula di correlazione può superare: misurano un’associazione. Tacciono sulla causa.
Cambiare misura — da Pearson a Spearman a Kendall — cambia quale forma di associazione si cattura, non sposta di un millimetro il confine verso la causalità. Quel confine non si attraversa cambiando formula: si attraversa cambiando il tipo di domanda che si pone ai dati, ed è il tema del resto del capitolo.
Le tre ragioni per cui l’associazione non basta
Sezione intitolata “Le tre ragioni per cui l’associazione non basta”Quando e correlano, ci sono esattamente tre famiglie di spiegazioni, e solo la prima è quella che di solito si vorrebbe.
-
causa (o causa ): il legame causale diretto. Ma attenzione alla direzione: la correlazione è simmetrica, la causalità no. “Ricovero in ospedale” e “malattia grave” correlano, ma è la malattia a causare il ricovero. Scambiare la direzione — la reverse causation — è un errore frequente quando manca un’ipotesi sul meccanismo.
-
Un confondente causa entrambe: la struttura del termometro nascosto. e si muovono insieme senza che nessuno dei due tocchi l’altro. È il caso più insidioso perché non è nei dati di e : va sospettato.
-
Il caso: con abbastanza coppie di variabili a disposizione, alcune correleranno per pura coincidenza. Tyler Vigen, in Spurious Correlations (2015), ha raccolto centinaia di esempi: il consumo pro capite di formaggio negli USA correla a con il numero di persone morte impigliandosi nelle lenzuola; le importazioni statunitensi di petrolio dalla Norvegia correlano a con i morti in incidenti ferroviari. Nessun meccanismo, nessun confondente: solo il fatto che, frugando fra migliaia di serie temporali tutte vagamente in crescita, qualche coppia si allinea. Questa terza ragione è il volto, in chiave causale, del problema dei test multipli: cerca abbastanza e troverai.
C’è poi una variante della prima famiglia che merita un posto a sé, perché è frequentissima: la causa comune mascherata da catena. A volte causa davvero , ma non direttamente — c’è di mezzo un mediatore. Confondere il legame diretto con quello mediato non è grave quanto un confondente, ma cambia le conclusioni pratiche: se agisce su solo attraverso , e tu intervieni su in un contesto dove è bloccato, l’effetto sparisce. La forma della catena causale conta tanto quanto la sua esistenza.
Una correlazione spuria è una correlazione che non riflette un legame causale diretto: nasce dalla ragione 2 o dalla ragione 3. Smontare un’associazione vuol dire stabilire in quale delle tre famiglie cade — e i dati osservativi, da soli, spesso non bastano a deciderlo.
Spesso le tre famiglie agiscono insieme. Una correlazione osservata può essere in parte un effetto causale reale, in parte gonfiata da un confondente, in parte fortuna del campione. Il numero è la somma di questi contributi e non li separa: vedi e non sai se è di causa, oppure di causa più di confondimento, oppure zero causa e tutto rumore più confondente. È questa sovrapposizione che rende l’inferenza causale un mestiere e non un calcolo: scomporre nei suoi addendi richiede informazione che il coefficiente, da solo, non porta.
Il linguaggio di Pearl: DAG, do-operator, criterio backdoor
Sezione intitolata “Il linguaggio di Pearl: DAG, do-operator, criterio backdoor”Per ragionare sulla causalità serve un linguaggio. Quello costruito da Judea Pearl — informatico israelo-americano, professore a UCLA, Turing Award 2011, autore di Causality (2000) e del divulgativo The Book of Why (2018) — è il più diffuso. Pearl arrivò alla causalità dalla ricerca sull’intelligenza artificiale: negli anni ‘80 aveva lavorato sulle reti bayesiane, grafi che rappresentano dipendenze probabilistiche fra variabili. Il passo successivo — e per anni controverso nella comunità statistica — fu sostenere che le frecce di quei grafi potevano portare un significato causale, non solo associativo, e che attorno a quel significato si poteva costruire un’algebra rigorosa. È quell’algebra che segue.
Il punto di partenza è il DAG causale: directed acyclic graph, grafo orientato e aciclico. I nodi sono variabili; una freccia significa ” è una causa diretta di ”. Aciclico vuol dire che, seguendo le frecce, non si torna mai al punto di partenza: una variabile non causa sé stessa. Aspetto decisivo: il DAG non si ricava dai dati. Codifica le assunzioni causali di chi fa l’analisi — è un input, non un output. Molti DAG diversi possono produrre esattamente la stessa distribuzione di dati osservati; per scegliere fra loro servono conoscenza del dominio, esperimenti, o assunzioni dichiarate.
Con tre variabili esistono tre strutture elementari, e capirle è metà del lavoro:
- Catena: . è un mediatore, lo stadio intermedio attraverso cui agisce su . e risultano associati; condizionare su (guardare dentro un suo livello fisso) interrompe l’associazione.
- Forchetta (fork): . È la struttura del confondente: è causa comune. e risultano associati pur senza alcun legame causale fra loro; condizionare su spegne l’associazione spuria. È ciò che faceva la stratificazione per stagione.
- Collisore (collider): . è un effetto comune. Qui accade l’opposto di tutto il resto: e sono non associati… finché non condizioni su . Condizionare su un collisore crea un’associazione che prima non c’era. Ci torniamo nella sezione “Dove si rompe”: è il tranello che cattura più spesso.
Su questo grafo Pearl introduce il do-operator. La notazione classica — “probabilità di dato che osservo ” — è il vedere. Pearl aggiunge — “probabilità di se impongo ” — che è il fare. L’intervento ha una rappresentazione grafica precisa: si cancellano tutte le frecce entranti in . non è più determinato dalle sue cause naturali; è fissato dall’esterno, da te. Su quel grafo mutilato si rilegge l’effetto su . E la differenza fra e è, in formule, esattamente la differenza fra correlazione e causalità: coincidono quando non ci sono frecce entranti in da confondenti, divergono altrimenti.
Il gesto del “tagliare le frecce” merita un secondo di attenzione, perché è il cuore intuitivo di tutta la teoria. Una freccia entrante in rappresenta una causa di . Finché quella causa è libera di agire, ogni volta che osservi un certo valore di stai anche, implicitamente, osservando lo stato di ciò che lo ha causato — e se quella causa influenza pure , hai un confondente. Imporre dall’esterno recide il legame fra e le sue cause: dopo l’intervento, il valore di non porta più informazione sul passato, perché lo hai deciso tu. È per questo che il do-operator isola l’effetto causale: smonta fisicamente la rete di cause che generava la correlazione spuria.
Resta la domanda pratica: come si calcola se non si può fare l’esperimento, ma si hanno solo dati osservativi? Qui entra il criterio backdoor. Un percorso backdoor (porta sul retro) fra e è qualunque cammino nel grafo che parte da con una freccia entrante () e raggiunge : sono i percorsi che trasportano associazione spuria, quelli che passano per i confondenti. I percorsi causali, quelli che vuoi misurare, partono invece da con una freccia uscente ().
Il criterio dice: se trovi un insieme di variabili che (a) blocca tutti i percorsi backdoor da a e (b) non contiene discendenti di , allora l’effetto causale è identificabile, e vale la formula di aggiustamento:
In parole povere: misura la relazione fra e dentro ogni strato di — cioè — e poi fai la media di questi valori, pesando ciascuno strato con quanto è frequente in natura — il peso . Il risultato non contiene più il simbolo : una domanda causale è stata trasformata in un calcolo eseguibile sui dati osservati. Esattamente ciò che faceva la stratificazione per stagione del gelato, ora con un nome e una giustificazione.
La condizione (b), “niente discendenti di ”, è il guardrail che impedisce di aggiustare per un mediatore o un collisore: aggiungere a la variabile sbagliata non ripara la stima, la rompe. È un punto contro-intuitivo e va sottolineato: nell’aggiustamento causale, più variabili di controllo non significa più precisione. La variabile va inclusa solo se il suo ruolo nel grafo è quello di confondente; includere un discendente di può introdurre un bias che prima non c’era.
Il do-calculus è l’algebra generale che governa tutto questo: tre regole di riscrittura, formulate da Pearl nel 1995 e in seguito dimostrate complete — nel senso che, se un effetto causale è identificabile dai dati osservativi, le tre regole lo identificano. Senza scendere nel formalismo, le tre regole dicono, intuitivamente: (1) quando un’osservazione si può ignorare perché irrilevante per l’esito; (2) quando un intervento si può declassare a una semplice osservazione di — è la regola che “sblocca” l’uso dei dati osservativi; (3) quando un intervento si può eliminare del tutto perché non ha alcun percorso causale verso l’esito. La formula di aggiustamento backdoor è il caso particolare più usato di questa macchina più generale.
Tutta questa macchina ha un prezzo dichiarato in chiaro: presuppone che il DAG sia corretto. Sbagli il grafo — ometti un confondente, inverti una freccia, scambi un mediatore per un confondente — e la formula restituisce con perfetta precisione un numero sbagliato.
Vedere e fare, con i numeri
Sezione intitolata “Vedere e fare, con i numeri”Vale la pena vedere e divergere su un caso minuscolo. Riprendiamo il farmaco. Supponiamo che i medici, senza saperlo, tendano a dare il farmaco ai pazienti più giovani, e che i giovani guariscano comunque di più. Il farmaco, in verità, non fa nulla. Ecco i dati osservati:
| Gruppo | Farmaco? | Guariti | Totale | Tasso di guarigione |
|---|---|---|---|---|
| Giovani | sì | 90 | 100 | 90% |
| Giovani | no | 9 | 10 | 90% |
| Anziani | sì | 5 | 10 | 50% |
| Anziani | no | 50 | 100 | 50% |
Dentro ogni fascia d’età il farmaco non cambia nulla: i giovani guariscono al 90% con o senza, gli anziani al 50% con o senza. Ma guardiamo il dato osservativo aggregato, il “vedere”: fra chi ha preso il farmaco, guariti su , circa ; fra chi non l’ha preso, su , circa . Il farmaco sembra spettacolare — contro — perché chi lo ha ricevuto era in gran parte giovane.
Ora il “fare”, con la formula di aggiustamento e . La popolazione è metà giovani e metà anziani. L’effetto del farmaco è la media dei tassi dentro le fasce: . E senza farmaco, stesso conto: . . Effetto causale: zero. Il di differenza del “vedere” era interamente il confondente “età”. Stessi dati, due conti, due risposte opposte: è la differenza fra correlazione e causalità ridotta all’aritmetica.
La differenza fra i due conti è precisamente il peso che si dà a ciascuna fascia. Nel “vedere”, ogni fascia pesa quanto è rappresentata fra chi ha ricevuto il farmaco — e i giovani, che il farmaco lo hanno ricevuto in massa, dominano. Nel “fare”, ogni fascia pesa quanto è rappresentata nella popolazione intera, indipendentemente dal trattamento. È un cambio di pesi, e quel cambio è tutto. L’aggiustamento causale, spogliato di ogni notazione, è esattamente questo: ripesare gli strati con i pesi giusti — quelli del mondo, non quelli distorti dal modo in cui il trattamento è stato assegnato.
Il linguaggio di Rubin: esiti potenziali e controfattuali
Sezione intitolata “Il linguaggio di Rubin: esiti potenziali e controfattuali”In parallelo a Pearl, e con radici più antiche, esiste un secondo linguaggio: il modello dei potential outcomes, gli esiti potenziali, sviluppato da Donald Rubin (statistico, a lungo a Harvard) dagli anni ‘70, su un’idea che risale alla tesi di Jerzy Neyman del 1923.
L’idea è di una concretezza disarmante. Per ogni singola unità — una persona, un utente, un server — e per ogni trattamento, esistono due esiti potenziali:
- : l’esito che si verificherebbe se ricevesse il trattamento.
- : l’esito che si verificherebbe se non lo ricevesse.
L’effetto causale individuale del trattamento su è semplicemente la differenza : di quanto cambia l’esito di quella specifica unità a seconda che il trattamento ci sia o no.
E qui sta lo scoglio, battezzato da Paul Holland nel 1986 il problema fondamentale dell’inferenza causale: per ogni unità si può osservare uno solo dei due esiti potenziali. Chi ha preso il farmaco mostra il suo ; il suo — cosa gli sarebbe accaduto senza farmaco — è perduto per sempre, perché quel mondo non si è realizzato. L’effetto causale individuale è una differenza fra un numero osservato e un numero controfattuale: ciò che sarebbe successo in un mondo possibile che non è quello accaduto. È, letteralmente, un problema di dati mancanti — metà dei dati che servirebbero non esiste.
La via d’uscita: rinunciare all’effetto individuale e stimare l’effetto medio, l’Average Treatment Effect, , la differenza fra l’esito medio se tutti fossero trattati e l’esito medio se nessuno lo fosse. I singoli controfattuali restano ignoti, ma la loro media può essere stimata — a patto di sapere come le unità sono finite nel gruppo trattato. Se ci sono finite per scelta propria, la differenza osservata fra i gruppi mescola l’effetto del trattamento con tutto ciò che ha guidato la scelta: il confondente, di nuovo, sotto un altro nome.
Una piccola tabella rende tangibile il problema fondamentale. Immagina quattro pazienti e due colonne di esiti potenziali — quello con farmaco e quello senza:
| Paziente | con farmaco | senza | Effetto individuale |
|---|---|---|---|
| Anna | 8 | 5 | +3 |
| Bruno | 6 | 6 | 0 |
| Carla | 9 | 4 | +5 |
| Dario | 4 | 7 | −3 |
Questa tabella è la verità completa, e mostra una cosa importante: l’effetto del farmaco varia da persona a persona, e per Dario è perfino negativo. Ma nella realtà non vedremo mai questa tabella intera. Per ogni paziente osserveremo una sola delle due colonne — quella che corrisponde a ciò che gli è effettivamente capitato — e l’altra resterà una cella vuota, controfattuale. Il meglio che possiamo sperare è di stimare la media della colonna “Effetto individuale”, che qui vale : l’ATE. E anche quella media è raggiungibile solo se il modo in cui i pazienti sono stati assegnati al farmaco non è correlato ai loro esiti potenziali.
I due linguaggi — il DAG con il do-operator di Pearl, gli esiti potenziali di Rubin — descrivono la stessa realtà. Questa è un’equivalenza, non un’analogia: corrisponde a fissare il trattamento, e la distribuzione è la distribuzione di . Le due scuole hanno storicamente discusso su quale notazione sia più naturale; per chi deve usarle, sono due dialetti della stessa lingua, e conviene saperli leggere entrambi.
In pratica i due dialetti si prestano a stili di lavoro un po’ diversi. Il linguaggio dei grafi di Pearl eccelle quando si deve ragionare sulla struttura — quali variabili controllare, quali percorsi sono aperti, se un effetto è identificabile — perché la risposta si legge sul disegno. Il linguaggio degli esiti potenziali di Rubin eccelle quando si deve stimare un numero da dati concreti, perché si aggancia in modo diretto agli strumenti statistici di stima. Molti praticanti li usano insieme: il grafo per decidere cosa fare, gli esiti potenziali per farlo.
L’RCT: comprare la causalità con il sorteggio
Sezione intitolata “L’RCT: comprare la causalità con il sorteggio”C’è uno strumento che chiude il problema dei confondenti — tutti, anche quelli che non si conoscono e non si possono misurare. È il trial controllato randomizzato (randomized controlled trial, RCT), e il suo segreto è una mossa sola: assegnare il trattamento per sorteggio.
Il ragionamento è questo. Un confondente è una variabile che, influenzando chi riceve il trattamento, sbilancia i gruppi. Ma se a decidere chi viene trattato è una moneta — un generatore casuale indipendente da tutto il resto — allora nessuna variabile può più sbilanciare i gruppi. Per costruzione, il gruppo trattato e quello di controllo sono in media equivalenti su ogni caratteristica: età, reddito, salute di partenza, e anche su quelle che nessuno ha pensato di misurare o di cui nessuno sospetta l’esistenza. La randomizzazione non misura i confondenti: li bilancia tutti insieme, in blocco, senza bisogno di conoscerli.
Nei due linguaggi che abbiamo visto la cosa si dice in modo pulito. In quello di Pearl: la randomizzazione è la realizzazione fisica del do-operator — sorteggiare significa, concretamente, tagliare tutte le frecce che entrano in . In quello di Rubin: la randomizzazione rende l’assegnazione al trattamento indipendente dagli esiti potenziali, e perciò la semplice differenza fra le medie osservate dei due gruppi stima l’ATE senza bias.
È questo che si intende quando si dice che l’RCT è il gold standard dell’inferenza causale. Non perché elimini ogni incertezza: l’incertezza campionaria resta tutta, e si gestisce con i test di ipotesi e gli intervalli di confidenza della Parte V — un RCT su dieci pazienti dice poco quanto qualsiasi altra cosa su dieci pazienti. È gold standard perché elimina il confondimento per costruzione, e il confondimento è il nemico che i dati osservativi non sanno battere. L’A/B test del software è esattamente questo: un RCT applicato a una feature, con gli utenti sorteggiati fra variante A e variante B.
C’è un dettaglio elegante che vale la pena cogliere. La randomizzazione funziona anche contro i confondenti che non esistono nella tua immaginazione. La formula di aggiustamento di Pearl chiude i percorsi backdoor che hai elencato nel DAG; se ne hai dimenticato uno, resta aperto. La randomizzazione, invece, non lavora percorso per percorso: rende indipendente da tutto ciò che non discende da , in un colpo solo. È la differenza fra disinnescare le mine una a una conoscendone la posizione e far esplodere l’intero campo prima di attraversarlo. Per questo, quando l’esperimento è possibile, batte qualunque analisi osservativa per quanto raffinata.
Anche quando l’RCT è fattibile, ci sono insidie. La randomizzazione deve essere davvero casuale: assegnare il trattamento “ai primi arrivati” o “agli utenti del lunedì” non randomizza, perché chi arriva prima o si collega il lunedì può differire sistematicamente. E c’è l’assunzione SUTVA (stable unit treatment value): l’esito di un’unità non deve dipendere dal trattamento delle altre. Se la variante A di un’app diventa virale e ne parlano anche gli utenti della variante B, i due gruppi non sono più isolati e l’esperimento perde di nettezza. Negli A/B test su reti sociali questo è un problema reale, non teorico.
Il limite più generale è altrettanto netto: spesso l’RCT non si può fare proprio. Non si può sorteggiare chi fuma vent’anni, chi nasce in povertà, quale paese adotta una certa politica monetaria — per ragioni etiche, di costo, o di pura impossibilità fisica. In quei casi si torna ai metodi osservazionali (l’aggiustamento per confondenti, e tecniche quasi-sperimentali come le variabili strumentali, di cui dirà regressione-statistica (in preparazione)), che funzionano solo a prezzo di assunzioni causali non verificabili dai soli dati.
Esempio numerico: il gelato, smontato
Sezione intitolata “Esempio numerico: il gelato, smontato”Mettiamo dei numeri sul termometro nascosto. Una città raccoglie, per dodici mesi, i coni di gelato venduti e gli annegamenti. Aggregando tutti i mesi, lo scatterplot sale in diagonale: applicando la formula di Pearson si ottiene, poniamo, . Un’associazione fortissima. Un test di ipotesi la confermerebbe con un minuscolo: non è rumore campionario, è un pattern reale nei dati.
Per vedere il confondente all’opera, mettiamo accanto i numeri di due giorni qualsiasi:
| Giorno | Temperatura | Coni venduti | Annegamenti |
|---|---|---|---|
| 14 gennaio | 4 °C | 120 | 0 |
| 14 luglio | 31 °C | 2 100 | 3 |
Confrontando i due giorni, coni e annegamenti salgono insieme — ed è da confronti di questo tipo, ripetuti su dodici mesi, che esce l’. Ma il confronto mette in fila due cose alla volta: il giorno caldo ha più coni e più annegamenti perché è caldo, non perché i coni causino gli annegamenti. La colonna “Temperatura” è il motore di entrambe le altre due, e finché resta libera di variare trascina coni e annegamenti nella stessa direzione.
Ora stratifichiamo per stagione, cioè applichiamo la formula di aggiustamento con , il che equivale a tenere ferma la temperatura entro una banda stretta. Prendiamo i soli mesi estivi: la temperatura varia poco, e dentro quel gruppo coni e annegamenti non hanno più alcun andamento comune — scende a circa , compatibile con zero. Idem per i mesi invernali. L’effetto:
è la media di valori tutti vicini a zero: l’effetto causale del gelato sugli annegamenti è nullo. L’ non era falso — i dati salivano davvero in diagonale — ma era interamente prodotto dal confondente. La stratificazione lo ha sciolto. Lezione: la stessa coppia di dati può portare e effetto causale zero, e nessuna quantità di significatività statistica distingue i due casi. Solo il modello causale lo fa.
Vale la pena fissare che cosa ha reso possibile lo smontaggio. La stagione era un confondente noto — l’avevamo in mente — e misurato — la colonna esisteva nel dataset. Sono le due condizioni che la formula di aggiustamento richiede. Togli una delle due e il metodo si ferma: se nessuno avesse pensato alla temperatura, o se quella colonna non fosse stata raccolta, l’ sarebbe rimasto lì, solido e ingannevole, senza alcun appiglio statistico per dubitarne. È la differenza pratica fra correlazione e causalità: la prima la leggi nei dati, la seconda richiede di portare al tavolo qualcosa che nei dati non c’è.
Esempio in codice: fabbricare un collisore
Sezione intitolata “Esempio in codice: fabbricare un collisore”La forchetta — il confondente — è intuitiva. Il collisore lo è molto meno, e il modo migliore per crederci è generarlo. Costruiamo due variabili realmente indipendenti e mostriamo come condizionare su un loro effetto comune fa nascere dal nulla una correlazione.
import numpy as np
rng = np.random.default_rng(0)n = 100_000
# Talento e bellezza: per costruzione indipendenti.talento = rng.normal(0, 1, n)bellezza = rng.normal(0, 1, n)
# "Fama": effetto comune (collisore), causato da entrambe.# talento -> fama <- bellezzafama = talento + bellezza + rng.normal(0, 0.5, n)
# Correlazione sull'intera popolazione: ~ 0, come da costruzione.print(np.corrcoef(talento, bellezza)[0, 1]) # ~ 0.00
# Ora guardiamo SOLO i famosi: condizioniamo sul collisore.famosi = fama > np.quantile(fama, 0.85)print(np.corrcoef(talento[famosi], bellezza[famosi])[0, 1]) # ~ -0.5Il DAG è esplicito nei commenti: talento -> fama <- bellezza. La fama è un collisore, l’effetto comune di due cause indipendenti. La riga fama = talento + bellezza + rumore codifica proprio questo: la fama sale quando sale il talento o quando sale la bellezza.
Sull’intera popolazione, talento e bellezza non correlano: li abbiamo generati indipendenti, e la prima corrcoef lo conferma. Ma se restringiamo lo sguardo ai soli famosi — chi ha fama alta — compare una correlazione negativa netta. La ragione è puramente logica: per essere famosi serve talento oppure bellezza in dose abbondante. Fra i famosi, allora, chi è poco bello dev’essere per forza molto bravo, e chi è poco bravo dev’essere molto bello — altrimenti non sarebbe in quel gruppo. Il filtro “solo famosi” fabbrica un’anticorrelazione che nella popolazione non esiste. Provando a cambiare la soglia — 0.95 invece di 0.85, cioè restringendo ai soli super-famosi — la correlazione negativa si fa ancora più marcata: più stretto il filtro sul collisore, più forte la spuria che inietta.
Nessun dato è stato falsificato. È bastato guardare un sottoinsieme selezionato in base a un collisore. Questo è il collider bias, e il punto da portare via è che qui condizionare — la stessa operazione che cura il confondimento — è ciò che crea il problema. La direzione dipende dal ruolo causale della variabile, e il ruolo non è nei numeri: è nel DAG.
Conviene notare quanto questo esempio sia istruttivo nel confronto con il gelato. Là, condizionare sulla stagione spegneva una correlazione spuria: la stagione era una forchetta, un confondente, e tenerla ferma era la cosa giusta. Qui, condizionare sulla fama accende una correlazione spuria: la fama è un collisore, e tenerla ferma è la cosa sbagliata. La stessa operazione statistica — guardare i dati dentro un valore fisso di una terza variabile — è la cura in un caso e la malattia nell’altro. Nessun algoritmo che guardi solo i numeri di talento, bellezza e fama può dire quale dei due casi ha davanti. Serve sapere chi causa chi: serve il grafo.
Esempio reale: le ammissioni di Berkeley
Sezione intitolata “Esempio reale: le ammissioni di Berkeley”Nel 1973 l’Università della California, Berkeley, sembrò avere un problema. Sui dati aggregati delle ammissioni alla scuola di specializzazione, gli uomini venivano ammessi a un tasso sensibilmente più alto delle donne. Il dato suggeriva una discriminazione di genere, e finì in un articolo su Science (Bickel, Hammel, O’Connell, 1975).
Poi qualcuno guardò i dati dipartimento per dipartimento. E il quadro si capovolse: in quasi ogni singolo dipartimento, le donne erano ammesse a un tasso uguale o superiore a quello degli uomini. Un esempio numerico stilizzato, con due soli dipartimenti, basta a mostrare come l’inversione sia aritmeticamente possibile:
| Dipartimento | Uomini ammessi | Donne ammesse |
|---|---|---|
| A (poco selettivo) | 60/80 = 75% | 18/20 = 90% |
| B (molto selettivo) | 12/40 = 30% | 36/100 = 36% |
| Aggregato | 72/120 = 60% | 54/120 = 45% |
In entrambi i dipartimenti le donne sono ammesse a un tasso più alto. Eppure nell’aggregato risultano svantaggiate. Il trucco è nelle proporzioni: gli uomini si addensano nel dipartimento facile (80 su 120), le donne in quello difficile (100 su 120). La media aggregata di ciascun gruppo è tirata verso il tasso del dipartimento dove quel gruppo è più numeroso — e questo, da solo, capovolge il confronto. La spiegazione causale: le donne tendevano a candidarsi in proporzione maggiore ai dipartimenti più selettivi, mentre gli uomini si concentravano su quelli dove era più facile entrare. Il “dipartimento” è la variabile che, una volta tenuta ferma, ribalta la direzione dell’associazione.
Questo è il paradosso di Simpson, dal nome dello statistico britannico Edward Simpson che lo formalizzò in un articolo del 1951 (il fenomeno era già stato notato da Pearson e da George Udny Yule, statistico britannico, a inizio Novecento). La cosa cruciale — e il motivo per cui Pearl lo usa come manifesto del pensiero causale — è che nessuna delle due viste mente: i numeri aggregati sono corretti, i numeri stratificati sono corretti. La domanda “quale vista racconta la verità sulla discriminazione?” non ha una risposta statistica. Ha una risposta causale, e dipende da quale DAG si crede vero.
Se il dipartimento è un confondente — qualcosa che andrebbe tenuto fermo per vedere l’effetto pulito — allora conta la vista stratificata. Se fosse un mediatore sul percorso causale, stratificare nasconderebbe parte dell’effetto. La statistica fornisce i numeri; quale numero risponde alla domanda lo decide il modello causale, che la statistica da sola non contiene.
Il punto generale è che il paradosso di Simpson non è una stranezza rara: è la regola, ogni volta che si aggregano dati su gruppi eterogenei. Qualunque metrica riportata “in media” — il tasso di errore di un modello su tutto il test set, la conversione media di un sito, l’accuratezza su un benchmark — può nascondere un’inversione di segno appena la si scompone per sottogruppo. Chi presenta solo l’aggregato non sta necessariamente barando, ma sta facendo una scelta — quella di non stratificare — e quella scelta, come tutte le scelte di questo capitolo, è causale e andrebbe dichiarata.
Esempio nel dominio AI: il classificatore di curriculum
Sezione intitolata “Esempio nel dominio AI: il classificatore di curriculum”Un’azienda addestra un modello per ordinare i curriculum dei candidati a un ruolo da sviluppatore, usando come etichetta “è stato assunto in passato”. Il modello impara, fra le altre cose, che chi ha frequentato una certa ristretta cerchia di università ottiene punteggi più alti. Sui dati storici la correlazione è netta: quei laureati venivano assunti più spesso.
Trattare quella correlazione come causale — concludere “frequentare quelle università rende un candidato migliore” e ordinare di conseguenza — ripete tre errori del capitolo in un colpo solo. Primo, il confondente: chi accede a quelle università ha spesso un contesto socioeconomico che apre anche altre porte; l’università è una spia, non necessariamente un motore. Secondo, il collider/selection bias: l’etichetta “assunto in passato” è già il prodotto delle decisioni di selezionatori umani, e se quei selezionatori favorivano quelle università, il dataset contiene la loro preferenza come fosse un fatto del mondo. Terzo, l’uso interventistico di un modello predittivo: il modello viene impiegato per decidere chi va avanti, cioè per intervenire, ma è stato addestrato a riprodurre su un mondo passato, non a stimare l’effetto causale del talento. Il risultato è un sistema che cristallizza e amplifica le correlazioni del passato spacciandole per merito — un caso da manuale di feature spuria con conseguenze concrete sulle persone.
Questo esempio mostra anche perché il problema non si risolve “togliendo la variabile università” dal modello. Se l’università correla con il contesto socioeconomico, e quest’ultimo lascia tracce in decine di altre feature — il codice postale, le esperienze extracurriculari, perfino lo stile di scrittura del curriculum — il modello ricostruirà il segnale per altre vie. Rimuovere una feature spuria visibile non rimuove il confondimento: lo rende solo meno evidente. La cura non è cosmetica sulle feature, è capire la struttura causale che genera i dati — ed eventualmente decidere, esplicitamente, a quale domanda il sistema deve davvero rispondere.
Applicazioni pratiche
Sezione intitolata “Applicazioni pratiche”Per chi costruisce sistemi AI la distinzione vedere/fare non è filosofia: è la differenza fra un modello che funziona in produzione e uno che fa danni.
A/B test e decisioni di prodotto. Ogni A/B test è un RCT, e ogni volta che si confronta una metrica fra gruppi non randomizzati — gli utenti che hanno scelto di attivare una feature contro quelli che non l’hanno fatta — si sta facendo inferenza causale su dati osservativi, con tutti i confondenti che ne conseguono. Gli utenti che attivano una feature avanzata sono utenti più coinvolti già di partenza: la loro maggiore retention è in parte effetto della feature e in parte effetto del coinvolgimento che li ha portati ad attivarla. Solo il sorteggio scioglie il nodo. È la ragione per cui un team di prodotto serio non si fida di un confronto “utenti che hanno usato X contro utenti che non l’hanno usata” per decidere se promuovere X: quel confronto, per quanto basato su milioni di righe, risponde a una domanda di “vedere”, mentre la decisione di promuovere X è un “fare”.
Feature spurie nei modelli. Un classificatore impara qualunque cosa nei dati di addestramento predica l’etichetta, senza distinguere causa da coincidenza. Geirhos e colleghi, nel lavoro Shortcut learning in deep neural networks (Nature Machine Intelligence, 2020), hanno documentato il pattern: una rete che classifica “mucca” può aver in realtà imparato “prato verde”, perché nel dataset le mucche stanno quasi sempre su prati. L’erba è un confondente del dataset — correla con “mucca” senza causarla — e il modello, che cerca solo correlazioni, la usa volentieri. Casi analoghi documentati: classificatori di polmonite che leggono il tipo di macchinario radiografico invece della lesione; rilevatori di melanoma che imparano a riconoscere i righelli che i dermatologi appoggiano accanto alle lesioni sospette.
Lo stesso fenomeno tocca i modelli di linguaggio. Un modello addestrato a giudicare se una recensione è positiva può imparare che la parola “film” compare più spesso nelle recensioni negative del particolare dataset usato, e penalizzare ogni testo che la contenga. Non c’è alcun legame causale fra la parola “film” e il sentimento: è una correlazione del corpus, e il modello la tratta come un segnale. Ogni dataset porta con sé le sue correlazioni accidentali, e un modello abbastanza capace le troverà tutte.
Il punto da capire è che il modello non sta sbagliando: sta facendo esattamente il suo lavoro. Gli si è chiesto di trovare ciò che predice l’etichetta, e l’erba predice “mucca” meglio di molti tratti anatomici della mucca stessa, perché nel dataset è più costante e più facile da rilevare. La feature spuria non è un bug dell’addestramento: è la risposta corretta a una domanda di sola associazione. Diventa un problema solo quando ci si aspetta che il modello abbia capito cos’è una mucca — una richiesta causale — mentre gli si è insegnato solo cosa accompagna la parola “mucca” nel training set.
Distribution shift. Un modello appoggiato a una feature spuria è solido solo finché la correlazione spuria regge. Quando l’ambiente cambia — la mucca compare in spiaggia, l’ospedale cambia macchinario, gli utenti cambiano abitudini — la correlazione si rompe e il modello crolla. Si dice spesso che le relazioni causali sono quelle che restano invarianti al cambio di ambiente, mentre le correlazioni spurie cambiano da un contesto all’altro: è il legame fra pensiero causale e generalizzazione fuori distribuzione. Un filone di ricerca recente prova a sfruttare questa idea — cercare le feature la cui relazione con l’esito è stabile attraverso ambienti diversi, nella speranza che la stabilità sia un indizio di causalità. È un’idea promettente e non una soluzione chiusa: la stabilità è un sintomo della causalità, non la sua prova.
Agenti che agiscono. Un agente AI non si limita a prevedere: agisce, e ogni azione è un intervento, un . Un agente che ragiona solo sulle correlazioni viste nei dati di addestramento può proporre azioni che “in media nei dati” si accompagnano al buon esito, ma che, intervenendo, non lo producono. Suggerire di “scrivere più test perché i progetti con molti test hanno meno bug” può essere un consiglio confonduto: forse sono i team disciplinati a scrivere sia più test sia codice migliore. La distinzione vedere/fare separa un sistema che predice da un sistema che decide bene.
Valutare un modello su dati di produzione. Quando un modello è già in uso, i dati che genera sono inquinati dalle sue stesse decisioni. Un modello di raccomandazione che mostra certi prodotti riceverà più click su quei prodotti — non perché siano migliori, ma perché sono gli unici visti. Misurare la qualità del modello sui suoi stessi log è condizionare su un collisore: l’esposizione (decisa dal modello) e l’esito (il click) hanno una causa comune nel modello stesso. È la ragione per cui le metriche oneste richiedono o un esperimento randomizzato — mostrare a una frazione di utenti raccomandazioni casuali — o tecniche di correzione che ripesano i dati osservati. Senza una di queste, il modello sembra migliorare semplicemente perché si valuta su un mondo che ha già plasmato.
Dove si rompe
Sezione intitolata “Dove si rompe”Questa sezione è la più importante. Gli strumenti causali sono potenti, e proprio per questo è facile usarli male, ottenendo numeri precisi e sbagliati. C’è un filo comune fra tutti i modi in cui si rompono: ognuno è una scelta causale travestita da operazione neutrale. Stratificare, aggiungere un controllo, selezionare un sottoinsieme, fidarsi di un -value — tutte queste mosse sembrano tecniche, e invece presuppongono un’idea di chi causa chi. Quando l’idea è sbagliata o non c’è, la tecnica produce un numero che ha l’aria della precisione e la sostanza dell’errore.
Aggiustare per la variabile sbagliata. “Ho controllato per le variabili confondenti” suona rassicurante e spesso non lo è. Primo: si controlla solo per i confondenti noti e misurati; quello che non hai pensato di raccogliere resta a inquinare la stima, e nessun test te lo segnala. Secondo, più sottile: aggiungere variabili all’aggiustamento non è gratis né sempre utile. Se condizioni su un mediatore — una variabile sul percorso causale — nascondi una parte dell’effetto che volevi misurare (overcontrol bias). Se condizioni su un collisore, crei un’associazione spuria che prima non c’era, come ha mostrato l’esempio di talento e bellezza. La regola “aggiungi più controlli, meglio è” è falsa: la variabile va aggiustata solo se il suo ruolo nel DAG è quello di confondente. E il ruolo non è nei dati.
C’è un test mentale rapido per non sbagliare: prima di aggiungere una variabile ai controlli, chiediti se è causa del trattamento (e dell’esito) — allora è un confondente, va inclusa — oppure se è conseguenza del trattamento — allora è un mediatore o un collisore, e includerla fa danni. La distinzione “causa o conseguenza del trattamento” è quasi sempre decidibile col buon senso del dominio, anche quando il DAG completo è incerto. È la singola euristica che evita la maggior parte degli aggiustamenti sbagliati.
Il collisore è ovunque, travestito da selezione. Il collider bias non arriva solo quando si stratifica esplicitamente. Arriva ogni volta che il dataset è stato selezionato in base a un effetto comune. Raccogliere solo i casi “interessanti”, solo gli utenti attivi, solo i prodotti con almeno una recensione, solo i pazienti ricoverati: ognuna di queste è una condizione su un collisore, e ognuna può iniettare nel dataset pattern che fuori non esistono. È il selection bias, ed è collider bias sotto un altro nome — il punto di contatto con il bias di campionamento. Il caso storico è il Berkson bias: in un ospedale due malattie indipendenti nella popolazione generale appaiono correlate, perché l’essere ricoverati è un collisore che entrambe causano.
Il DAG è un’assunzione, non un dato. Tutta la macchina di Pearl produce risposte corrette se il grafo è corretto. Ma il grafo non si legge nei dati: dataset diversi compatibili con DAG diversi possono essere statisticamente indistinguibili (è la nozione di equivalenza di Markov). Disegnare il DAG significa dichiarare assunzioni causali che i dati non confermano né smentiscono. Cambiare una freccia di verso, o aggiungere un confondente non osservato, può ribaltare la conclusione. La causalità da dati osservativi non è mai “neutrale”: poggia sempre su un’impalcatura di assunzioni, e l’onestà sta nel dichiararle.
Questo non rende il DAG inutile, al contrario. Il suo valore è proprio quello di rendere visibili le assunzioni che ogni analisi causale fa comunque. Un’analisi senza DAG non è un’analisi senza assunzioni: è un’analisi con assunzioni nascoste, fatte implicitamente da chi sceglie quali variabili infilare nel modello. Disegnare il grafo costringe a metterle sul tavolo, dove qualcuno può discuterle e, eventualmente, smentirle con un esperimento. Un’assunzione esplicita e sbagliata è correggibile; una nascosta e sbagliata no.
Confondere significatività e causalità. Un -value piccolo dice “non è un caso campionario”. Non dice “è un effetto causale”. Un’associazione confonduta può essere significativa quanto si vuole: aumentare il campione aumenta la significatività di una correlazione spuria, perché la stima della spuria diventa più precisa. Significatività e causalità sono assi ortogonali; un risultato può essere fortissimo sul primo e nullo sul secondo. È un errore particolarmente seducente perché il -value piccolo sembra una garanzia di solidità — e lo è, ma di una solidità che riguarda solo il caso campionario, non il meccanismo.
Reverse causation: la freccia che punta dall’altra parte. Un classico, sempre in agguato perché la correlazione è simmetrica e non porta con sé alcun verso. Si osserva che le città con più poliziotti hanno più criminalità e si conclude che la polizia genera crimine; in realtà è la criminalità alta a far assumere più poliziotti. Si osserva che chi usa di più una funzione di un’app è più soddisfatto e si conclude che la funzione genera soddisfazione; forse sono gli utenti già soddisfatti a esplorare di più. Senza un’ipotesi indipendente sul meccanismo — qualcosa che vincoli la direzione, come la precedenza temporale o un esperimento — i dati osservativi non distinguono da .
La trappola del “controllo per tutto”. Esiste la tentazione opposta all’ingenuità: di fronte al rischio di confondimento, infilare nel modello ogni variabile disponibile, nella convinzione che più controlli rendano la stima più pulita. È un errore, e l’abbiamo già incontrato sotto altra forma: includere un mediatore cancella parte dell’effetto vero, includere un collisore ne fabbrica uno falso. Non esiste un insieme di controlli “neutrale” o “prudente”: ogni variabile aggiunta è una scelta causale, giusta o sbagliata a seconda del suo ruolo nel grafo. Aggiustare richiede un DAG, non un’aspirazione alla completezza.
non è “nessuna relazione”. Va ripetuto perché l’errore è frequente: il coefficiente di Pearson uguale a zero significa nessuna relazione lineare. Una relazione a U, periodica, a soglia, può avere esattamente zero e legare le variabili in modo deterministico. Prima di concludere “non c’è relazione”, guarda lo scatterplot — sempre — e considera Spearman o misure non lineari.
Il caso si moltiplica con le occasioni. La terza famiglia delle correlazioni spurie — la pura coincidenza — non è un rischio raro da ignorare: diventa una quasi-certezza appena le occasioni si moltiplicano. Una pipeline di feature engineering che genera centinaia di variabili candidate e tiene quelle che correlano con l’esito sta pescando, fra le tante, anche le correlazioni puramente fortunate. È lo stesso meccanismo dei test multipli, e va contrastato con la stessa disciplina: contare quante associazioni sono state cercate, e validare le candidate su dati che non hanno partecipato alla selezione.
I metodi osservazionali non sono un sostituto gratuito dell’esperimento. Quando l’RCT non è fattibile, esistono tecniche per stimare effetti causali da dati osservativi: l’aggiustamento per confondenti che abbiamo visto, e metodi quasi-sperimentali — variabili strumentali, regression discontinuity, difference-in-differences — che regressione-statistica (in preparazione) tratterà. Sono strumenti reali e preziosi. Ma ognuno funziona solo a prezzo di un’assunzione causale che i dati non possono verificare: che esista uno strumento valido, che non ci sia un salto confonduto alla soglia, che le tendenze sarebbero state parallele. L’errore non è usarli — è usarli senza dichiarare e difendere l’assunzione su cui poggiano, presentando una stima osservazionale come se avesse l’autorità di un esperimento. La differenza fra una stima causale onesta e un overclaim non sta nel metodo, ma nella trasparenza sulle assunzioni.
Il caso celebre: il modello che premiava l’asma. Rich Caruana e colleghi (KDD 2015) addestrarono un modello per stimare il rischio di morte da polmonite, per decidere chi ricoverare. Il modello imparò che i pazienti asmatici avevano un rischio più basso. Era vero nei dati — ma per una ragione che ribalta tutto: gli asmatici con polmonite venivano riconosciuti come fragili e mandati subito in terapia intensiva, dove le cure aggressive abbassavano la loro mortalità. Il modello aveva catturato una correlazione reale e l’aveva letta come se fosse causale. Usato per la decisione per cui era stato costruito, avrebbe mandato a casa gli asmatici — cioè i pazienti più a rischio — perché “il modello dice che stanno meglio”. Nessun errore di codice, nessun overfitting nel senso classico. Solo un modello predittivo, accurato, usato per una domanda interventistica a cui non era in grado di rispondere. È la rottura definitiva di questo capitolo: un modello che ottimizza la predizione di non sta stimando , e nessuna metrica di accuratezza lo rivela.
Si capisce, da qui, perché la confusione fra correlazione e causalità non sia un errore da principianti che la pratica corregge. È un errore strutturale: il machine learning supervisionato è costruito per ottimizzare la predizione, e la predizione vive sul gradino dell’associazione. Un modello non “scivola” verso la causalità per sbaglio — semplicemente non la rappresenta affatto. Sta a chi usa il modello sapere su quale gradino della scala si trova la domanda che gli sta ponendo, e non pretendere risposte da un gradino più in alto.
Il messaggio operativo, in chiusura, è di igiene mentale più che di tecnica. Davanti a ogni associazione — in un dataset, in un grafico, nell’output di un modello — vale la pena fermarsi e porsi tre domande: in quale verso punta la freccia? esiste una causa comune che non ho misurato? e questa associazione è una fra le tante che ho cercato, o l’unica che mi ero impegnato a guardare? Sono domande che nessun coefficiente risponde al posto nostro, e che separano chi legge i dati con disciplina da chi ci legge dentro quello che vorrebbe trovarci.
Punti di confusione tipici
Sezione intitolata “Punti di confusione tipici”Sette equivoci ricorrenti, raccolti perché ognuno ha mandato fuori strada analisi reali. Riconoscerli a colpo d’occhio è metà del valore pratico di questo capitolo.
- ” alto, quindi legame forte, quindi causa.” Tre salti, tre errori. alto significa forte associazione lineare; non dice direzione, non dice causa, non dice nemmeno la grandezza dell’effetto.
- ”, quindi non c’è relazione.” Falso: significa nessuna relazione lineare. Una parabola perfetta dà . Prima di concludere, guarda lo scatterplot.
- “Ho controllato per i confondenti.” Si controlla solo per quelli noti e misurati. E controllare per la variabile sbagliata — un mediatore, un collisore — peggiora la stima invece di migliorarla.
- “Il risultato è significativo, quindi è causale.” Significatività e causalità sono assi indipendenti. Un’associazione confonduta diventa più significativa, non meno, all’aumentare del campione.
- “Stratificare è sempre la mossa prudente.” Dipende dal ruolo causale della variabile: sul confondente è corretto, sul collisore fabbrica una correlazione spuria, sul mediatore nasconde l’effetto.
- “Il DAG si ricava dai dati.” No: dati osservativi diversi compatibili con grafi diversi sono indistinguibili. Il DAG è un’assunzione dichiarata, non un risultato.
- “L’RCT elimina l’incertezza.” L’RCT elimina il confondimento, non la variabilità campionaria. Un esperimento randomizzato su pochi soggetti resta incerto e va trattato con gli strumenti dell’inferenza.
Collegamenti
Sezione intitolata “Collegamenti”- Test di ipotesi — la significatività misura la robustezza di un’associazione contro il caso campionario, non la sua natura causale. È l’asse ortogonale a quello di questo capitolo.
- Test multipli — la terza ragione delle correlazioni spurie, il puro caso, è lo stesso meccanismo dei test multipli: cerca abbastanza coppie di variabili e qualcuna correlerà.
- Campionamento e bias di campionamento — il selection bias è collider bias sotto un altro nome: un campione selezionato in base a un effetto comune inietta associazioni spurie.
- Intervalli di confidenza — l’RCT elimina il confondimento ma non l’incertezza campionaria, che resta da quantificare con gli strumenti della stima per intervalli.
regressione-statistica (in preparazione)— la regressione è il modo più comune di “controllare per i confondenti”: vi si vedranno l’overcontrol bias e le condizioni sotto cui un coefficiente di regressione si può leggere come effetto causale.statistica-e-ml (in preparazione)— la confusione correlazione/causalità è una delle radici sistematiche dell’overclaim nel machine learning, accanto ai test multipli non contati.bias-varianza (in preparazione)— le feature spurie sono una forma strutturale di overfitting: il modello si adatta a un pattern del dataset che non generalizza all’ambiente.bayes-base (in preparazione)— la probabilità condizionata è il “vedere”; il do-operator è il “fare”. La differenza fra i due simboli è il cuore di questo capitolo.probabilita-base (in preparazione)— covarianza e indipendenza statistica sono i mattoni su cui si costruisce il coefficiente di correlazione.
Per andare oltre
Sezione intitolata “Per andare oltre”- Judea Pearl, Dana Mackenzie, The Book of Why, Basic Books, 2018. L’esposizione divulgativa della “scala della causalità” — vedere, fare, immaginare — e del do-calculus. Punto di ingresso ideale prima del testo tecnico.
- Judea Pearl, Causality: Models, Reasoning, and Inference, Cambridge University Press, 2a ed. 2009. Il testo fondativo dei modelli causali strutturali: DAG, do-operator, criterio backdoor, do-calculus. Impegnativo ma canonico.
- Robert Geirhos et al., “Shortcut learning in deep neural networks”, Nature Machine Intelligence, 2020 (arXiv:2004.07780). Il legame fra correlazioni spurie e fallimenti del deep learning, con casi documentati e una mappa concettuale del fenomeno.
- Paul W. Holland, “Statistics and Causal Inference”, Journal of the American Statistical Association, 1986. L’articolo che enuncia il problema fondamentale dell’inferenza causale e presenta in forma compatta il modello dei potential outcomes.
- Tyler Vigen, Spurious Correlations, Hachette, 2015 (e tylervigen.com). Una galleria di correlazioni assurde ad altissimo generate dal solo caso: il modo più rapido per disinnescare, una volta per tutte, l’istinto di leggere causalità in ogni vicino a 1.
- Scott Cunningham, Causal Inference: The Mixtape, Yale University Press, 2021 (versione libera online). Un manuale moderno e leggibile che attraversa il framework dei potential outcomes, l’RCT e i metodi quasi-sperimentali con esempi e codice. Un buon ponte fra l’intuizione di questo capitolo e la pratica.