Algoritmo di Metropolis-Hastings: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Zmlsf2b (discussione | contributi)
m corr
Zmlsf2b (discussione | contributi)
m corr
Riga 22: Riga 22:
Per generare una sequenza di N elementi basta ripetere queste operazioni N volte a partire da un valore iniziale x<sub>0</sub>.
Per generare una sequenza di N elementi basta ripetere queste operazioni N volte a partire da un valore iniziale x<sub>0</sub>.
Per avere una buona stima della p(x) è necessario generare sequenze molto lunghe.
Per avere una buona stima della p(x) è necessario generare sequenze molto lunghe.
La scelta del valore di δ può essere cruciale, se è troppo grande solo una piccola parte dei valori di prova proposti verrà accettato. Se invece il valore di δ è quasi tutti i valori di prova proposti saranno accettati.
La scelta del valore di δ può essere cruciale, se è troppo grande solo una piccola parte dei valori di prova proposti verrà accettato. Se invece il valore di δ è piccolo quasi tutti i valori di prova proposti saranno accettati.
Di conseguenza essendo δ dipendendente dalla forma di p(x) deve essere di volta in volta scelto, per la sua stima si piò procedere per approssimazione successiva in modo che fissato un delta il numero di valori accettati sia un terzo del totale.
Di conseguenza essendo δ dipendendente dalla forma di p(x) deve essere di volta in volta scelto, per la sua stima si piò 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 x tali che p(x) assuma valori massimi in modo da avere una buona statistica nelle zone più probabili.
Anche la scelta del valore iniziale è molto importante, in genere conviene partire da valori di x tali che p(x) assuma valori massimi in modo da avere una buona statistica nelle zone più probabili.

Versione delle 11:23, 20 set 2006

L'algoritmo di Metropolis-Hastings serve a generare dei numeri x1, x2, .., xn che presetano una distribuzione p(x) fissata a priori.

Il metodo si basa sulla generazione di numeri di 'test' che vengono accettati o rigettati in modo da ottenere la distribuzione voluta. Il metodo sarà presentato nel caso di una sola variabile random continua. Il metodo può essere facilmente esteso al caso di distribuzioni di probabilità p(x1, x2, ..., xN) di un numero qualsiasi di variabili.

L’algoritmo di Metropolis è realizzabile utilizzando un generatore di numeri casuali con distribuzione uniforme in [0, 1]. La procedura è la seguente:

1) Preso, per convenzione, l’ultimo valore xi della variabile random nella sequenza si sceglie un valore di prova x* diverso da xi tra tutti i valori possibili della variabile random. Nel caso delle variabili random continue si può prendere x* = xi +δx dove δx è un numero distribuito uniformemente nell’intervallo [−δ, δ];

2) Si calcola il rapporto w = ;

3) Se w ≥ 1, la probabilità che nella sequenza al valore xi segua il valore x* è pari ad uno per cui si accetta il nuovo valore x* = xi+1

4) Se w < 1 il nuovo valore deve essere accettato con probabilità w. Si genera quindi un numero random r distribuito uniformemente nell’intervallo [0, 1);


5) Se r ≤ w si accetta il nuovo valore x* = xi+1 ;


6) Se invece r > w il nuovo valore viene rigettato dal momento che xi+1 = xi.

Per generare una sequenza di N elementi basta ripetere queste operazioni N volte a partire da un valore iniziale x0. Per avere una buona stima della p(x) è necessario generare sequenze molto lunghe. La scelta del valore di δ può essere cruciale, se è troppo grande solo una piccola parte dei valori di prova proposti verrà accettato. Se invece il valore di δ è piccolo quasi tutti i valori di prova proposti saranno accettati. Di conseguenza essendo δ dipendendente dalla forma di p(x) deve essere di volta in volta scelto, per la sua stima si piò 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 x tali che p(x) assuma valori massimi in modo da avere una buona statistica nelle zone più probabili.