Uno scontrino registra ogni voce di una transazione: cosa è stato acquistato, in che quantità, a quale prezzo. Chiunque lo legga può verificare il totale e, volendo, ripetere esattamente lo stesso acquisto. Il codice di un’analisi dati funziona allo stesso modo: documenta ogni passaggio compiuto, dalla pulizia dei dati alla scelta del modello statistico, rendendo il lavoro verificabile e replicabile da chiunque disponga degli stessi dati.
Ogni scelta è tracciata
Quando un ricercatore pubblica il codice insieme ai risultati, rende visibile l’intera catena di decisioni analitiche: quale dataset è stato usato, come sono stati trattati i valori anomali, quale modello è stato applicato e con quali parametri. Chi vuole replicare l’analisi su dati diversi, o semplicemente verificarne la correttezza, può farlo partendo da una base documentata anziché da una descrizione a parole.
Il contrasto con strumenti come Google Sheets chiarisce il punto. In un foglio di calcolo, un analista può filtrare righe, eliminare valori, applicare formule e riformattare colonne: tutte operazioni che modificano i dati in modo quasi invisibile. Il file finale mostra i risultati, ma i passaggi intermedi sono nascosti, spesso irrecuperabili. Con uno script Python, ogni operazione è scritta esplicitamente nel codice: nulla accade fuori dalla vista del lettore.
Questo principio ha un valore pratico concreto. Leggere codice ben scritto è uno dei modi più diretti per ricostruire il ragionamento di un’analisi e identificare le scelte metodologiche non esplicitate nel testo. La comunità scientifica ha impiegato decenni a convergere su questo standard di trasparenza: oggi riviste e istituzioni lo richiedono sempre più spesso come condizione per la pubblicazione, in statistica, epidemiologia, economia applicata e machine learning.
Limite: la trasparenza non implica la qualità
La pubblicazione del codice garantisce trasparenza, ma non risponde alla domanda che più interessa il lettore critico: l’analisi è buona?
Il codice registra i risultati osservati, ma non contiene informazioni su cosa ci si aspettava di trovare né sulle ragioni per cui i risultati osservati eventualmente divergono dalle aspettative. Quando un’analisi produce un risultato sorprendente, la lettura statica del codice non è sufficiente a spiegarne la causa. Per valutare questa dimensione, è necessario modificare l’analisi e rieseguirla: variare i parametri, cambiare le assunzioni, testare scenari alternativi. In altri termini, produrre una nuova analisi.
Le cause di un risultato inatteso ricadono tipicamente in tre categorie: un’aspettativa scientifica di partenza errata, un problema nel processo di raccolta o nella struttura dei dati, oppure un errore nella pipeline di elaborazione. Né l’analista né il lettore possono, in generale, distinguere tra queste cause attraverso la sola ispezione del codice pubblicato. La trasparenza è una condizione necessaria ma non sufficiente per la valutazione della qualità.
Bibliografia
Roger Peng, “Is Code the Best Way to Represent a Data Analysis?”, Simply Statistics, 2022.
