Metropolis-Hastings algoritm

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 21 maj 2017; verifiering kräver 1 redigering .

Metropolis-Hastings-  algoritmen är en samplingsalgoritm som huvudsakligen används för komplexa distributionsfunktioner . Det är något likt varianssamplingsalgoritmen , men här ändras hjälpdistributionsfunktionen över tiden. Algoritmen publicerades först av Nicholas Metropolis 1953 och generaliserades sedan av C. Hastings 1970 . Gibbs sampling är ett specialfall av Metropolis-Hastings-algoritmen och är mer populär på grund av dess enkelhet och hastighet, även om den är mindre ofta tillämplig.

Metropolis-Hastings-algoritmen låter dig prova vilken distributionsfunktion som helst. Det är baserat på skapandet av en Markov-kedja , det vill säga vid varje steg i algoritmen beror det nya värdet endast på det föregående . Algoritmen använder en hjälpdistributionsfunktion beroende på , för vilken det är lätt att generera ett sampel (till exempel normalfördelningen ). Vid varje steg genereras ett slumpmässigt värde för denna funktion . Då med sannolikhet

(eller med sannolikhet 1 om ), det valda värdet accepteras som nytt: , annars lämnas det gamla: .

Till exempel, om vi tar normalfördelningsfunktionen som en hjälpfunktion, då

En sådan funktion ger ett nytt värde beroende på värdet i föregående steg. Från början krävde Metropolis-algoritmen att hjälpfunktionen var symmetrisk: , men Hastings-generaliseringen tar bort denna begränsning.

Algoritm

Anta att vi redan har valt ett slumpmässigt värde . För att välja nästa värde, skaffa först ett slumpmässigt värde för funktionen . Sedan hittar vi produkten , var

är förhållandet mellan sannolikheterna mellan det mellanliggande värdet och det föregående, och

är förhållandet mellan sannolikheterna att gå från till eller tillbaka. Om den är symmetrisk är den andra faktorn lika med 1. Det slumpmässiga värdet vid det nya steget väljs enligt regeln:

Algoritmen utgår från ett slumpmässigt värde och kör först "tomgång" ett antal steg för att "glömma" det initiala värdet.

Algoritmen fungerar bäst när hjälpfunktionens form är nära objektivfunktionens form . Detta är dock ofta omöjligt att uppnå på förhand. För att lösa detta problem ställs hjälpfunktionen in under det förberedande skedet av algoritmen. Till exempel, för en normalfördelning, justera dess parameter så att andelen "accepterade" slumpmässiga värden (det vill säga de för vilka ) är nära 60%. Om det är för litet kommer värdena att vara för nära och acceptansgraden blir hög. Om det är för stort, kommer nya värden med hög sannolikhet att hoppa ut i zonerna med låg sannolikhet , varför andelen accepterade värden kommer att vara låg.