Metropolis-Hastings-Algoritmus

Neue Frage »

Michael78 Auf diesen Beitrag antworten »
Metropolis-Hastings-Algoritmus
Hallo!
Ich kämpfe mich gerade mit dem Metropolis-Hastings-Algoritmus ab - kann mir jemand dazu vielleicht ein numerisches Beispiel geben?

Was mir nicht klar ist, ist diese Akzeptanzwahrscheinlichkeit:
Da ist ja erst ein Wert X(t) und dann wird ein darauf folgender Wert X(t+1) gezogen, der überprüft wird.
Zur Überprüfung wird dann die Akzeptanzwahrscheinlichkeit berechnet, wobei zwei Dichtefunktionen zur Anwendung kommen:
So weit ich das verstanden habe, die Prioriwahrscheinlichkeit und eine so genannte "Vorschlagsdichte" (proposal density).
Ich verstehe das nicht: Ist es bei diesen Bayes-Sachen nicht so, dass die Prioridichte bereits eine vorgeschlagene Dichte ist, der sich die Posterioridichte dann annähert?
Worin unterscheiden sich denn in dem Algoritmus die zwei Dichten??

Ich wäre jedem herzlich dankbar, der mir hier ein wirklich idiotensicheres Beispiel Schritt für Schritt zeigen würde.
Wikipedia hat mir leider nicht weitergeholfen bzw. brauche ich wohl ein Beispiel...

Vielen Dank und schönen Abend den hilfreichen Experten! :-)
AD Auf diesen Beitrag antworten »

Von welchen Dichten sprichst du? Von denen der Markov-Kette , oder von der der Vorschlagsverteilung? Das sind bei MH ganz verschiedene Dinge. Also pack mal paar Symbole und Bezeichnungen hier rein, auf die man sich dann beziehen kann - ohne das geht es bei dieser komplexen Materie nicht.
Michael78 Auf diesen Beitrag antworten »

a=a1 * a2

