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.

csgillespie
źródło
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 .

fabianie
źródło
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 .

Abraham Flaxman
źródło