MCMC zur Behandlung von Problemen mit geringer Wahrscheinlichkeit


9

Ich habe eine ziemlich geringe Wahrscheinlichkeit, dass sich Metropolis-Hastings-Sampler sehr unregelmäßig durch den Parameterraum bewegen, dh es kann keine Konvergenz erreicht werden, unabhängig von den Parametern der Angebotsverteilung (in meinem Fall ist es Gauß). Mein Modell weist keine hohe Komplexität auf - nur zwei Parameter, aber es scheint, dass MH diese Aufgabe nicht bewältigen kann. Gibt es einen Trick um dieses Problem herum? Gibt es einen Sampler, der keine Markov-Ketten erzeugt, die sich sehr weit zu den hinteren Schwänzen bewegen?

Update des Problems:
Ich werde versuchen, meine Frage mit weiteren Details neu zu formulieren. Zunächst werde ich das Modell beschreiben.
Ich habe ein grafisches Modell mit zwei Knoten. Jeder Knoten wird wie folgt von einem Auto-Poisson-Modell (Besag, 1974) gesteuert: Oder, da es nur zwei Knoten gibt und gleiche globale Intensitäten angenommen werden : p \ left (X_ {2} | X_ {1} = x_ {1}, \ theta, \ alpha \ right) \ sim Poisson \ left (e ^ {\ theta + \ alpha x_ {1}} \ right) p ( X 1 | X 2 = x 2 , θ , α )P o i s

p(Xj|Xk=xk,kj,Θ)Poisson(eθj+jkθkjxk)
p ( X 2 | X 1 = x 1 , θ , α ) ~ P o i s s o n ( e θ + α x 1 )
p(X1|X2=x2,θ,α)Poisson(eθ+αx2)
p(X2|X1=x1,θ,α)Poisson(eθ+αx1)

Da es sich um ein Markov-Feld handelt, ist die gemeinsame Verteilung (oder die Wahrscheinlichkeit der Realisierung X=[x1,x2] ) wie folgt:

p(X)=exp(θ(x1+x2)+2x1x2α)Z(θ,α)=exp(E(θ,α,X))Z(θ,α)
Da ich für α und \ theta flache Prioritäten angenommen habe θ, ist posterior dann proportional zu
π(θ,α|X)exp(E(θ,α,X))Z(θ,α)
Da Z(θ,α)Im Allgemeinen ist es sehr schwer zu bewerten (viele, viele Summierungen). Ich verwende aufgrund von J. Moller (2006) die Methode der Hilfsvariablen. Nach dieser Methode zeichne ich zuerst eine Stichprobe von Daten X mit dem Gibbs-Sampler (da Bedingungen nur Poisson-Verteilungen sind), dann zeichne ich einen Vorschlag aus der Gaußschen Verteilung und berechne entsprechend die Akzeptanzkriterien H(X,α,θ|X,α,θ) . Und hier bekomme ich eine wilde Markov-Kette. Wenn ich einige Grenzen auferlege, innerhalb derer sich die Kette bewegen kann, scheint der Sampler zu einer Verteilung zu konvergieren, aber sobald ich mindestens eine Grenze verschiebe, bewegt sich auch die resultierende Verteilung und zeigt immer Trancation.
Ich denke, dass @ Xi'an Wright ist - der hintere könnte unpassend sein.

1
Eine Möglichkeit besteht darin, einen größeren Skalierungsparameter zu verwenden, um größere Schritte zu erhalten. Möglicherweise interessieren Sie sich auch für das R-Paket mcmcund den Befehl metrop. Sie benötigen wahrscheinlich einen adaptiven Sampler. Dieser Sampler (der Twalk) kann in solchen Fällen verwendet werden, da er adaptiv ist (möglicherweise nur als "Zweitmeinung"). Es ist in R, C und Python implementiert. Die Codes können von einer der Webseiten des Autors heruntergeladen werden .

@Procrastinator Können Sie näher erläutern, was Sie unter "größeren Parametern" verstehen? Möchten Sie größere Varianzparameter für Vorschläge verwenden?
Tomas

