Il problema: una raccomandazione apparentemente sostenuta dai dati
Un’azienda osserva che le macchine sottoposte a manutenzione preventiva si guastano più spesso delle altre. Un sistema AI riconosce questa associazione e prevede correttamente un rischio maggiore per le macchine manutenute. Sarebbe sensato usare quella previsione per ridurre la manutenzione? Non necessariamente: l’intervento potrebbe essere riservato proprio alle macchine già più fragili. Il dato potrebbe descrivere la politica con cui scegliamo i casi, anziché l’effetto dell’intervento.
La domanda di questo articolo è come passare da «chi si guasta?» a «che cosa cambierebbe se intervenissimo?». Costruiremo una tabella sintetica di duemila macchine e seguiremo ogni passaggio: confronto ingenuo, confronto entro gruppi comparabili, ricomposizione della popolazione e ipotesi necessarie. Il risultato non sarà una dimostrazione che una particolare manutenzione funziona, ma una spiegazione verificabile di come una previsione corretta possa essere usata per rispondere alla domanda sbagliata.
Tre variabili, un orizzonte temporale comune
Chiamiamo Z il gruppo di anzianità della macchina, vecchia o nuova, misurato prima di decidere. M vale 1 se viene eseguito un intervento preventivo ben definito e 0 altrimenti. Y vale 1 se avviene almeno un guasto nel mese successivo e 0 se non avviene. Il rischio è quindi una probabilità entro lo stesso mese, non un numero di guasti per ora. Confrontare durate diverse o interventi diversi sotto la stessa etichetta cambierebbe il problema.
Nella costruzione didattica metà delle macchine è vecchia. La manutenzione viene assegnata al 90% delle vecchie e al 10% delle nuove. All’interno di ciascun gruppo supponiamo che l’assegnazione non dipenda da ulteriori cause del guasto: è un’ipotesi del mondo sintetico, non qualcosa che una tabella reale dimostri da sola. Fissiamo rischi del 40% senza intervento e del 20% con intervento per le vecchie; del 4% e del 2% per le nuove. I conteggi sotto coincidono esattamente con queste probabilità, senza simulare rumore campionario.
| Z (0 nuova, 1 vecchia) | M | Macchine | Guasti | Rischio |
|---|---|---|---|---|
| 1 | 1 | 900 | 180 | 20% |
| 1 | 0 | 100 | 40 | 40% |
| 0 | 1 | 100 | 2 | 2% |
| 0 | 0 | 900 | 36 | 4% |
Il confronto che inganna, senza sbagliare la divisione
Sommiamo le prime e le terze righe: fra le mille macchine manutenute si verificano 182 guasti, cioè il 18,2%. Fra le mille non manutenute i guasti sono 76, cioè il 7,6%. La differenza è +10,6 punti percentuali. Non abbiamo commesso un errore aritmetico. Abbiamo però confrontato gruppi diversi: il primo contiene il 90% di macchine vecchie, il secondo soltanto il 10%. Il confronto incorpora questa differenza prima ancora di dire qualcosa sull’intervento.
La barra verticale si legge «fra i casi in cui»: P(Y=1 | M=1) è il rischio fra le macchine che, seguendo la politica storica, hanno ricevuto manutenzione. Non significa il rischio che avrebbero tutte le macchine se imponessimo manutenzione a tutte. Un modello che restituisce 18,2% e 7,6% per quei due gruppi riproduce correttamente queste frequenze aggregate. La sua correttezza predittiva non autorizza a interpretare la differenza come effetto di cambiare politica.
Il confronto entro gruppi: il segno si ribalta
Fra le vecchie confrontiamo 20% con 40%; fra le nuove, 2% con 4%. In entrambi i gruppi il rischio con manutenzione è inferiore. Questa inversione tra confronto aggregato e confronti stratificati è una forma del paradosso di Simpson. Non è una contraddizione della probabilità: cambiano i pesi con cui mescoliamo i gruppi. L’aggregato manutenuto è dominato dalle vecchie; quello non manutenuto dalle nuove. Le due medie stanno rispondendo a domande diverse.
Separare per anzianità, però, non trasforma automaticamente un’associazione in una causa. Funziona nel mondo costruito perché abbiamo specificato che, entro Z, l’assegnazione non dipende da altre cause del guasto. Se un tecnico scegliesse le macchine con un rumore anomalo non registrato, anche due macchine della stessa età potrebbero non essere comparabili. Il punto scientifico è proprio questo: occorre spiegare perché il confronto sarebbe valido, non scegliere il raggruppamento che produce il risultato desiderato.
Intervenire significa cambiare una regola
Rappresentiamo le ipotesi con tre frecce: Z → M, Z → Y e M → Y. L’anzianità influenza sia la scelta dell’intervento sia il rischio; l’intervento può influenzare il guasto. Z è quindi un confondente nel modello. L’operatore do(M=1) indica un’azione ipotetica che assegna M=1 indipendentemente dalla vecchia regola Z → M, lasciando invariati gli altri meccanismi. Non è un comando software né una prova eseguita in fabbrica: è una definizione della domanda causale.
La domanda diventa: nella stessa popolazione, con metà macchine vecchie e metà nuove, quale rischio avremmo assegnando l’intervento a tutte, e quale assegnandolo a nessuna? Tenere fissa la popolazione è essenziale. Non sostituiamo le macchine vecchie con nuove e non confrontiamo due reparti che hanno composizioni diverse. Cambiamo soltanto la decisione M, entro le ipotesi dichiarate. Questa precisione evita che «l’AI consiglia manutenzione» nasconda obiettivi diversi sotto una frase apparentemente semplice.
Approfondimento: un mondo sintetico che genera la tabella
Possiamo rendere esplicita la nostra ipotesi di comparabilità invece di lasciarla come dichiarazione verbale. Immaginiamo tre numeri UZ, UM e UY indipendenti, distribuiti uniformemente fra zero e uno. Il primo determina l’anzianità; il secondo, confrontato con una soglia qZ, determina se avviene la manutenzione; il terzo, confrontato con rZM, determina il guasto. Questi numeri rappresentano variazioni non spiegate dalle altre variabili. È una definizione probabilistica del mondo didattico: il programma calcola le probabilità esatte e non estrae campioni casuali.
La notazione 1[condizione] vale uno quando la condizione è vera e zero altrimenti. Z=1 identifica le vecchie. Nei simboli rZM il primo indice è il gruppo, il secondo la decisione: r10 è quindi il rischio di una vecchia senza manutenzione, non quello di una nuova manutenuta. L’indipendenza di UM e UY impedisce che, entro il gruppo, la selezione dell’intervento riveli ulteriori informazioni sul guasto. Se condividessero una causa nascosta, questa proprietà potrebbe venire meno.
L’intervento ipotetico sostituisce soltanto la seconda equazione con M=m. Non cambia la distribuzione delle età né quella della variabilità del guasto. Prima dell’intervento la probabilità congiunta si scompone in P(Z) × P(M|Z) × P(Y|M,Z). Dopo aver fissato M, il fattore della vecchia regola di assegnazione scompare: restano P(Z) × P(Y|m,Z). Sommando sui gruppi otteniamo esattamente la formula di standardizzazione della prossima sezione. Ora sappiamo da dove viene, e soprattutto quale passaggio fallirebbe se il nostro modello causale fosse sbagliato.
Ricostruire il confronto: stessi pesi, due decisioni
Per rispondere usiamo i rischi entro i gruppi, ma li pesiamo con la composizione della popolazione obiettivo: 50% vecchie e 50% nuove per entrambe le decisioni. Questa operazione si chiama standardizzazione. La formula seguente somma, per ogni valore z dell’anzianità, il rischio con decisione m in quel gruppo moltiplicato per la quota del gruppo. La sua interpretazione causale vale sotto le ipotesi specificate; il calcolo come media pesata è sempre possibile, ma il significato non nasce dalla sola algebra.
Nel mondo ipotizzato, assegnare manutenzione a tutte porta un rischio medio dell’11%, contro il 22% assegnandola a nessuna: una riduzione di 11 punti percentuali. Su duemila macchine corrisponderebbe a 220 guasti attesi invece di 440. «Attesi» non significa garantiti in un mese reale. È diverso anche dal dire «riduzione dell’11%»: la riduzione relativa è del 50%, perché 11 è metà di 22. Riportare sia la differenza assoluta sia la base di confronto evita ambiguità.
Il grafico spiega perché i pesi contano

