Umkehrbarer Sprung-MCMC-Code (Matlab oder R)

14

Kennt jemand einen gut geschriebenen Code (in Matlab oder R) für MCMC mit umkehrbarem Sprung? Vorzugsweise eine einfache Demo-Anwendung, um Artikel zu diesem Thema zu ergänzen, die für das Verständnis des Prozesses hilfreich wäre.

Nick
quelle
Es wurde diskutiert, OpenBUGS umkehrbaren Sprung-MCMC hinzuzufügen ( siehe Seite 288 des BUGS-Buches), und WinBUGS enthält meines Erachtens ein Sprung-Modul. Hat jemand von einer ähnlichen Entwicklung für JAGS gehört? Gibt es eine Möglichkeit, JAGS-Code zu schreiben, um die unterschiedliche Dimensionalität zu erzielen? Geht es einfach darum, Dimensionen zu definieren, die größer als nötig sind?
Jan Galkowski

Antworten:

12

RJMCMC wurde von eingeführt Peter Green in einem 1995 Papier , das ein Zitat Klassiker. Er schrieb ein Fortran-Programm namens AutoRJ für automatische RJMCMC; Seine Seite auf dieser Seite verlinkt zu David Hasties C-Programm AutoMix . In Tabelle 1 einer Arbeit von Scott Sisson aus dem Jahr 2005 finden Sie eine Liste frei verfügbarer Software für verschiedene RJMCMC-Algorithmen . Eine Google-Suche findet auch einen Pseudocode aus einer Gruppe an der Universität von Glasgow , der hilfreich sein kann, um die Prinzipien zu verstehen, wenn Sie sie selbst programmieren möchten.

ein Stop
quelle
7

Das Buch Bayesian Analysis for Population Ecology von King et al. beschreibt RJMCMC im Kontext der Populationsökologie. Ich fand die Beschreibung sehr klar und sie enthält den R-Code im Anhang.

Dem Buch ist auch eine Webseite zugeordnet , aber ein Teil des Codes im Buch befindet sich nicht auf der Website.

csgillespie
quelle
stellen sie den WinBUGS-Code für RJMCMC bereit? WinBUGS ist also RJMCMC-fähig?
Neugierig
1
@Tomas Jemand hat meine Antwort bearbeitet und R in WinBUGS geändert. Soweit ich mich erinnere, enthält das Buch R-Code.
csgillespie
Vielen Dank. (+1) Übrigens, fandest du RJMCMC nützlich für die Populationsökologie? Ich habe noch kein Beispiel gefunden, wo es nützlich sein könnte. Ich kann die Datenerweiterung zum Beispiel mit Standard-MCMC immer verwenden und es erledigt die Arbeit für mich. Beachten Sie, dass ich das Buch nicht habe .. ist es gut?
Neugierig
@Tomas Das Buch verwendet RJMCMC für die Modellauswahl. Ich fand die Beschreibung ganz nett. Ich musste RJMCMC allerdings im Zorn benutzen.
Csgillespie
"vor Wut"?? Was meinen Sie?
Neugierig
1

Fügen Sie @ onestops Antwort nur ein Detail hinzu: Ich finde, dass die von Olivier Cappé (CT / RJ MCMC) herausgegebene C-Software sehr hilfreich ist, um den MCMC-Algorithmus für den reversiblen Sprung zu verstehen (insbesondere, wie die Wahrscheinlichkeiten für Geburt, Tod und Spaltung entworfen werden). Verschiebungen zusammenführen). Der Link zum Quellcode lautet: http://perso.telecom-paristech.fr/~cappe/Code/CTRJ_mix/About/

Xiangju
quelle
1

Jailin Ai präsentiert RJ MCMC im Rahmen seiner Masterarbeit in Leeds zusammen mit dem zugehörigen R-Code recht gut (auch wenn dies sehr nahe an Green's Originalpapier liegt). Gibt auch ein detailliertes Beispiel für Probleme mit Änderungspunkten, die auch in Green 1995 enthalten sind.

Die Arbeit und den Code finden Sie hier:

http://www1.maths.leeds.ac.uk/~voss/projects/2011-RJMCMC/

Jack O'Brien
quelle
0

Nando de Freitas bietet Demos zur Verwendung des MCMC-Algorithmus mit reversiblem Sprung für die Schätzung neuronaler Netzwerkparameter. Dieses Modell behandelt die Anzahl von Neuronen, Modellparametern, Regularisierungsparametern und Rauschparametern als zu schätzende Zufallsvariablen.

Der Code und die Beschreibung finden Sie hier: http://www.cs.ubc.ca/~nando/software.html

Vadim Smolyakov
quelle