2
Lassen Sie mich zunächst klarstellen, dass Sie bei geringer Wahrscheinlichkeit nicht wirklich möchten, dass sich Ihr Sampler nicht "sehr weit zum hinteren Schwanz bewegt". Was gewünscht wird, ist eine ordnungsgemäße Probenahme aus der Verteilung (sowohl Schwanz als auch Mitte). Wenn Sie einen MH-Algorithmus mit Gaußschen Vorschlägen verwenden, müssen Sie Skalierungsparameter / Kovarianzmatrix auswählen, die die Länge der Schritte bestimmen. Diese müssen ausgewählt werden für 1. ordnungsgemäße Probenahme aus der Verteilung und 2. Erzielung einer angemessenen Akzeptanzrate.

Wenn Sie nur zwei Parameter haben, ist die numerische Integration wahrscheinlich eine bessere Alternative
Wahrscheinlichkeitslogik

Mit dem Ausdruck der gemeinsamen Wahrscheinlichkeit stimmt etwas nicht. Wenn Sie versuchen, summieren, erhalten Sie . Daher ist die Wahrscheinlichkeit unangemessen, wie derzeit geschrieben. p ( x 2 | α θ ) = g ( x 2 ) & Sigma; x 1 = 0 exp ( x 1 [ θ + 2 α x 2 ] ) = x1p(x2|αθ)=g(x2)x1=0exp(x1[θ+2αx2])=
Wahrscheinlichkeitslogik

Antworten:


8

Ich finde es überraschend, dass eine flache Wahrscheinlichkeit Konvergenzprobleme verursacht: Es ist normalerweise der umgekehrte Fall, der Probleme verursacht! Die übliche erste Prüfung für solche Situationen ist , um sicherzustellen , dass Ihr posterior ist die richtige : wenn es nicht für endlose Ausflüge in dem „Schwanz“ erklären würde. Wenn der hintere Teil tatsächlich richtig ist, könnten Sie Vorschläge für dickere Schwänze wie eine Cauchy-Verteilung verwenden ... und einen adaptiven Algorithmus à la Roberts und Rosenthal.

Wenn dies immer noch "nicht funktioniert", schlage ich vor, eine Neuparametrisierung des Modells in Betracht zu ziehen, indem beispielsweise eine logistische Transformation verwendet wird (dh wenn keine andere natürliche Parametrisierung vorliegt), (mit einem möglichen Skalierungsparameter), wodurch der Parameter in das Einheitsquadrat gebracht wird.

φ(x)=exp(x)/{1+exp(x)}

In Bezug auf die früheren Antworten klingt Gibbs-Sampling nach einer wahrscheinlicheren Lösung als Accept-Reject, bei der eine Grenze gefunden und die t-Verteilung nach posterior skaliert werden muss, was für den robusteren Metropolis-Hastings-Sampler nicht möglich schien ...


@ Xian danke für das Feedback zur Downvote. Gibt es tatsächlich eine Situation, in der Sie Akzeptieren-Ablehnen gegenüber MH bevorzugen würden?
gui11aume

@ gui11aume: Wenn Sie einen Akzeptanz-Ablehnungs-Algorithmus mit einer ausreichend kleinen Grenze erstellen können, um eine angemessene Akzeptanzrate sicherzustellen, ist Akzeptanz-Zurückweisung zweifellos Metropolis-Hastings vorzuziehen. Es ist jedoch unwahrscheinlich, dass dies bei (a) großen Dimensionen und / oder (b) komplexen, möglicherweise multimodalen Zielen geschieht ...
Xi'an

2

Können Sie die Verteilung Ihres ersten Parameters abhängig von Ihrem zweiten Parameter aufschreiben und umgekehrt? In diesem Fall wäre eine Gibbs-Probenahme eine praktikable Option. Es sind nur ein paar Codezeilen und es kann in vielen Fällen fast sofort gemischt werden.


1

BEARBEITEN: Siehe die Antwort von @ Xi'an und die anschließende Diskussion, um die Probleme mit dem folgenden Ansatz zu sehen.

Wenn Metropolis-Hastings fehlschlägt und Ihr Modell relativ einfach ist, können Sie den Accept-Reject- Algorithmus mit Student- Verteilung mit einem geringen Freiheitsgrad (1-6) für die Vorschläge verwenden.t

Wenn Sie R verwenden, können Sie leicht ein Student simulieren mit . Wenn Sie mit Ihrer Software keine einfache Möglichkeit haben, Variablen zu generieren, aber ein simulieren können , ist es äquivalent, bei jedem Schritt die Varianz eines Gaußschen aus einem zu zeichnen und einen Gaußschen mit dieser Varianz zu simulieren.t Γ Γtrt()tΓΓ

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.