<< pagina principale < ······················ << articoli < ······················
Roberto Ricci
docente di Matematica e Fisica al Liceo Scientifico "A.Righi" di Bologna
1.
Tra gli argomenti dei Programmi di Matematica e Informatica già in diversi casi adottati nei bienni delle scuole medie superiori nelle sperimentazioni seguite al Piano Nazionale di Informatica è citata, nel blocco tematico 'elementi di probabilità e statistica', la formula di Bayes. Tale formula rappresenta il nocciolo centrale dell'inferenza statistica, una tipica metodologia di ragionamento induttivo, e permette di descrivere come le proprie conoscenze su un un certo fenomeno possono essere modificate dopo ogni esperienza condotta su di esso. La formula è una semplice conseguenza della definizione di probabilità condizionata. Se dati due eventi E ed H entrambi possibili, cioè con probabilità non nulle, si indica con E|H l'evento "E nell'ipotesi che si verifichi H" e con E Ç H l'evento "E ed H entrambi", allora
p(EÇH) = p(H) · p(E|H),
essendo p(...) la misura della probabilità di un evento. Per simmetria, naturalmente,
p(EÇH) = p(E) · p(H|E)
e quindi, uguagliando i secondi membri delle due formule precedenti, si ottiene:
p(H) · p(E/H) p(H|E) = p(E)
che è per l'appunto la formula di Bayes.
Le applicazioni sono tanto interessanti quanto semplice è il modo in cui si è dedotta. Come primo esempio didattico al fine di comprenderne l'importanza si consideri il seguente. In un'urna vi sono due palline di cui non sappiamo il colore, ciascuna certamente bianca o non bianca. Possiamo migliorare la nostra conoscenza attraverso un solo tipo di esperimento: estrarre una pallina, riconoscere se è bianca o no, e quindi riporla (o reimbussolarla). Alla luce delle conoscenze iniziali potremmo farci un primo semplice modello costituito dalle tre ipotesi:
BB) le due palline sono entrambe bianche BN) una bianca e una no NN) entrambe non bianche.
Evidentemente tali ipotesi sono incompatibili tra loro ed esaurienti e dunque sarà possibile rappresentare un evento qualsiasi E come
(E Ç BB ) U (E Ç BN) U (E Ç NN),
quindi
p(E) = p(E|BB)·p(BB) + p(E|BN)·p(BN) + p(E|NN)·p(NN)
e la formula di Bayes diviene:
p(H) · p(E|H) p(H|E) = p(E|BB)·p(BB) + p(E|BN)·p(BN) + p(E|NN)·p(NN)
essendo H una delle tre precedenti ipotesi.
Le ipotesi iniziali potranno essere ragionevolmente considerate equiprobabili:
p(BB) = p(BN) = p(NN) = 1/3.
In tutti i casi ogni esperimento che possiamo fare modificherà certamente la nostra fiducia in ciascuna delle ipotesi. Ad esempio estrarre una pallina non bianca porta sempre immediatamente a zero la p(BB).
2.
La formula di Bayes ci consente dunque di ricalcolare i gradi di fiducia attuali nelle ipotesi dopo aver valutato l'esito di un esperimento. Ad esempio supponiamo che alla prima estrazione si sia verificato l'evento N : "la pallina non è bianca". Allora:
p(BB) · p(N|BB) p(BB|N) = = p(N|BB)·p(BB) + p(N|BN)·p(BN) + p(N|NN)·p(NN) = 0 p(BN) · p(N|BN) p(BN|N) = = p(N|BB)·p(BB) + p(N|BN)·p(BN) + p(N|NN)·p(NN) (1/3) · (1/2) = = 1/3 0·1/3 + (1/2)·(1/3) + 1·(1/3) p(NN) · p(N|NN) p(NN|N) = = p(N|BB)·p(BB) + p(N|BN)·p(BN) + p(N|NN)·p(NN) = ... = 2/3
Effettuato un secondo esperimento e supposto di aver estratto ad esempio nuovamente una pallina non bianca, con la formula di Bayes si potrà ricalcolare:
p(BN) · p(N|BN) p(BN|N) = = p(N|BN)·p(BN) + p(N|NN)·p(NN) (1/3) · (1/2) = = 1/5 (1/2)·(1/3) + 1·(2/3) p(NN) · p(N|NN) p(NN|N) = = p(N|BN)·p(BN) + p(N|NN)·p(NN) = ... = 4/5
Naturalmente, per quanto ripetendo l'esperimento si continui ad estrarre una pallina non bianca, non si potrà escludere l'ipotesi BN. Il grado di fiducia in essa, cioè la probabilità p(BN) dopo n esperimenti, che indicheremo con pn, diminuirà secondo la relazione ricorsiva:
pn-1 · 1/2 pn = n = 1,2,3,.... pn-1·1/2 + (1-pn-1)
in particolare, per p0 = 1/3, diminuirà come: 1/3, 1/5, 1/9, 1/17... cioè come: 1/(2n+1).
Tale risultato può essere ottenuto algebricamente:
pn-1 · 1/2 pn-1 1 pn = = = = pn-1·1/2 + (1-pn-1) 2 - pn-1 2/pn-1 - 1 1 1 = = = 2·(2/pn-2-1) - 1 22/pn-2- (2 + 1) 1 = ... = = 2n-1/p1 - (2n-2+...+2+1) 1 1 = = = 2n-1/p1-(2n-1-1)/(2-1) 3·2n-1 - 2n-1 + 1 1 = 2n + 1
oppure può spiegarsi applicando la stessa formula di Bayes se
si consideri l'evento
p(BN) · p(Nn/BN) p(BN/Nn) = = p(Nn/BB)·p(BB) + p(Nn/BN)·p(BN) + p(Nn/NN)·p(NN) (1/3) · (1/2)n = = 0·1/3 + (1/2)n·(1/3) + 1·(1/3) (1/2)n 1 = = = pn. (1/2)n + 1 1 + 2n
Il significato della formula di Bayes può essere dunque riassunto nel modo seguente:
Date le ipotesi H1, H2, ..., Hn tra loro incompatibili ed esaurienti su un certo fenomeno, se ad ogni esperimento che determini eventi E si possono trovare le probabilità condizionali p(E/Hi), allora il grado di fiducia p(Hi) su quelle ipotesi va modificato nel modo seguente:
p(Hi) · p(E/Hi) p(Hi/E) = p(E/H1)·p(H1) + ......... + p(E/Hn)·p(Hn)
e p(Hi/E) saranno i nuovi gradi di fiducia nelle ipotesi.
3.
Riprendiamo l'esempio precedente supponendo che le palline
siano n. Chiamiamo pi,k, con
pi,k · i/n se è uscita una pallina bianca p1,k·1/n+...+pn-1,k·(n-1)/n+pn,k pi,k+1 = pi,k · (n-i)/n altrimenti p0,k+p1,k·(n-1)/n+ ...+pn-1,k·1/n
o anche:
pi,k · i se è uscita una pallina bianca p1,k+...+pn-1,k·(n-1)+pi,k·n pi,k+1 = pi,k · (n-i) altrimenti p0,k·n+p1,k·(n-1)+ ...+pn-1,k
Per vedere come le previsioni si approssimano, via via sempre meglio, alla realtà ci si può servire di un semplice programma in TurboPascal.
In esso si simulano le successive estrazioni con reimbussolamento mediante la funzione RANDOM(n) che genera in modo equiprobabile un numero casuale tra 0 ed n-1 compresi; la conoscenza probabilistica della composizione dell'urna viene visualizzata dopo ogni estrazione e il processo ha termine quando l'utente preme un tasto qualsiasi.
var b,n,numeroDiPalline,numeroDiEstrazioni,i:integer; p:array[0..50] of real; pE:real; begin { INIZIALIZZAZIONE DEL MODELLO DELL'URNA } write(' Quante sono le palline bianche ? '); readln(b); write(' Quante di altro colore ? '); readln(n); numeroDiPalline:=b+n; { SI CONSIGLIA MINORE DI 20 } { INIZIALIZZAZIONE DELLE PROBABILITA` DELLE CONGETTURE } for i:=0 to numeroDiPalline do p[i]:=1/(numeroDiPalline+1); { EFFETTUAZIONE DELLE ESTRAZIONI E RIVALUTAZIONE CONGETTURE } numeroDiEstrazioni:=1; repeat if random(numeroDiPalline
Si può vedere chiaramente che la velocità con cui la teoria
converge diminuisce aumentando il numero delle ipotesi, ovvero il
numero totale di palline nel caso in esame.
Si potranno ottenere in particolare risultati come i seguenti:
Urna contenente 12 palline di cui 6 bianche
Estrazioni
ipotesi | 50 | 100 | 150 | 200 | 250 | 300 | 350 |
0 bianche | 0.000 | ||||||
1 " | 0.000 | ||||||
2 " | 0.000 | ||||||
3 " | 0.000 | ||||||
4 " | 0.001 | 0.000 | |||||
5 " | 0.033 | 0.031 | 0,097 | 0,012 | 0,002 | 0.001 | 0.005 |
6 " | 0.254 | 0.488 | 0.805 | 0.803 | 0.761 | 0.822 | 0.985 |
7 " | 0.483 | 0.459 | 0.097 | 0.184 | 0.237 | 0.177 | 0.010 |
8 " | 0.214 | 0.022 | 0.000 | ||||
9 " . | 0.015 | 0.000 | |||||
10 " | 0.000 | ||||||
11 " | 0.000 | ||||||
12 " | 0.000 |
Urna contenente 12 palline di cui 10 bianche
Estrazioni
ipotesi | 50 | 100 | 150 | 200 | 250 | 300 | 350 |
0 bianche | 0.000 | ||||||
1 " | 0.000 | ||||||
2 " | 0.000 | ||||||
3 " | 0.000 | ||||||
4 " | 0.000 | ||||||
5 " | 0.000 | ||||||
6 " | 0.000 | ||||||
7 " | 0.000 | ||||||
8 " | 0.005 | 0.001 | 0.000 | ||||
9 " | 0.111 | 0.133 | 0.074 | 0.015 | 0.007 | 0.011 | 0.003 |
10 " | 0.601 | 0.843 | 0.924 | 0.985 | 0.992 | 0.989 | 0.997 |
11 " | 0.283 | 0.018 | 0.002 | 0.001 | 0.000 | ||
12 " | 0.000 |
Sì può quindi osservare come, indipendentemente dalla distribuzione iniziale di fiducia nelle ipotesi, il processo di adeguamento della teoria alla realtà converga; è possibile simulare ciò modificando Pinizializza-zione dell'array p [...], di valori tutti positivi e con somma 1, in modo da renderlo casuale:
{ INIZIALIZZAZIONE DELLE PROBABILITÀ DELLE CONGETTURE } pTot:=0; for i :=0 to numeroDiPalline do begin p[i]:= random(10) + 1 ; pTot: = pTot + p[i] end; for i: = O to numeroDiPalline do p[i]:= p[i]/pTot;
Si potranno ottenere così valori come i seguenti:
Urna contenente 12 palline di cui 10 bianche
Estrazioni
ipotesi | 50 | 100 | 150 | 200 | 250 | 300 | 350 |
0 bianche | 0.000 | ||||||
1 " | 0.000 | ||||||
2 " | 0.000 | ||||||
3 " | 0.000 | ||||||
4 " | 0.000 | ||||||
5 " | 0.000 | ||||||
6 " | 0.000 | ||||||
7 " | 0.000 | ||||||
8 " | 0.006 | 0.000 | |||||
9 " | 0.152 | 0.099 | 0.020 | 0.010 | 0.009 | 0.009 | 0.002 |
10 " | 0.693 | 0.882 | 0.970 | 0.989 | 0.991 | 0.992 | 0.998 |
11 " | 0.148 | 0.018 | 0.010 | 0.001 | 0.000 | ||
12 " | 0.000 |
Si può infine generalizzare ulteriormente l'esempio supponendo che il numero di palline sia indeterminato e che le probalità pj rappresentino il grado di fiducia nell'ipotesi
"la probabilità di trovare una pallina bianca è i/100
(ovvero
nell'intervallo [i/100, (i+1)/100[, per i - O, 1, 2, ..., 99)".