Due numeri che sembrano raccontare storie opposte
Un cruscotto segue la quota di pezzi conformi in due linee produttive. Dopo un cambiamento del processo, la percentuale sale in entrambe, ma il totale peggiora molto. Prima di concludere che i dati siano sbagliati o che un progetto AI abbia funzionato o fallito, dobbiamo capire quali pezzi compongano quel totale. L’articolo costruisce tutti i conteggi e distingue due domande legittime: come è andata la produzione realmente osservata e come cambiano i tassi se confrontiamo la stessa composizione. Non cercheremo di provare un effetto causale dell’AI da due periodi aggregati.
Abstract. Nel periodo 0 la linea A ha 90 conformi su 100 e B uno su 10; nel periodo 1 A ha 19 su 20 e B 18 su 100. I tassi salgono 90→95% e 10→18%, ma il totale scende da 82,7273% a 30,8333%. La composizione si è spostata verso la linea a tasso più basso. Con pesi 50/50 fissati per entrambi i periodi il confronto è 50→56,5%. Deriviamo inoltre una scomposizione simmetrica della differenza totale: componente dei tassi+6,3864 punti percentuali, componente della composizione−58,2803, somma−51,8939. Sono dati costruiti e calcoli esatti con frazioni, non misure di fabbrica o risultati EL-AI.
I conteggi prima delle percentuali
A e B indicano due gruppi definiti nello stesso modo in entrambi i periodi. Ogni pezzo compare una volta e conosciamo la sua conformità per costruzione: non introduciamo errori di un classificatore per isolare l’effetto della composizione. I numeri sono deliberatamente contrastati e non descrivono una resa industriale tipica. Le numerosità sono diverse:110 pezzi nel primo periodo,120 nel secondo. Non sono prove appaiate sui medesimi pezzi e non abbiamo campionato da un processo reale per stimare significatività o stabilità.
| Gruppo | n₀ | Conformi₀ | n₁ | Conformi₁ |
|---|---|---|---|---|
| A | 100 | 90 | 20 | 19 |
| B | 10 | 1 | 100 | 18 |
| Σ | 110 | 91 | 120 | 37 |
Per una linea il tasso è conformi diviso tutti i pezzi di quella linea:90/100=0,9 e 1/10=0,1 nel primo periodo;19/20=0,95 e 18/100=0,18 nel secondo. Per il totale sommiamo prima i conteggi e poi dividiamo:91/110≈0,827273 e 37/120≈0,308333. Fare invece la media semplice delle due percentuali risponderebbe già a una domanda diversa, dando implicitamente lo stesso peso alle due linee anche quando producono quantità molto diverse.
Il totale è una media con pesi che possono cambiare
Chiamiamo r_tg il tasso nel periodo t per il gruppo g e w_tg la quota dei pezzi di quel gruppo sul totale del periodo. Il tasso aggregato è la somma dei tassi moltiplicati per quei pesi. Nel periodo 0 A pesa 100/110=10/11 e B 1/11; nel periodo 1 A pesa 20/120=1/6 e B 5/6. Il volume si sposta quindi verso B, che rimane il gruppo a tasso basso anche dopo il miglioramento. Non stiamo confrontando la stessa miscela nei due periodi.
La formula legge il meccanismo dell’inversione: ogni tasso migliora, ma il peso del gruppo difficile cresce molto. È una forma dell’inversione associata al paradosso di Simpson, non un difetto dell’aritmetica. Se i pesi fossero identici e non negativi in entrambi i periodi, il totale non potrebbe peggiorare con tutti i tassi migliori. Infatti la differenza sarebbe la somma di pesi non negativi per miglioramenti positivi. Per ottenere la nostra inversione è proprio essenziale cambiare la composizione.
Fissare il mix significa fissare la domanda
Scegliamo una popolazione di riferimento ipotetica composta metà da A e metà da B. Applichiamo gli stessi pesi a entrambi i periodi: r₀*=0,5 × 0,9+0,5 × 0,1=0,5; r₁*=0,5 × 0,95+0,5 × 0,18=0,565. Il confronto standardizzato mostra+6,5 punti percentuali. Non sostituisce il totale osservato con un numero più favorevole: risponde alla domanda come cambiano i tassi a composizione fissata. Il totale osservato risponde invece quale quota dei pezzi prodotti nei rispettivi periodi fosse conforme. Entrambi sono corretti, ma non intercambiabili.
Possiamo scegliere anche il mix iniziale o quello finale come riferimento, purché lo manteniamo uguale nei due membri del confronto. Con i pesi iniziali otteniamo 82,7273→88%; con quelli finali 23,3333→30,8333%. Il verso resta positivo perché entrambi i gruppi migliorano, ma l’ampiezza dipende dalla popolazione scelta. Il programma calcola tutte e tre le versioni. Un’impresa deve dichiarare quale popolazione vuole rappresentare; scegliere a posteriori il mix che rende migliore il risultato non è un criterio di confronto trasparente.
Scomporre la differenza senza chiamarla effetto causale
Vogliamo quantificare quanto del cambiamento aritmetico si accompagni ai tassi interni e quanto alla composizione. Per ogni gruppo definiamo le medie dei pesi e dei tassi fra i due periodi, indicate da una barra. L’identità seguente ripartisce simmetricamente il cambiamento del prodotto wr. Possiamo verificarla espandendo i due termini: quelli incrociati si cancellano e rimane w₁r₁−w₀r₀. Sommando sui gruppi ritroviamo la differenza totale. Non contiene un modello di intervento né prova quale cambiamento abbia causato l’altro.
Convertendo frazioni in punti percentuali, la componente dei tassi vale+6,38636, quella della composizione−58,28030 e la somma−51,89394. Non sono percentuali relative rispetto al valore iniziale: moltiplichiamo una differenza di proporzioni per 100. Il termine di composizione domina quello dei tassi. Una scomposizione che usasse soltanto i pesi iniziali o finali ripartirebbe diversamente il termine di interazione; la scelta simmetrica è una convenzione algebrica esplicita, non l’unica attribuzione scientificamente possibile.

