L'algoritmo di Metropolis-Hastings è un metodo MCMC usato per generare dei valori
che presentano una distribuzione
fissata a priori. Non necessita che la distribuzione
sia nota, è sufficiente che sia conosciuta una funzione
proporzionale a
Questo requisito così debole permette di usare l'algoritmo di Metropolis-Hastings per campionare da distribuzioni di cui l'integrale sia troppo difficile, o impossibile, da calcolare in forma analitica, come è spesso il caso nell'inferenza bayesiana.
Il metodo è stato descritto da Hastings nel 1970, come generalizzazione dell'algoritmo di Metropolis del 1953.
Algoritmo di Metropolis
Per comprendere l'algoritmo generale è utile imparare prima quello originale, detto di Metropolis.
Il metodo si basa sulla generazione di valori "proposti" che vengono accettati o rigettati in modo da convergere alla distribuzione
voluta. Necessita di una funzione
e di una proposal distribution
simmetrica, che rispetti cioè la proprietà
. Le scelte più comuni per la distribuzione di proposta sono la normale
e l'uniforme
, dove
è un parametro da specificare prima della partenza dell'algoritmo.
Ciascuna iterazione dell'algoritmo di Metropolis consiste nei seguenti passaggi:
- si estrae un nuovo valore
dalla distribuzione di proposta
;
- si calcola il rapporto
;
- se
si accetta il nuovo valore
;
- se invece
il nuovo valore deve essere accettato con probabilità
. Si genera quindi un numero random
distribuito uniformemente nell'intervallo
;
- se
si accetta il nuovo valore
;
- altrimenti il nuovo valore viene rigettato e si pone
.
Per generare una sequenza di
elementi basta ripetere queste operazioni
volte a partire da un valore iniziale
scelto arbitrariamente.
Per avere una buona stima di
è necessario generare sequenze abbastanza lunghe. La scelta del parametro
può essere cruciale, se è troppo grande solo una piccola parte dei valori di prova proposti verrà accettato. Se invece è troppo piccolo la catena si muoverà molto lentamente e i valori risulteranno estremamente autocorrelati.
Di conseguenza, essendo
dipendente dalla forma e dalla scala di
deve essere di volta in volta calibrato correttamente; per la sua stima si può procedere per approssimazione successiva in modo che, fissato un delta, il numero di valori accettati sia un terzo del totale.
Anche la scelta del valore iniziale è molto importante, in genere conviene partire da valori di
tali che
assuma valori massimi in modo da avere una buona statistica nelle zone più probabili.
Caso multivariato
L'algoritmo descritto sopra funziona esattamente sia nel caso uni- che multivariato, ma esiste un secondo approccio al caso multivariato, particolarmente interessante quando si va a studiare la generalizzazione di Metropolis-Hastings. Anziché generare ad ogni iterazione un nuovo vettore
e accettarlo o respingerlo in toto, è possibile considerare a parte ogni elemento di
e generare a parte un nuovo valore per ciascuno di questi elementi tramite una distribuzione simmetrica
per poi accettare o respingere questo valore singolarmente, al fine di definire
Algoritmo di Metropolis-Hastings
L'algoritmo di Metropolis richiede, per garantirne la convergenza limite, che la distribuzione di proposta sia simmetrica. Questa condizione limita di fatto il processo che genera i valori proposti al dominio dei random walk. Hastings (1970) propose una generalizzazione dell'algoritmo di Metropolis che permette la scelta di qualsiasi tipo di proposta.
L'algoritmo di Metropolis-Hastings procede nello stesso modo del suo predecessore, ma non richiede la simmetria della proposal distribution. Questo rilassamento delle ipotesi richiede una modifica nella definizione del rapporto
, che si ridefinisce come
. Il resto dell'algoritmo rimane invariato.
Lo scopo dell'algoritmo di Metropolis-Hastings è generare una collezione di stati secondo una distribuzione desiderata
. Per farlo, l'algoritmo utilizza un processo di Markov, che asintoticamente raggiunge una distribuzione stazionaria unica
tale che
.
Un processo di Markov è definito univocamente dalle sue probabilità di transizione
, cioè la probabilità di passare da uno stato dato
a un altro stato dato
. Esso ammette una distribuzione stazionaria unica
quando sono soddisfatte le seguenti due condizioni:
- Esistenza della distribuzione stazionaria: deve esistere una distribuzione stazionaria
. Una condizione sufficiente (ma non necessaria) è il detailed balance (bilanciamento dettagliato), che richiede che ogni transizione
sia reversibile, cioè per ogni coppia di stati
, la probabilità di essere nello stato
e passare a
deve essere uguale alla probabilità di essere nello stato
e passare a
, ovvero:
. Una distribuzione
che soddisfa il bilancio dettagliato è necessariamente stazionaria, infatti segue che:

