Ich versuche, MCMC auf ein Problem anzuwenden, aber meine Prioritäten (in meinem Fall ) sind auf einen Bereich beschränkt? Kann ich normales MCMC verwenden und die Samples ignorieren, die außerhalb der eingeschränkten Zone liegen (in meinem Fall [0,1] ^ 2), dh die Übergangsfunktion wiederverwenden, wenn der neue Übergang aus einem eingeschränkten (eingeschränkten) Bereich fällt?
sampling
mcmc
monte-carlo
random-walk
Cupitor
quelle
quelle
Antworten:
Sie haben mehrere nette, mehr oder weniger einfache Möglichkeiten. Ihre Uniform vor hilft, sie einfacher zu machen.
Option 1: Independence Sampler. Sie können Ihre Angebotsverteilung einfach auf eine gleichmäßige Verteilung über das Einheitsquadrat festlegen, um sicherzustellen, dass die Stichproben nicht außerhalb der Sperrzone liegen, wie Sie es nennen. Möglicher Nachteil: Wenn sich der hintere Teil auf einen sehr kleinen Bereich des Einheitsquadrats konzentriert, ist die Akzeptanzrate möglicherweise sehr niedrig. OTOH, es ist schwer, Zufallszahlen schneller zu generieren als aus einer U (0,1) -Verteilung. Potenzieller Vorteil: weniger Arbeit für Sie.
Option 2: Transformieren Sie Ihre Parameter in etwas Unbeschränktes, unterbreiten Sie Vorschläge für die transformierten Parameter und transformieren Sie die Parameter zur Verwendung in den Likelihood-Funktionen zurück. Beachten Sie, dass sich in diesem Fall der Prior auf die transformierten Parameter bezieht, da Sie dafür Vorschläge machen. Sie müssen sich also mit dem Jacobian der Transformation anlegen, um den neuen Prior zu erhalten. Für Ihre Analyse transformieren Sie natürlich die von MCMC generierten Parameter-Zufallszahlen zurück in die ursprünglichen Parameter. Möglicher Nachteil: mehr anfängliche Arbeit für Sie. Möglicher Aufwärtstrend: Bessere Akzeptanz für Ihre Vorschläge.
Option 3: Erstellen Sie eine andere Angebotsverteilung als einen Unabhängigkeitssampler, der sich auf dem Einheitenquadrat befindet. Auf diese Weise können Sie Ihre Uniform im Voraus behalten, jedoch auf Kosten einer höheren Komplexität bei der Berechnung der Vorschlagswahrscheinlichkeiten. Ein Beispiel hierfür ist eine Beta-Verteilung mit Parametern , bei der der aktuelle Wert eines Ihrer Parameter ist . Je größer ist, desto konzentrierter wird Ihr Vorschlag um den aktuellen Wert sein. Möglicher Nachteil: mehr anfängliche Arbeit für Sie. Pptential den Kopf: eine bessere Akzeptanz für Ihre Vorschläge - aber wenn Sie machen zu groß ist , und in der Nähe einer Ecke bewegen, könnte man viele kleine Bewegungen in der Ecke eingereicht machen , bevor Aussteigen.( n x , n ( 1 - x ) ) n nx ( N x , n ( 1 - x ) ) n n
Option 4: Lehnen Sie einfach alle Vorschläge ab, die außerhalb des Einheitsquadrats liegen (halbherziger Vorschlag von Xian). Beachten Sie, dass dies nicht gleichbedeutend ist mit dem Generieren eines anderen Angebots. In diesem Fall lehnen Sie den Vorschlag ab, dh, Ihr nächster Wert für den Parameter entspricht dem aktuellen Wert für den Parameter. Dies funktioniert, da dies der Fall wäre, wenn Sie für einen Bereich Ihres Parameterraums eine Wahrscheinlichkeit von Null vorher hätten und eine Zufallszahl erzeugen würden, die in diesen Bereich fällt. Möglicher Nachteil: Wenn Sie sich einer Ecke nähern, besteht möglicherweise eine geringe Wahrscheinlichkeit, dass Sie stecken bleiben. Potenzieller Vorteil: weniger Arbeit für Sie.
Option 5: Erstellen Sie ein erweitertes Problem in der Ebene, das auf dem Einheitsquadrat mit dem tatsächlichen Problem identisch ist. Machen Sie alles richtig, und werfen Sie dann bei der Nachbearbeitung der Ergebnisse der MCMC-Probenahme alle Proben nach außen des Einheitsquadrats. Potenzieller Vorteil: Wenn es sehr einfach ist, dieses erweiterte Problem zu erstellen, ist es möglicherweise weniger arbeitsintensiv für Sie. Möglicher Nachteil: Wenn die Markov-Kette für eine Weile außerhalb des Feldes wandert, kann dies zu schrecklichen Akzeptanzwahrscheinlichkeiten führen, da Sie die meisten Ihrer Proben wegwerfen.
Zweifellos gibt es andere Möglichkeiten, ich würde gerne sehen, was andere Leute vorschlagen!
Der Unterschied zwischen 2 und 3 ist bis zu einem gewissen Grad konzeptionell, obwohl er reale Auswirkungen auf das hat, was Sie tatsächlich tun. Ich wahrscheinlich mit 3 gehen würde, wie ich gerade R mir sagen lassen , was die Vorschlag Wahrscheinlichkeiten sind (wenn ich in R bin Programmierung) und die Menge an zusätzlichem Aufwand, abgesehen von einem gewissen Abstimmung des Verteilungsparameter Vorschlag , Aussehen klein für mich. Wenn ich JAGS oder BUGS verwenden würde, wäre das natürlich eine ganz andere Sache, da diese Tools ihre eigenen Vorschläge bearbeiten.n
quelle