L’asse orizzontale indica la quota di macchine vecchie nella popolazione confrontata; quello verticale il rischio mensile in percentuale. Le due curve crescono perché aumentano le macchine più fragili. A ogni stessa quota, la curva con manutenzione resta sotto l’altra. L’errore iniziale equivale invece a leggere la curva con manutenzione a quota 0,9 e quella senza a quota 0,1: otteniamo 18,2% e 7,6%, ma abbiamo cambiato contemporaneamente intervento e composizione. Il grafico rende visibile ciò che l’aggregazione nasconde.
Un secondo calcolo: dare più peso ai casi rari
Possiamo ricostruire lo stesso risultato con una pesatura inversa della probabilità di ricevere l’intervento osservato. Nel gruppo manutenuto le vecchie ricevono peso 1/0,9, le nuove 1/0,1. Le cento nuove rappresentano così mille unità pesate, come le novecento vecchie. Il rischio pesato è (180/0,9 + 2/0,1)/2000 = 0,11. Fra le non manutenute i pesi si invertono: (40/0,1 + 36/0,9)/2000 = 0,22. Non abbiamo creato nuove osservazioni: abbiamo cambiato la loro rappresentatività nel calcolo.
La coincidenza è verificata nel programma allegato. Non rende i due metodi magicamente robusti: qui le probabilità di assegnazione e i rischi sono noti per costruzione. Con dati reali vanno stimati, e pesi molto grandi rendono il risultato sensibile a pochi casi. Se nessuna macchina nuova ricevesse mai manutenzione, non avremmo osservazioni per quel confronto. Un algoritmo più sofisticato potrebbe estrapolare, ma dovrebbe dichiarare nuove ipotesi invece di presentare l’assenza di dati come informazione.
Le ipotesi che un buon punteggio predittivo non verifica
La prima ipotesi è la comparabilità entro Z: non rimangono cause comuni non misurate di manutenzione e guasto. La seconda è la positività: in ogni gruppo della popolazione obiettivo deve essere possibile osservare entrambe le decisioni. La terza è la coerenza dell’intervento: M=1 deve indicare la stessa azione definita, con il medesimo orizzonte di valutazione. Assumiamo inoltre che intervenire su una macchina non cambi direttamente l’esito delle altre. Una flotta con risorse condivise potrebbe violare proprio quest’ultima condizione.
Nemmeno aggiungere tutte le colonne disponibili è una soluzione universale. La temperatura misurata dopo l’intervento potrebbe essere parte del meccanismo con cui questo riduce i guasti: tenerla fissa può cambiare la domanda dall’effetto totale a un altro effetto. Una variabile che viene influenzata sia dall’intervento sia da una causa del guasto può introdurre distorsione quando la usiamo per selezionare i casi. Per decidere che cosa aggiustare servono ordine temporale e conoscenza del processo, non soltanto correlazioni o importanza delle variabili nel modello.
Che cosa cambia per un sistema AI aziendale
Un modello predittivo può restare utile per anticipare il carico di lavoro del servizio manutenzione sotto la politica corrente. È un uso diverso dal scegliere la politica migliore. Se l’obiettivo è decidere chi trattare, bisogna definire l’effetto desiderato e la popolazione, quindi valutare costi e vincoli oltre ai rischi. Nel nostro esempio il beneficio assoluto è maggiore per le vecchie: 20 punti percentuali contro 2. Ma senza costo dell’intervento, costo del guasto e capacità disponibile non abbiamo ancora una politica ottimale.
Una valutazione sperimentale ben progettata può rendere più credibile il confronto, se praticabile nel contesto e con i vincoli operativi appropriati. Qui non proponiamo di negare interventi necessari né abbiamo eseguito un esperimento sul campo. Il lavoro svolto è un esercizio deterministico con dati sintetici, codice e risultati salvati. Non sono dati di clienti, risultati di un prodotto o misure condotte da EL-AI. Il valore dell’esempio è rendere trasparente il ragionamento prima di cercare risposte nei dati reali.
Conclusione: prevedere non significa decidere
La previsione iniziale del 18,2% per le macchine manutenute poteva essere corretta e la raccomandazione di ridurre la manutenzione comunque sbagliata. Avevamo confuso il rischio di un gruppo selezionato con l’effetto di un’azione sulla stessa popolazione. Ricomponendo gruppi comparabili con gli stessi pesi, il nostro mondo sintetico passa da un apparente aumento di 10,6 punti a una riduzione causale di 11 punti, valida soltanto sotto le ipotesi dichiarate. Prima di affidare una decisione all’AI, la domanda da chiarire è quale cambiamento si vuole valutare e che cosa rende credibile quel confronto.
Fonti, codice e limiti della riproduzione
Judea Pearl, Causal inference in statistics: An overview, Statistics Surveys 3, 2009, pp. 96–146, DOI 10.1214/09-SS057. Sono state consultate le sezioni 3.2.1–3.2.3 sugli interventi e 3.3.1 sul criterio back-door, inclusa l’equazione 25. È una rassegna scientifica pubblicata, non un nuovo benchmark industriale. La tabella delle macchine e i calcoli sono originali soltanto come costruzione didattica di questo articolo; non costituiscono nuova ricerca causale né una riproduzione degli esperimenti di un paper.
Il codice breve calcola i due rischi osservati e quelli standardizzati. L’archivio include anche la verifica con pesi inversi e il grafico della composizione. Non è stato addestrato alcun modello AI, non sono stati simulati campioni casuali e non vengono stimati intervalli di confidenza da questi conteggi costruiti. I risultati sono controlli aritmetici riproducibili del caso ipotetico, non una misura di incertezza o di prestazione su una flotta reale.
Judea Pearl (2009) — Causal inference in statistics: An overview.
old = {1: (180, 900), 0: (40, 100)}
new = {1: (2, 100), 0: (36, 900)}
for m in [1, 0]:
observed = (old[m][0]+new[m][0])/(old[m][1]+new[m][1])
standardized = 0.5*old[m][0]/old[m][1]+0.5*new[m][0]/new[m][1]
print(m, f"observed={observed:.3f}", f"standardized={standardized:.3f}")
Codice, dati e istruzioni · JSON. Calcoli didattici eseguiti con Python 3.14.0; figure con Matplotlib 3.11.2. Analisi con assistenza AI, senza dichiarare peer review o revisione umana. Copertina originale ImageGen, illustrativa: non documenta persone, sedi o installazioni EL-AI. Fonti consultate il 27 settembre 2026.

