Masz kilka fajnych, mniej lub bardziej prostych opcji. Twój mundur przełożony pomaga je uprościć.
Opcja 1: Próbnik niezależności. Możesz po prostu ustawić rozkład propozycji równy równomiernemu rozkładowi na kwadrat jednostki, co zapewnia, że próbki nie spadną poza strefę ograniczoną, jak ją nazywasz. Potencjalny minus: jeśli tył jest skoncentrowany w bardzo małym obszarze kwadratu jednostki, możesz mieć bardzo niski wskaźnik akceptacji. OTOH, ciężko jest generować losowe liczby szybciej niż z rozkładu U (0,1). Potencjalny plus: mniej pracy dla Ciebie.
Opcja 2: przekształć parametry w coś, co nie jest ograniczone, przygotuj propozycje transformowanych parametrów, a następnie przekształć parametry z powrotem do użycia w funkcjach prawdopodobieństwa. Zauważ, że w tym przypadku przeor będzie dotyczył przekształconych parametrów, ponieważ to właśnie robisz propozycje, więc będziesz musiał zepsuć jakobian przekształcenia, aby uzyskać nowy przeor. Do celów analizy, liczby losowe parametrów wygenerowanych przez MCMC zostaną przekształcone z powrotem w pierwotne parametry. Potencjalny minus: więcej wstępnych prac dla Ciebie. Potencjalny wzrost: lepszy wskaźnik akceptacji dla twoich propozycji.
Opcja 3: Skonstruuj rozkład propozycji inny niż próbnik niezależności, który jest na kwadracie jednostki. Pozwala to zachować swój mundur wcześniej, ale kosztem większej złożoności przy obliczaniu prawdopodobieństw propozycji. Przykładem tego, gdzie jest bieżącą wartością jednego z twoich parametrów, może być rozkład Beta z parametrami ( n x , n ( 1 - x ) ) . Im większa n , tym bardziej skoncentrowana będzie Twoja propozycja wokół bieżącej wartości. Potencjalny minus: więcej wstępnych prac dla Ciebie. Potencjalny wzrost: lepszy wskaźnik akceptacji dla twoich propozycji - ale jeśli zrobisz nx(nx,n(1−x))nn zbyt duży i zbliż się do rogu, możesz skończyć wykonując wiele małych ruchów w rogu przed wyjściem.
Opcja 4: Po prostu odrzuć wszelkie propozycje, które wypadną poza kwadrat jednostki (sugestia Xiana bez przekonania). Zauważ, że to nie to samo, co generowanie kolejnej propozycji; w tym przypadku odrzucasz propozycję, co oznacza, że twoja następna wartość parametru jest taka sama jak bieżąca wartość parametru. Działa to, ponieważ tak by się stało, gdybyś miał wcześniejsze zerowe prawdopodobieństwo dla pewnego regionu przestrzeni parametrów i wygenerował losową liczbę, która spadła w tym regionie. Potencjalny minus: jeśli zbliżysz się do zakrętu, możesz mieć małe prawdopodobieństwo akceptacji i utknąć na chwilę. Potencjalny plus: mniej pracy dla Ciebie.
Opcja 5: Stwórz rozszerzony problem na płaszczyźnie, który na kwadracie jednostki jest taki sam, jak rzeczywisty problem, z którym się stykasz, zrób wszystko dobrze, a następnie, po przetworzeniu wyników próbkowania MCMC, wyrzuć wszystkie próbki na zewnątrz kwadratu jednostkowego. Potencjalna zaleta: jeśli bardzo łatwo jest stworzyć ten rozszerzony problem, może być dla ciebie mniej pracy. Potencjalny minus: jeśli łańcuch Markowa odejdzie na jakiś czas poza kwadrat jednostki, możesz mieć straszne prawdopodobieństwo akceptacji, ponieważ wyrzucisz większość swoich próbek.
Bez wątpienia są inne opcje, chciałbym zobaczyć, co sugerują inni!
Różnica między 2 a 3 jest w pewnym stopniu konceptualna, chociaż ma realne implikacje dla tego, co faktycznie robisz. Prawdopodobnie wybrałbym 3, ponieważ po prostu pozwoliłbym R powiedzieć mi, jakie są prawdopodobieństwa propozycji (jeśli programuję w R) i ilość dodatkowego wysiłku, oprócz pewnego dostrojenia parametru dystrybucji propozycji , wygląda dla mnie mały. Gdybym używał JAGS lub BŁĘDÓW, to oczywiście byłaby zupełnie inna sprawa, ponieważ narzędzia te obsługują własne propozycje.n