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 ( X.j| X.k= xk, ∀ k ≠ j , Θ ) ∼ P.o i s s o n ( eθj+ ∑j ≠ kθk jxk)
p ( X 2 | X 1 = x 1 , θ , α ) ~ P o i s s o n ( e θ + α x 1 )p( X.1|X.2=x2, θ , α ) ∼ P.o i s s o n (eθ + αx2)
p ( X.2| X.1= x1, θ , α ) ∼ P.o i s s o n ( 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.) = e x p ( θ ( x1+ x2) + 2 x1x2α )Z.( θ , α )= e x p ( E.( θ , α , X.) )Z.( θ , α )
Da ich für
α und
\ theta flache Prioritäten angenommen habe
θ, ist posterior dann proportional zu
π( θ , α | X.) Α e x p ( 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.
mcmc
und den Befehlmetrop
. 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 .Antworten:
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.
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 ...
quelle
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.
quelle
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 Γ Γt t Γ Γ
rt()
quelle