Naciśnij i uruchom MCMC


16

Próbuję wdrożyć algorytm MCMC, ale mam trochę problemów ze zrozumieniem, jak sobie z tym poradzić. Ogólna idea jest następująca:

Aby wygenerować skok propozycji w MH, my:

  • Wygeneruj kierunek z rozkładu na powierzchni kuli jednostkowej OdO
  • Wygeneruj podpisaną odległość wzdłuż ograniczonej przestrzeni.λ

Nie mam jednak pojęcia, jak powinienem zaimplementować to w języku R (lub innym języku).

Czy ktoś ma fragment kodu, który wskazywałby mi właściwy kierunek?

Przy okazji, nie jestem tak zainteresowany biblioteką, która robi tę metodę, chcę sam ją kodować.

Wielkie dzięki.


1
Nigdy wcześniej nie słyszałem o tym algorytmie, ale brzmi całkiem interesująco. Czy możesz podać link do źródła wyjaśniającego? Dziękuję Ci !
steffen,

@steffen Oto link do oryginalnej pracy - właściwie do raportu technicznego. Nigdy nie użyłem tej procedury.
csgillespie,

1
Jaka jest przewaga działania MCMC nad innymi metodami? Szybkość konwergencji?
RockScience,

@fRed: Właśnie dlatego zaoferowałem nagrodę. Czytałem o Hit and run, ale nie wiem, w jakich okolicznościach byłoby to przydatne.
csgillespie

3
Link jest teraz zepsuty.
daknowles

Odpowiedzi:


11

Nie spojrzałem na papier, który dostarczyłeś, ale i tak daj mi szansę:

pd

x <- rnorm(p)
d <- x/sqrt(sum(x^2))

(por. Wiki ).

dd

xrey

 lambda <- r<SOMEDISTRIBUTION>(foo, bar)
 y <- x + lambda * d

y

dre


Dodano dla korzyści @ csgillespie:

Z tego, co udało mi się zebrać w Google, uderzenie i uruchomienie MCMC jest użyteczne przede wszystkim do szybkiego miksowania, jeśli masz cel (wielowymiarowy), który ma dowolną ograniczoną, ale niekoniecznie połączoną obsługę, ponieważ umożliwia przejście z dowolnego punktu w ramach wsparcia dla każdego innego w jednym kroku. Więcej tutaj i tutaj .


1
Jeśli ta odpowiedź nie jest zadowalająca, czy możesz wyjaśnić, dlaczego?
John Salvatier,

Nie jestem pewien co do @fred, ale kiedy zaoferowałem nagrodę, przypuszczam, że chciałem trochę więcej wglądu w MCMC. Na przykład, jakie rodzaje problemów najlepiej by pasowały. Oczywiście, jeśli nie ma innych odpowiedzi, to pytanie wygrałoby nagrodę.
csgillespie,

3
@csgillespie: Zredagowałem moją odpowiedź, aby lepiej zaspokoić Twoje zainteresowanie. Nie można powiedzieć, że nie zasłużyłem na nagrodę. ;)
fabians

2
Wielkie dzięki za link. Jednym z powodów, dla których umieściłem nagrodę, było to, że moje wyszukiwania w Google przyniosły kilka matematycznych dyskusji na temat metody, ale mało praktycznych zastosowań. Nie traktuj tego lekko, jeśli poczekam kolejne 48 godzin przed przyznaniem nagrody (jest to szczególnie hojna nagroda!)
csgillespie

4

Natknąłem się na twoje pytanie, kiedy szukałem oryginalnego odniesienia do Hit and Run. Dziękuję za to! Właśnie na końcu tego ostatniego bloga stworzyłem implementację sprawdzonej koncepcji PyMC dla Run-and-Run .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.