a1 = P(x')/P(xt)
a2 = Q(xt;x')/Q(x'/xt)

Siehe http://en.wikipedia.org/wiki/Metropolis-Hastings_algorithm

Mir ist da einfach nicht klar:
P(x) ist ja die Funktion, die approximiert werden soll.
Wird dann für die Vorschlagsdichte Q(x';xt) eine andere Verteilung herangezogen?

Ich wäre für ein Zahlenbeispiel wirklich dankbar.
AD Auf diesen Beitrag antworten »

Das Problem ist, dass ein einigermaßen sinnvolles Beispiel schon enorm komplex ist. Ich wähle daher ein eher "unsinniges" Beispiel einer Simulation, d.h., eine die man in der Praxis nie und nimmer so durchführen würde:

Wir wollen mit MH die Standardnormalverteilung simulieren, d.h., reelle Zufallsgrößen mit der Dichte



Dann ist gemäß MH z.B. folgendes Vorgehen möglich: Von einem Startwert aus konstruiert man eine Folge in der Weise, dass man am Punkt angelangt einen Vorschlagswert bestimmt, wobei eine im Intervall liegende gleichverteilte Zufallsgröße sein möge. In Symbolen ausgedrückt entspricht das der Vorschlagsverteilungsdichte



Der MH-Algorithmus geht nun so, dass dieses mit Wahrscheinlichkeit



als neuer Wert der Folge, also akzeptiert werden soll. Andernfalls bleibt alles beim alten, d.h., .

Berechnen wir also mal diese Akzeptanzwahrscheinlichkeit für unser konkretes Beispiel: Hier liegt nun gerade Symmetrie vor, das ist der sogenannte Metropolis-Algorithmus (ein Spezialfall, der historisch eher entwickelt wurde). Also erhalten wir als Akzeptanzwahrscheinlichkeit



Die entstehende Folge liefert nun im stationären Fall (also nach einer Einschwingzeit, englisch "burn-in", d.h. für ) tatsächlich standardnormalverteilte Zufallsgrößen, wobei allerdings aufeinander folgende Glieder dieser Folge nicht unabhängig sind.

Spannend ist die Frage, wie diese Vorschlagsverteilung zu wählen ist. Das ist in sehr weiten Grenzen variabel - es muss nur garantiert sein, dass in endlich vielen Schritten der Wertebereich der Zufallsgröße "ausgelotet" werden kann, d.h., alle "Ecken" müssen erreichbar sein. Aber natürlich ist nicht jede Vorschlagsverteilung gleich gut:

Nehmen wir unser Beispiel, da ist ja noch das variabel. Wählen wir ein sehr kleines , z.B. , dann erreichen wir sehr hohe Akzeptanzraten, bewegen uns aber von Schritt zu Schritt kaum vom Fleck. Wählen wir andererseits ein sehr großes , z.B. , dann springen wir mit den Vorschlägen x' sehr oft aus dem "wahrscheinlichen" Bereich (3Sigma-Regel!) der Normalverteilung heraus, was sich in einer geringen Akzeptanzwahrscheinlichkeit äußert - d.h. die Folge "steht" regelrecht eine ganze Weile, bis sie von Zeit zu Zeit einen größeren "Satz" macht.


Richtig verstehen kannst du das vermutlich erst, wenn du das mal konkret simulierst, und dir eine durche Simulatuon entstandene Folge anschaust, am besten im Plot.
Michael78 Auf diesen Beitrag antworten »

Herzlichen Dank für die ganze Mühe und die wirklich detaillierte Erklärung!!

Ich glaube, ich bin jetzt wirklich einen sehr großen Schritt weiter.

Doch noch ein paar Fragen:
- Auf das x folgt ja in der Kette immer ein neu gezogenes x' oder wieder das x. Was bedeutet hier die Wahrscheinlichkeit für "sonst":
Wird die neue Zahl dann summiert aus x*(1-a) + x' * a?

- Woran merkt man, dass die Einschwingphase vorüber ist?
- Wenn die nachfolgenden Zahlen voneinander nicht unabhängig sind, liegt das daran, dass sie weiterhin dem "Akzeptanz-Test" unterliegen?
Oder braucht es diesen dann gar nicht mehr, weil er nur die Konvergenz sichern soll?
AD Auf diesen Beitrag antworten »

Zitat:
Original von Michael78
- Auf das x folgt ja in der Kette immer ein neu gezogenes x' oder wieder das x. Was bedeutet hier die Wahrscheinlichkeit für "sonst":
Wird die neue Zahl dann summiert aus x*(1-a) + x' * a?

Nein - das ist eine direkte Wahrscheinlichkeitsdichte, besser wäre vielleicht die Schreibweise , um deutlich zu kennzeichnen, was das Argument ist. Das "sonst" kennzeichnet den Fall, dass außerhalb des Intervalls liegen möge - der Dichtewert 0 in diesem Fall zeigt allerdings, dass das nicht passieren soll.

D.h., dieses ist nur eine anderere Schreibweise für das vorher geschriebene . Simulieren würde man die Berechnung von so, dass man ein auswürfelt und zu dem "alten" addiert. Ich habe das nur deswegen aufgeschrieben, um diese Simulation richtig in die MH-Schreibweise einordnen zu können.


Tatsächlich verwendet man MH eher bei viel komplizierteren bzw. höherdimensionalen Verteilungen, und nicht wie hier bei so einer schnöden eindimensionalen Geschichte. Erstmalig aufgetaucht ist der Metropolis-Algorithmus meines Wissens nach in der Arbeit

N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. . Teller, and E. Teller. Equations of state calculations by fast computing machines. J. Chem. Phys., 21:1087--1091, 1953.

(Edward Teller dürfte ein Begriff sein - der Vater der Wasserstoffbombe), und zwar bei Teilchensystem-Simulationen. Hier besteht also ein Zustand aus mehreren Hundert oder Tausend Dimensionen (!), nämlich den Positionen (dreidimensional) und evtl. sogar Geschwindigkeiten aller Teilchen des Systems!!!

Ein Übergang ändert dann nicht die Position aller Teilchen, sondern nur eines einzigen! Für solche Anwendungsfälle ist der MH bestens gerüstet.

Zitat:
Original von Michael78
- Woran merkt man, dass die Einschwingphase vorüber ist?

Das ist die Frage, die in den wunden Punkt tippt - das kann man adhoc nicht sagen. Dazu muss man sich Zeitreihen gewisser Charakteristiken (hier in diesem einfachen Beispiel die Folge selbst; gleitende Mittelwerte; Autokorrelation; ...) anschauen und beurteilen, wann die Einschwingphase vorbei ist. Da ist gerade bei komplexen Simulationen eine Menge Heuristik dabei.

Zitat:
Original von Michael78
- Wenn die nachfolgenden Zahlen voneinander nicht unabhängig sind, liegt das daran, dass sie weiterhin dem "Akzeptanz-Test" unterliegen?
Oder braucht es diesen dann gar nicht mehr, weil er nur die Konvergenz sichern soll?

Die Frage ist, was du mit den simulierten Werten anstellen willst. Für viele Sachen stört die Abhängigkeit gar nicht, wenn man z.B. den Erwartungswert irgendeines Funktionals über dieser Verteilung simulieren will. Braucht man wirklich unabhängige (oder besser gesagt "nahezu unabhängige") Werte, dann muss man sich die Autokorrelation dieser Folge genauer unter die Lupe nehmen. Ist die nach, sagen wir Schritten hinreichend niedrig (<10^(-6) o.ä.), dann kann man die Folgenglieder als unabhängig ansehen, d.h., man nimmt nur jeden -ten Wert der Folge und wirft die anderen weg.
 
 
Michael78 Auf diesen Beitrag antworten »

Entschuldigung, bei der ersten Frage war ich ungenau:

Mit "sonst" habe ich nicht die 0-Variante der Vorschlagsdichte gemeint, sondern weiter unten in Deinem Beispiel das "sonst" in der Formel der Akzeptanzwahrscheinlichkeit.
Ich habe gelesen, dass entweder x oder x' verwendet wird, was bedeutet dann zum Beispiel eine Akzeptanzwahrscheinlichkeit von 30%:
Dass der nachfolgende Wert in der Kette errechnet wird durch x*0,7+x' *o,3 ?

Und meine (hoffentlich, versprochen smile ) letzte Frage:
wenn also das Burn-in abgeschlossen ist, hört man dann auch mit den Akzeptant-Tests auf, oder?
Und falls ja: Wodurch entsteht dann die Abhängigkeit?

Danke!
AD Auf diesen Beitrag antworten »

Zitat:
Original von Arthur Dent
Der MH-Algorithmus geht nun so, dass dieses mit Wahrscheinlichkeit als neuer Wert der Folge, also akzeptiert werden soll. Andernfalls bleibt alles beim alten, d.h., .

Eindeutiger geht's nicht. Also keine Linearkombinationen, sondern du musst "würfeln":

* Du simulierst einen in [0,1] gleichverteilten Wert z.
* Ist z<p, dann setzt du , andernfalls setzt du .

Alles klar?
Michael78 Auf diesen Beitrag antworten »

Klar, danke!
Irgendwie kam mir Würfeln so.. zufällig vor ;-)

Letzte Frage daher: Wenn also das Burn-in abgeschlossen ist, hört man dann auch mit den Akzeptanz-Tests auf, oder?
Falls ja: Wodurch entsteht dann die Abhängigkeit?
AD Auf diesen Beitrag antworten »

Nein, das Vorgehen bleibt bestehen!

Schau dir das doch nochmal genau an: In der Vorschlagsverteilung im Beispiel steckt doch keinerlei Information über die zu simulierende Normalverteilung, also kannst du nicht erwarten, dass bei "Weglassen" der Akzeptanz-Prozedur diese Normalverteilung simuliert wird!!!

Du musst mal den Grundgedanken von MH, oder allgemein vom übergeordneten "Markov Chain Monte Carlo" (MCMC - denn dazu gehört ja MH) verstehen: Zu einer Verteilung , z.B. mit gegebener Dichte wie hier, wird eine Markov-Kette gerade so konstruiert, dass sie als stationäre Verteilung genau dieses besitzt.


Und zur Abhängigkeit: Schau dir nochmal mein Beispiel mit dem Vielteilchensystem an:

Zitat:
Original von Arthur Dent
Ein Übergang ändert dann nicht die Position aller Teilchen, sondern nur eines einzigen!

Da dürfte doch offensichtlich sein, wieso und abhängig sind: Wenn du von 1000 Teilchen nur die Position eines einzigen Teilchens änderst, dann ist das System ja noch "fast" dasselbe!!!
Michael78 Auf diesen Beitrag antworten »

Danke!
Noch eine Frage zu den komplizierteren Fällen - ich bin leider kein Physiker, aber danke für den Literaturhinweis (Metropolis et al. 1953) - :

Hier habe ich gelesen, dass man blockweise vorgehen kann, also zB einmal 5 Variablen updatet und dann wieder 5 usw.
Mit ist dabei nicht ganz klar:
Wenn ich 5 Variablen update, heißt das also, dass ich 5 mal aus der gleichen Verteilung ziehe und für jede den Akzeptanz-Test mache.

1.) Stimmt das so?
2.) Ändert sich dann für die nächsten 5 irgendwas zB an der Zielverteilung/Posterioriverteilung?
3) Falls nein, wo liegt dann der Vorteil des blockweisen Vorgehens gegenüber dem einzelnen Vorgehen?


