<< pagina principale < ······················ << articoli < ······················


SULLA FORMULA DI BAYES

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 Nn = "tutte le n estrazioni hanno esito N" e quindi:

                           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 i=0,..,n, le probabilità che l'urna contenga "i" palline bianche ( e quindi n-i non bianche ) quando sono stati eseguiti k esperimenti, cioè estrazioni con reimbussolamento. Inizialmente, senza ulteriori conoscenze, si potrà dunque supporre pi,0 =1/(n+1). Naturalmente, in seguito all'esperienza, le probabilità delle ipotesi dovranno essere modificate nel modo seguente:

	          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)".

Il modello resterà identico.
Esso potrebbe essere utilizzato anche in altre situazioni. Ad esempio si consideri un'affermazione qualsiasi come "i corpi cadono" o "gli uomini sono mortali" o "i nati sotto il segno del Sagittario sono interessanti".
Ha infatti senso assegnare all'affermazione una serie di valori di verità: mai vera, vera nell'1% dei casi, vera nel 2% dei casi, ..., sempre vera (ricongiungendosi anche in questo caso, come nell'esempio dell'urna con palline bianche o non, a valori discreti). Tali valori di verità possono essere visti come ipotesi a priori, incompatibili ed esaurienti, a cui attribuire inizialmente lo stesso grado di fiducia, modificabile in seguito ad ogni esperienza servendosi della formula di Bayes.