Metropolis-Hastings è un algoritmo MCMC per campionare da una distribuzione target nota anche solo a meno di una costante di normalizzazione. È usato quando si vuole esplorare una distribuzione complessa da cui non è possibile generare campioni indipendenti in modo diretto, ma si può calcolare una quantità proporzionale alla sua densità.
Da uno stato corrente \theta, propone \theta^\ast da una distribuzione q(\theta^\ast\mid\theta) e accetta con probabilità:
Qui \pi(\theta) è la densità target, nota fino a una costante moltiplicativa, e q(\theta^\ast\mid\theta) è la distribuzione di proposta. Se la proposta viene accettata, il nuovo stato è \theta^\ast; se viene rifiutata, la catena resta in \theta. Ripetendo questa procedura si costruisce una catena di Markov la cui distribuzione stazionaria è la target, sotto condizioni di regolarità.
Perché funziona con densità non normalizzate
Uno dei motivi della diffusione dell’algoritmo è che la costante di normalizzazione della target si cancella nel rapporto:
Se \pi(\theta)=c\,\tilde\pi(\theta), dove c è ignota, allora:
Questo è essenziale nella statistica bayesiana, dove la distribuzione a posteriori è spesso nota come prodotto tra verosimiglianza e prior, ma l’evidenza al denominatore è difficile da calcolare.
Caso simmetrico
Se la proposta è simmetrica, cioè q(\theta^\ast\mid\theta)=q(\theta\mid\theta^\ast), il rapporto delle q si cancella e la probabilità di accettazione diventa:
Questa versione include il random-walk Metropolis, in cui la proposta è ottenuta aggiungendo allo stato corrente una perturbazione casuale simmetrica, per esempio normale. È semplice da implementare, ma può essere inefficiente in dimensione alta o quando la target ha forte correlazione tra parametri.
Scelta della proposta
La distribuzione di proposta determina efficienza, autocorrelazione e capacità di esplorare le code della distribuzione. Una proposta con passi troppo piccoli produce alta probabilità di accettazione ma movimento lento: la catena resta molto autocorrelata. Una proposta con passi troppo grandi viene rifiutata spesso e rimane bloccata a lungo nello stesso stato. Il buon funzionamento richiede un equilibrio tra esplorazione e accettazione.
Per target anisotrope o con parametri correlati, una proposta sferica può muoversi male. È spesso utile adattare la scala alle varianze marginali, usare matrici di covarianza informate da stime preliminari o trasformare i parametri. In modelli complessi si preferiscono algoritmi MCMC più specializzati, ma Metropolis-Hastings resta il nucleo concettuale di molte varianti.
Burn-in, autocorrelazione e diagnostica
I primi campioni possono dipendere molto dallo stato iniziale; per questo si scarta spesso un periodo iniziale, detto burn-in. Dopo il burn-in i campioni non sono indipendenti: formano una catena autocorrelata. La dimensione campionaria effettiva può essere molto più piccola del numero di iterazioni salvate.
La qualità della simulazione va controllata con diagnostiche: tracciati delle catene, autocorrelazioni, confronto tra catene inizializzate in punti diversi, stime di dimensione campionaria effettiva e, quando disponibili, controlli sulla convergenza. Un istogramma liscio non basta: una catena può apparire stabile ma non avere esplorato tutte le regioni importanti della target.
Uso ingegneristico
Metropolis-Hastings è utile in inferenza bayesiana, identificazione di parametri, calibrazione di modelli fisici, affidabilità, incertezza nei modelli numerici e problemi inversi. Quando un modello meccanicistico è costoso o non lineare, l’MCMC permette di propagare l’incertezza dai dati ai parametri e poi alle grandezze di progetto.
Per esempio, si può stimare la distribuzione a posteriori di coefficienti di un modello di degrado, parametri termici, tassi di guasto o grandezze di un modello dinamico. Il risultato non è solo una stima puntuale, ma una distribuzione che descrive incertezza, correlazioni e intervalli credibili.
Errori comuni
Il primo errore è valutare l’algoritmo solo dal tasso di accettazione. Un tasso alto può indicare passi troppo piccoli; un tasso basso può indicare proposte troppo aggressive. Il secondo è usare poche iterazioni senza diagnosticare autocorrelazione e convergenza. Il terzo è ignorare vincoli e trasformazioni dei parametri: proporre valori non fisici o fuori dominio porta a rifiuti inutili e inefficienza.
Un altro errore è confondere campionamento dalla posteriori con ottimizzazione. Metropolis-Hastings non cerca soltanto il massimo della densità: deve esplorare l’intera distribuzione target. Una catena che resta vicino al massimo può essere pessima se non visita code, regioni secondarie o correlazioni importanti.
Metropolis-Hastings è quindi un algoritmo semplice nella regola di accettazione, ma delicato nella progettazione pratica. La sua affidabilità dipende dalla proposta, dalle diagnostiche e dalla coerenza tra modello probabilistico e fenomeno tecnico.