A volte, anche nei nostri articoli, si accenna all'incertezza delle misure come "deviazione standard" e si riporta il "livello di confidenza" di una scoperta, la cui significatività è espressa da un multiplo di σ (sigma). Di cosa si sta parlando? Si tratta di quantità ben note a statistici e scienziati, riconducibili a una particolare funzione dalla forma armoniosa e simmetrica, nota come Campana di Gauss o anche come curva degli errori, curva a campana, ogiva; il suo nome deriva dal matematico tedesco Carl Friederich Gauss che fu tra i primi a studiarla.
Nella teoria della probabilità la distribuzione di Gauss (detta anche distribuzione normale, o gaussiana) viene usata per descrivere il modo in cui si distribuiscono generalmente le variabili casuali che tendono a concentrarsi attorno a un valor medio μ con una dispersione caratteristica σ, secondo la formula:
Il grafico della funzione è quello riportato in apertura, dove si assumono per μ e σ i valori standard della distribuzione normale (rispettivamente 0 e 1); in ogni caso, dato che la funzione rappresenta una distribuzione statistica, i coefficienti sono tali da rendere pari a 1 l'integrale della funzione (condizione di normalizzazione della probabilità).
In questo articolo mi sono posto due domande specifiche su questa distribuzione: la prima riguarda il modo di generare, usando un computer, una variabile casuale con distribuzione gaussiana; il secondo riguarda l'opportunità di cambiare leggermente il concetto di "livello di confidenza" per renderlo più comprensibile ed efficace. Per chi non ha molta dimestichezza con la matematica e soprattutto con gli integrali, consiglio di saltare direttamente al secondo paragrafo in fondo.
1) Come realizzare una variabile gaussiana?
Normalmente, nei linguaggi di programmazione ad alto livello come pure nei fogli elettronici più utilizzati, è disponibile una funzione RANDOM che genera una variabile pseudo-casuale1 con una distribuzione di probabilità uniforme (rettangolare) tra 0 e 1.
Tuttavia, secondo il teorema del limite centrale, la somma di n variabili casuali indipendenti tende a una distribuzione normale al tendere di n all'infinito. E' proprio questo fatto a rendere la funzione gaussiana così utile e onnipresente, dal momento che tutte le volte che ci sono molti fattori, generalmente ignoti, che perturbano un evento (ad esempio l'esito di una misura), ne risulta automaticamente una distribuzione normale.
A questo punto, dato che la distribuzione di Gauss si ottiene attraverso la somma di infinite piccole perturbazioni casuali di segno positivo e negativo, ne consegue che la variabile con distribuzione gaussiana si può ottenere semplicemente sommando tra loro un gran numero di variabili pseudo-casuali RANDOM2. Come vedremo, basta sommare un numero relativamente piccolo di tali variabili per ottenere una distribuzione molto vicina a quella gaussiana.
Partiamo da una singola variabile rettangolare con probabilità costante pari a ½ nell’intervallo [-1; 1], in modo da avere area unitaria (probabilità 1 ovvero 100%). Essa si ottiene dalla classica variabile RANDOM tramite una semplice trasformazione lineare:
x0 = 2*RANDOM – 1
Si tratta, di fatto, dell’approssimazione più semplice di una distribuzione gaussiana e infatti costituisce l’iterazione di “ordine zero” nel metodo qui discusso.
Riflettiamo un momento sulle caratteristiche di questa distribuzione di probabilità, indicandola come f0(x). Il suo valore medio è pari a 0 mentre la deviazione standard è data dalla classica media quadratica degli scarti:
σ2 = ∫ f(x)(x-xm)2 dx
in questo caso, risulta xm = 0 mentre f(x)=½ nell’intervallo [-1; 1] e zero altrove. Quindi il calcolo si riduce a un integrale definito nell’intervallo suddetto:
σ2 = 1/2 ∫ x2 dx = 1/6 [x3 ]-11 = 1/3
Alla fine, dunque, σ risulta pari a √3/3 ≈0.577. Nella figura qui sotto a sono messe a confronto f0 e la Gaussiana normalizzata g(x); la prima è stata opportunamente riscalata in modo da avere la stessa σ=1; a destra c'è la differenza tra le due funzioni.
Cosa accade al livello successivo? Il cosiddetto “ordine 1” si ottiene semplicemente sommando tra loro due variabili rettangolari: x1=x'0+x''0 . Come accennato prima, per il principio delle probabilità combinate questo implica che la risultante distribuzione di x1 sia data dalla convoluzione della distribuzione di x0 per se stessa (l'integrale si estende da -∞ a +∞):
f1(x) = f0(x) * f0(x) = ∫ f0(x)f0(z+x) dz
E' facile intuire cosa accade nell'integrale: facendo scorrere da sinistra verso destra una delle due f0, il loro prodotto risulta nullo fino a che z=-2; da quel punto, l'integrale non è altro che l'area di intersezione rettangolare tra le due f0, che cresce linearmente in ragione di z fino al momento in cui le due funzioni sono perfettamente sovrapposte (z=0). Da quel momento, la situazione si ripete invertita, dando luogo ad una rampa in discesa perfettamente simmetrica alla precedente e che si annulla per z=+2. In poche parole, f1 non è altro che una funzione triangolare estesa nell'intervallo [-2;2]; si vedano le figure sottostanti.
Per il principio di normalizzazione della probabilità, la sua altezza massima deve essere pari alla varianza corrispondente sarà data dal seguente integrale, dove si è sfruttata la simmetria della funzione da integrare raddoppiando il risultato relativo al semi-intervallo negativo:
σ2 = 2 ∫ (+ x ) x2 dx = [x3 +x4 ]-20 =- 2 = 2/3
perciò σ = √6/3 √≈ 0.816. Si noti che la varianza di ordine 1 è esattamente il doppio di quella di ordine zero e questo suggerisce una regola generale per cui
σ = √(n+1) / 3
dove n è l'ordine dell'iterazione. Ebbene, questa ipotesi è suffragata dall'idea che l'autoconvoluzione descrive di fatto un fenomeno caotico “diffusivo”, la cui estensione dovrebbe crescere secondo la radice del numero di iterazioni (diffusioni); si pensi al rumore, che cresce proprio seguendo questa legge e che può essere equiparato alle perturbazioni che generano la gaussiana. Inoltre, la regola è empiricamente confermata da verifiche numeriche sugli ordini successivi. Sulla base di queste evidenze, possiamo tralasciare il calcolo di σ negli sviluppi successivi.
L'ordine 2 dovrebbe corrispondere a una tripla autoconvoluzione di f0 ovvero alla convoluzione di f0 con f1 ed è su quest'ultima che ci concentreremo:
f2(x) = f1(x) * f0(x) = ∫ f1(x)f0(z+x) dz
Di nuovo, l'integrale rimane nullo fino a che z=-3 e poi cresce, stavolta in maniera quadratica poiché la regione intersezione è un triangolo in cui base e altezza crescono proporzionalmente. Questo continua fino a che l'estremità destra di f0 giunge all'origine(z=-1): qui l'area del prodotto è pari a metà di quella del rettangolo f0; da questo momento, la crescita viene “frenata” poiché, sia sulla sinistra che sulla destra di f0 si perdono due aree triangolari. L'area massima si raggiunge, ovviamente, per z=0 e corrisponde a ¾ dell'area di f0 (per effetto della normalizzazione, tali aree vanno poi dimezzate).
Come si vede nelle figure qui sopra, questa distribuzione ha una forma che già richiama abbastanza quella di una gaussiana, anche se meno “slanciata”. Tra l'altro, essa risulta avere deviazione standard unitaria, dunque esattamente come una curva normale. Una cosa interessante da notare è che i tratti con cui sono costruite le varie f sono funzioni di grado n (archi di parabola nell'ultimo caso analizzato); da qui la scelta di indicare n come “ordine” dell'iterazione.
La suddetta forma “spanciata” di queste distribuzioni rispetto a g tende naturalmente a scomparire aumentando l'ordine di iterazione. Questo fatto viene espresso tramite il parametro di Curtosi che gradualmente sale verso lo 0 (distribuzione normale). Ad esempio, esso vale circa -1.2 per n=0 ma per n=2 sale già a -0.4 e per n=10 diventa -0.15 (questi valori approssimativi sono stati ricavati numericamente generando campioni di 20000 variabili casuali). Di seguito sono mostrate 4 distribuzioni "empiriche" con ordine crescente (n=2,4,8,16), realizzate generando ogni volta 5000 variabili "gaussiane"; come si vede, al netto delle inevitabili oscillazioni statistiche, già con 4 iterazioni ci si avvicina molto a una gaussiana perfetta (in rosso).
Il metodo qui esposto è utile in tutti quei casi in cui si dispone solo della funzione “random” e non è necessario avere una variabile perfettamente gaussiana, né si vuole complicare troppo il codice del programma; abbiamo visto che già con n=4 la distribuzione che si ottiene è interessante e, volendo, si può fare di meglio arrivando a n≈10 ma non ha molto senso andare oltre poiché non è pratico generare e sommare così tanti numeri casuali.
2) Una nuova scala per la significatività statistica
Nella letteratura scientifica, è ormai ben consolidata l’abitudine di esprimere l’incertezza di una misura attraverso la “deviazione standard” σ, poiché nella maggior parte dei casi si assume che la distribuzione dei valori sia gaussiana o comunque riconducibile a questa. Sebbene gli scienziati conoscano bene il significato statistico di σ e usino spesso i suoi multipli per esprimere l’errore massimo o il “livello di confidenza” di una misura (vedi tabella 1), per un uso più generale si rende necessaria una “semplificazione” di tale schema secondo una tabella di probabilità più facile da capire e da usare per chiunque non abbia cognizioni profonde di statistica. In effetti, l’indicazione tradizionale di una misura nella forma X±σ è ingannevole, poiché l’eventualità che il valore reale cada al di fuori dell’intervallo indicato è quasi del 32%, dunque tutt’altro che da remota!
Alla luce di quanto detto, viene qui proposta una classificazione più comoda e “intuitiva” degli intervalli di probabilità, secondo una scala di valori decimali:
Da questa classificazione del “grado di certezza” deriva una nuova notazione per l’errore, basata sullo schema in tab.3. Il livello di riferimento per l’incertezza non è più una deviazione standard, ma il suo valore incrementato del 64.5% circa (cui corrisponde un grado di certezza del 90%); essa delimita un livello “improbabile” per l’errore. Per una coincidenza allettante, il doppio di questo intervallo corrisponde praticamente alla soglia di “quasi certezza” (P>99,9% o 3,29σ), mentre il triplo fornisce una P vicina al 99,9999% (1-10-6 o 4,9σ) che è praticamente il livello di "certezza" 5σ più stringente adottato dalla comunità scientifica (e sulla base del quale è stato ad esempio conferito il Nobel per la scoperta del Bosone di Higgs).
Nella figura in apertura vengono riportati i primi due intervalli sulla curva normale. La mia proposta è quella di adottare, soprattutto in ambito non specialistico, il valore di 1.645σ come incertezza in una misura e la terminologia della "scala di certezze" in Tabella 2 per indicare il livello di confidenza qualitativo.
Note:
1: il computer è una macchina deterministica e quindi non può realmente generare un numero casuale; per questo ci sono algoritmi che restituiscono un risultato "pseudo-casuale", spesso utilizzando il clock interno per generare un "seme" che varia in continuazione.
2: Matematicamente parlando, dato che la probabilità combinata di due eventi è data dal prodotto delle loro probabilità, la corrispondente funzione di probabilità è data dalla convoluzione delle due distribuzioni. Se queste funzioni sono uguali tra loro (come nel caso qui discusso) si parla di autoconvoluzione ovvero dalla moltiplicazione di una funzione per se stessa.