Metropolis-Hastings algoritme

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 21. maj 2017; verifikation kræver 1 redigering .

Metropolis-Hastings-  algoritmen er en samplingsalgoritme , der hovedsageligt bruges til komplekse distributionsfunktioner . Det ligner en del varianssamplingalgoritmen , men her ændres hjælpefordelingsfunktionen over tid. Algoritmen blev først udgivet af Nicholas Metropolis i 1953 , og derefter generaliseret af C. Hastings i 1970 . Gibbs-sampling er et specialtilfælde af Metropolis-Hastings-algoritmen og er mere populær på grund af dens enkelhed og hastighed, selvom den er sjældnere anvendelig.

Metropolis-Hastings-algoritmen giver dig mulighed for at prøve enhver distributionsfunktion. Det er baseret på oprettelsen af ​​en Markov-kæde , det vil sige, ved hvert trin i algoritmen afhænger den nye valgte værdi kun af den forrige . Algoritmen bruger en hjælpefordelingsfunktion afhængig af , for hvilken det er let at generere en stikprøve (for eksempel normalfordelingen ). Ved hvert trin genereres en tilfældig værdi for denne funktion . Så med sandsynlighed

(eller med sandsynlighed 1 hvis ), den valgte værdi accepteres som ny: , ellers er den gamle tilbage: .

For eksempel, hvis vi tager normalfordelingsfunktionen som en hjælpefunktion, så

En sådan funktion producerer en ny værdi afhængigt af værdien i det foregående trin. I starten krævede Metropolis-algoritmen, at hjælpefunktionen var symmetrisk: , men Hastings-generaliseringen fjerner denne begrænsning.

Algoritme

Antag, at vi allerede har valgt en tilfældig værdi . For at vælge den næste værdi skal du først få en tilfældig værdi for funktionen . Så finder vi produktet , hvor

er forholdet mellem sandsynligheden mellem den mellemliggende værdi og den foregående, og

er forholdet mellem sandsynligheden for at gå fra til eller tilbage. Hvis den er symmetrisk, så er den anden faktor lig med 1. Den tilfældige værdi ved det nye trin vælges i henhold til reglen:

Algoritmen starter fra en tilfældig værdi , og kører først "tomgang" et antal trin for at "glemme" om den oprindelige værdi.

Algoritmen fungerer bedst, når formen af ​​hjælpefunktionen er tæt på formen af ​​den objektive funktion . Dette er dog ofte umuligt at opnå på forhånd. For at løse dette problem indstilles hjælpefunktionen under algoritmens forberedende fase. For en normalfordeling skal du for eksempel justere dens parameter , så andelen af ​​"accepterede" tilfældige værdier (det vil sige dem, for hvilke ) er tæt på 60%. Hvis det er for lille, vil værdierne være for tæt, og acceptraten vil være høj. Hvis den er for stor, vil nye værdier med stor sandsynlighed springe ud i zonerne med lav sandsynlighed , hvorfor andelen af ​​accepterede værdier vil være lav.