- cioè
soddisfa la definizione di distribuzione stazionaria.
- Unicità della distribuzione stazionaria: la distribuzione stazionaria
deve essere unica. Questo è garantito dall'ergodicità del processo di Markov, la quale richiede che ogni stato sia:
- aperiodico - il sistema non ritorna allo stesso stato a intervalli fissi;
- positivamente ricorrente - il numero atteso di passi per tornare nello stesso stato è finito.
L'algoritmo di Metropolis–Hastings consiste nel progettare un processo di Markov (costruendo le probabilità di transizione) che soddisfi le due condizioni sopra, in modo che la sua distribuzione stazionaria
sia esattamente
. La derivazione dell'algoritmo parte dalla condizione di bilanciamento dettagliato:

che può essere riscritta come:

L'approccio consiste nel suddividere la transizione in due sotto-passi: la proposta e l'accettazione/rifiuto. La distribuzione di proposta
è la probabilità condizionata di proporre uno stato
dato
, mentre la distribuzione di accettazione
è la probabilità di accettare lo stato proposto
. La probabilità di transizione può essere scritta come prodotto di queste:

Inserendo questa relazione nell'equazione precedente si ottiene:

Il passo successivo nella derivazione è scegliere un rapporto di accettazione che soddisfi la condizione sopra. Una scelta comune è quella di Metropolis:

Per questo rapporto di accettazione
la condizione è soddisfatta. La scelta di
siffatta è giustificata da due punti:
- Muoversi verso zone di più alta densità di probabilità aumenta la probabilità di accettazione, infatti in tal caso
.
- Il termine
corregge l'eventuale asimmetria della probabilità di transizione, così da rispettare il bilancio dettagliato, infatti, consideriamo il caso in cui
, cioè è più probabile andare da
in
piuttosto che da
in
, allora
mentre
e quindi

- Quindi
è effettivamente la distribuzione limitre della catena di Markov.
L'algoritmo di Metropolis-Hastings può quindi essere scritto come segue:
- Inizializzazione
- scegliamo uno stato iniziale
;
- poniamo
.
- Iterazione
- generiamo un candidato
secondo
;
- calcoliamo la probabilità di accettazione
.
- Accettazione o rifiuto
- generiamo un numero casuale uniforme
;
- se
, allora accettiamo il candidato e assegnamo:
;
- se
, allora rifiutiamo il candidato e assegnamo:
.
- Passiamo alla prossima iteriazione,
.
A condizione che siano soddisfatte le ipotesi richieste, la distribuzione empirica degli stati salvati
tenderà a
. Il numero di iterazioni
necessario per stimare efficacemente
dipende da numerosi fattori, tra cui la relazione tra
e la distribuzione di proposta, e la precisione desiderata nella stima. Per distribuzioni su spazi discreti degli stati, deve essere dell'ordine del tempo di autocorrelazione del processo di Markov.
È importante notare che, in un problema generale, non è chiaro quale distribuzione
si debba usare, né quante iterazioni siano necessarie per una buona stima: entrambi sono parametri liberi del metodo, che devono essere adattati al problema specifico.
Tempi caratteristici
Affinché l'algoritmo perda memoria del dato iniziale e converga verso la distribuzione che si vuole campionare, è necessario eseguire un numero iniziale di iterazioni: tale numero si definisce tempo di termalizzazione. Similmente, nel calcolo degli errori è necessario considerare un tempo di correlazione, che consideri l'autocorrelazione tra due campionamenti successivi.
Bibliografia
- Hoff, Peter D., A first course in Bayesian statistical methods, Springer, 2009, ISBN 9780387924076, OCLC 432708578. URL consultato il 28 dicembre 2018.
- Nicholas Metropolis et al., Equation of State Calculations by Fast Computing Machines, in The Journal of Chemical Physics, 1953, DOI:10.1063/1.1699114. URL consultato il 28 dicembre 2018.
- (EN) W. K. Hastings, Monte Carlo sampling methods using Markov chains and their applications, in Biometrika, vol. 57, n. 1, 1º aprile 1970, pp. 97-109, DOI:10.1093/biomet/57.1.97. URL consultato il 28 dicembre 2018.
- Raftery, Adrian E., and Steven Lewis. "How Many Iterations in the Gibbs Sampler?" In Bayesian Statistics 4. 1992.
Voci correlate