Perché non basta dire bisogna sempre dividere per gruppi
Il rapporto tecnico Understanding Simpson’s Paradox di Judea Pearl, R-414 del dicembre 2013, distingue l’inversione aritmetica dalla decisione causale. Abbiamo letto le sezioni sulla struttura dei confronti e sul ruolo delle relazioni causali. La stessa tabella non stabilisce da sola se sia corretto condizionare su un gruppo per stimare un effetto: dipende dal processo che ha generato i dati. Qui non stimiamo quell’effetto e non applichiamo do-calculus. Usiamo il riferimento per evitare la conclusione semplicistica che il dato disaggregato sia sempre quello vero e quello aggregato sempre ingannevole.
Per esempio, se un intervento modifica deliberatamente l’instradamento dei pezzi fra le linee, il mix può essere parte del cambiamento che vogliamo misurare, non un disturbo esterno da cancellare automaticamente. Se vogliamo confrontare prestazioni a carico fissato, scegliamo invece una popolazione di riferimento dichiarata. Sono obiettivi differenti. Nel nostro esempio non ci sono assegnazione casuale, informazioni sul processo di selezione o un modello causale: un miglioramento dei tassi osservati non dimostra che l’AI lo abbia provocato.
Che cosa deve restare stabile nel confronto
I gruppi devono avere definizioni confrontabili e il numeratore deve indicare lo stesso esito. Conformità di produzione e correttezza di un classificatore sono quantità diverse: un pezzo difettoso correttamente riconosciuto è un successo del modello, ma non un pezzo conforme. Se cambiano etichette, criteri di misura o selezione dei pezzi ispezionati, il semplice aggiustamento del mix non ricostruisce automaticamente un confronto valido. Nel caso costruito li manteniamo fissi proprio per isolare il fenomeno, non perché tali problemi siano assenti in ogni applicazione.
Tutte le celle hanno numerosità positiva. Se un gruppo non fosse osservato in uno dei periodi, il suo tasso non sarebbe zero: sarebbe non misurato. Una standardizzazione che gli assegna peso richiederebbe informazione aggiuntiva o un’ipotesi esplicita. Anche con celle presenti, poche osservazioni possono rendere incerta una stima reale. Non abbiamo calcolato intervalli o test su questi conteggi artificiali e non chiamiamo significativo il miglioramento di ciascuna linea. L’esattezza delle frazioni risolve l’aritmetica, non l’incertezza di un futuro campionamento.
Riprodurre e interpretare il risultato
Il programma salva tutti i numeratori, denominatori, pesi, tassi e componenti. Usa Fraction della libreria standard Python per mantenere razionali esatti: l’identità della scomposizione viene verificata prima di convertire in numeri decimali per figure e JSON. Non c’è casualità né seed. Con G gruppi il calcolo delle medie e della scomposizione richiede O(G) operazioni una volta disponibili i conteggi; non è un benchmark di un cruscotto. Il frammento ricalcola i due totali e il confronto 50/50, così il lettore può ritrovare i numeri iniziali senza dati esterni.
La percentuale totale scende perché non stiamo sommando la stessa miscela di produzione. Abbiamo mostrato il cambiamento dei pesi, costruito confronti a pesi fissi e riconciliato esattamente la differenza con due componenti. La conclusione non è scegliere il numero più favorevole: è dichiarare la domanda prima della metrica. Per raccontare il valore di un progetto AI servono denominatori e popolazione di riferimento chiari; per attribuirgli causalmente un miglioramento occorre ulteriore evidenza che questi conteggi non forniscono.
from fractions import Fraction as F
print(F(91,110),F(37,120))
print((F(9,10)+F(1,10))/2,(F(19,20)+F(18,100))/2)
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 17 ottobre 2026.

