Próbkowanie przy odrzuceniu będzie działało wyjątkowo dobrze, gdy i jest uzasadnione dla c d ≥ exp ( 2 ) .cd≥exp(5)cd≥exp(2)
Aby trochę uprościć matematykę, pozwól , napisz x = a i zwróć na to uwagęk=cdx=a
f(x)∝kxΓ(x)dx
dla . Ustawienie X = U 3 / 2 podajex≥1x=u3/2
f(u)∝ku3/2Γ(u3/2)u1/2du
dla . Gdy k ≥ exp ( 5 ) , rozkład ten jest bardzo zbliżony do normalnego (i zbliża się, gdy k staje się większy). W szczególności możeszu≥1k≥exp(5)k
Znajdź tryb numerycznie (używając np. Newtona-Raphsona).f(u)
Rozwiń do drugiego rzędu dotyczącego jego trybu.logf(u)
Daje to parametry blisko przybliżonego rozkładu normalnego. Dla wysokiej dokładności ta przybliżona Normalna dominuje z wyjątkiem skrajnych ogonów. (Kiedy k < exp ( 5 ) , może być konieczne trochę skalowanie normalnego pdf, aby zapewnić dominację.)f(u)k<exp(5)
Po wykonaniu tej wstępnej pracy dla dowolnej wartości i oszacowaniu stałej M > 1 (jak opisano poniżej), uzyskanie losowej wariacji jest kwestią:kM>1
Narysuj wartość z dominującego rozkładu normalnego g ( u ) .ug(u)
Jeśli lub jeśli nowy jednolity wariant X przekracza f ( u ) / ( M g ( u ) ) , wróć do kroku 1.u<1Xf(u)/(Mg(u))
Zestaw .x=u3/2
Oczekiwana liczba ocen powodu rozbieżności między g i f jest tylko nieznacznie większa niż 1. (Pewne dodatkowe oceny wystąpią z powodu odrzucenia wariantów mniejszych niż 1 , ale nawet gdy k jest tak niskie jak 2, częstotliwość takich wystąpienia są niewielkie).fgf1k2
Wykres ten pokazuje logarytm o g i F w funkcji u o . Ponieważ wykresy są tak blisko, musimy sprawdzić ich stosunek, aby zobaczyć, co się dzieje:k=exp(5)
Wyświetla log logarytm ; uwzględniono współczynnik M = exp ( 0,004 ), aby upewnić się, że logarytm jest dodatni w głównej części rozkładu; to znaczy aby zapewnić, M g ( U ) ≥ F ( u ) z wyjątkiem ewentualnie w obszarach o niewielkim prawdopodobieństwem. Robiąc M wystarczająco dużą, możesz zagwarantować, że M ⋅ glog(exp(0.004)g(u)/f(u))M=exp(0.004)Mg(u)≥f(u)MM⋅gdominuje we wszystkich, z wyjątkiem najbardziej ekstremalnych ogonów (które i tak praktycznie nie mają szansy zostać wybranym w symulacji). Im większy M , tym częściej będą występować odrzucenia. Ponieważ k rośnie, M można wybrać bardzo blisko 1 , co praktycznie nie wiąże się z żadną karą.fMkM1
Podobne podejście działa nawet dla , ale dość duże wartości M mogą być potrzebne, gdy exp ( 2 ) < k < exp ( 5 ) , ponieważ f ( u ) jest zauważalnie asymetryczny. Na przykład, dla k = exp ( 2 ) , aby uzyskać względnie dokładne g , musimy ustawić M = 1 :k>exp(2)Mexp(2)<k<exp(5)f(u)k=exp(2)gM=1
Górna czerwona krzywa jest wykresem podczas gdy dolna niebieska krzywa jest wykresem log ( f ( u ) ) . Odrzucenie próbkowania f względem exp ( 1 ) g spowoduje odrzucenie około 2/3 wszystkich losowań próbnych, potrojąc wysiłek: wciąż niezły. Prawa tylna ( U > 10 i x > 10 3 / 2 ~ 30log(exp(1)g(u))log(f(u))fexp(1)gu>10x>103/2∼30) będzie niedostatecznie reprezentowany w próbce odrzucenia (ponieważ nie dominuje już tam f ), ale ten ogon zawiera mniej niż exp ( - 20 ) ∼ 10 - 9 całkowitego prawdopodobieństwa.exp(1)gfexp(−20)∼10−9
Podsumowując, po początkowej próbie obliczenia trybu i oszacowaniu kwadratycznego wyrażenia szeregu mocy wokół trybu - wysiłku, który wymaga co najwyżej kilkudziesięciu ocen funkcji - można użyć próbkowania odrzucenia na oczekiwany koszt od 1 do 3 (lub więcej) ocen na wariant. Mnożnik kosztów gwałtownie spada do 1, gdy k = c d wzrasta powyżej 5.f(u)k=cd
Nawet jeśli potrzebne jest tylko jedno losowanie z , ta metoda jest rozsądna. Sprawdza się, kiedy potrzeba wielu niezależnych losowań dla tej samej wartości k , ponieważ wówczas narzuty początkowych obliczeń są amortyzowane przez wiele losowań.fk
Uzupełnienie
@Cardinal poprosił, dość rozsądnie, o poparcie niektórych analiz machania ręką w poprzednim. W szczególności, dlaczego transformacja sprawiają, że rozkład w przybliżeniu normalny?x=u3/2
W świetle teorii transformacji Boxa-Coxa naturalne jest poszukiwanie transformacji mocy postaci (dla stałej α , miejmy nadzieję, że nie różni się zbytnio od jedności), która sprawi, że rozkład „bardziej” będzie normalny. Przypomnijmy, że wszystkie rozkłady normalne są po prostu scharakteryzowane: logarytmy ich plików pdf są czysto kwadratowe, z zerowym składnikiem liniowym i bez wyrażeń wyższego rzędu. Dlatego możemy pobrać dowolny plik pdf i porównać go z rozkładem normalnym, rozszerzając jego logarytm jako szereg mocy wokół jego (najwyższego) szczytu. Szukamy wartości α, która czyni (przynajmniej) trzeciąx=uαααmoc zanika, przynajmniej w przybliżeniu: to jest najwięcej, co możemy mieć uzasadnioną nadzieję, że osiągnie jeden wolny współczynnik. Często działa to dobrze.
Ale jak uzyskać kontrolę nad tą konkretną dystrybucją? Po dokonaniu transformacji mocy jego pdf jest
f(u)=kuαΓ(uα)uα−1.
Podejmuje logarytm i używać asymptotycznej ekspansję Stirlinga z :log(Γ)
log(f( u ) )≈log( k )uα+ ( α - 1)log( u ) - αuαlog( u ) +uα-log( 2 πuα) / 2 + c u- α
(dla małych wartości , które nie są stałe). Działa to pod warunkiem, że α jest dodatnie, co zakładamy, że tak jest (w przeciwnym razie nie możemy zaniedbać pozostałej części rozszerzenia).doα
Oblicz jego trzecią pochodną (która, podzielona przez Będzie współczynnikiem trzeciej mocy u w szeregu mocy) i wykorzystaj fakt, że w szczycie pierwsza pochodna musi wynosić zero. Upraszcza to znacznie trzecią pochodną, dając (w przybliżeniu, ponieważ ignorujemy pochodną c )3 !udo
- 12)u- ( 3 + α )α ( 2 α ( 2 α - 3 ) u2α+(α2−5α+6)uα+12cα).
kuα2α
2α−3=0.
That's why α=3/2 works so well: with this choice, the coefficient of the cubic term around the peak behaves like u−3, which is close to exp(−2k). Once k exceeds 10 or so, you can practically forget about it, and it's reasonably small even for k down to 2. The higher powers, from the fourth on, play less and less of a role as k gets large, because their coefficients grow proportionately smaller, too. Incidentally, the same calculations (based on the second derivative of log(f(u)) at its peak) show the standard deviation of this Normal approximation is slightly less than 23exp(k/6), with the error proportional to exp(−k/2).