----------------------------------------- Z U S A M M E N G E F Ü G T -----------------------------------------


Vielleicht damit ihr seht, wovon ich als Input ausgehe:

http://www2.gsb.columbia.edu/divisions/m..._metroplois.pdf


(Wesentlich schwieriger und umfangreicher ist:
http://www.princeton.edu/~yacine/eco575/...ib-shephard.pdf
)

Nur zur Einordnung, ich studiere Wirtschaft.


\\edit by mercany: Doppelpost zusammengefügt. Bitte benutze die edit-Funktion!


Vielleicht damit ihr seht, wovon ich als Input ausgehe:

http://www2.gsb.columbia.edu/divisions/m..._metroplois.pdf


(Wesentlich schwieriger und umfangreicher ist:
http://www.princeton.edu/~yacine/eco575/...ib-shephard.pdf
)

Nur zur Einordnung, ich studiere Wirtschaft.

edit: Zweiten Doppelpost zusammengefügt, bitte benutze die edit-Funktion! (MSS)
AD Auf diesen Beitrag antworten »

Also den Metropolis-Artikel habe ich mehr aus historischen Gründen angeführt, ich habe ihn auch hier momentan nicht vorliegen, also kann ich zu Details des Inhalts wenig sagen. Zum Verständnis von MH (bzw. allgemeiner MCMC) sind andere Artikel oder Bücher sicher viel besser geeignet.

Außer Historikern bzw. historisch interessierten Mathematikern liest heute ja auch keiner mehr die Original-Arbeiten von Leonard Euler... Augenzwinkern
Michael78 Auf diesen Beitrag antworten »

Das erleichtert mich :-)

Trotzdem checke ich im Moment noch nicht, wie das im Falle mehrerer Variablen geht, die in einem einzigen Iterationsschritt gesamplet werden. (?)

UND - Wenn ich das Princeton-Dokument genannt habe:
Da werden außerdem noch unbeobachtbare Parameter gesamplet, ich blicke dabei gar nicht mehr durch, wo denn die beobachteten Daten eigentlich ins Spiel kommen...

(vielleicht sollte ich meinen Nick kurzerhand in "verwirrt" umtaufen, schlimm ist das)
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »