拒絶サンプリングは非常にうまくいくときとのための合理的であるC D ≥ EXP (2 )。cd≥exp(5)cd≥exp(2)
数学を少し単純化するために、、x = aと記述して、k=cdx=a
f(x)∝kxΓ(x)dx
以下のため。設定のx = U 3 / 2が与えられますx≥1x=u3/2
f(u)∝ku3/2Γ(u3/2)u1/2du
以下のための。ときのk ≥ EXP (5u≥1、この分布は、非常に近い正常である(そしてよう近づく kが大きくなります)。具体的には、次のことができますk≥exp(5)k
のモードを数値的に見つけます(たとえば、Newton-Raphsonを使用)。f(u)
展開、そのモードの二次へを。logf(u)
これにより、近似近似の正規分布のパラメーターが生成されます。精度を高めるために、この近似Normal は、極端なテールを除きを支配します。(k < exp (5 )の場合、支配を確実にするために、Normal pdfを少し拡大する必要があるかもしれません。)f(u)k<exp(5)
任意の値に対してこの予備作業を行い、定数M > 1(以下で説明)を推定した後、ランダム変量を取得することは次の問題です。kM>1
支配正規分布g (u )から値を描画します。ug(u)
もし又は新しい均一変量もしXが超えるFを(U )/(u<1X、ステップ1に戻ります。f(u)/(Mg(u))
x = uを設定。x=u3/2
gとfの不一致により予想されるの評価数は1よりわずかに大きいだけです(1未満の変量の棄却により追加の評価がいくつか発生しますが、kが2のように低い場合でも発生は少ない。)fgf1k2
このプロットが示す対数のGおよびFの関数としてUのために。グラフは非常に近いため、比率を調べて何が起こっているのかを確認する必要があります。k=exp(5)
これにより、log ratio ; M = exp (0.004 )の係数は、分布の主要部分全体で対数が正であることを保証するために含まれています。それは保証するために、あるM G (U )≥ F (uは)無視できる確率の領域におそらく異なります。することによりM十分に大きいが、あなたがいることを保証することができますM ⋅ グラムlog(exp(0.004)g(u)/f(u))M=exp(0.004)Mg(u)≥f(u)MM⋅gf支配するf最も極端なテール以外のすべてでをします(いずれにしても、実際にはシミュレーションで選択される可能性はほとんどありません)。ただし、が大きいほど、拒否が頻繁に発生します。kが大きくなる、Mは非常に近いように選択することができる1実際上ペナルティが生じました。MkM1
A similar approach works even for k>exp(2), but fairly large values of M may be needed when exp(2)<k<exp(5), because f(u) is noticeably asymmetric. For instance, with k=exp(2), to get a reasonably accurate g we need to set M=1:
上の赤い曲線はのグラフで、下の青い曲線はlog (f (u ))のグラフです。exp (1 )gに対するfの拒否サンプリングにより、すべての試行抽選の約2/3が拒否され、努力が3倍になります。右側のテール(u > 10またはx > 10)は、棄却サンプリングでは過少表現されます(exp (1log(exp(1)g(u))log(f(u))fexp(1)gu>10x>103/2∼30はもはや支配 Fあり)、それテール含む未満 EXP (- 20 )〜10 - 9合計確率。exp(1)gfexp(−20)∼10−9
要約すると、モードを計算し、モード周辺ののべき級数の2次項を評価するための最初の努力の後、せいぜい数十の関数評価を必要とする努力です。変量ごとに1〜3(またはそれ以上)の評価の予想コスト。k = c dが5を超えると、コスト乗数は1に急速に低下します。f(u)k=cd
から1つのドローだけが必要な場合でも、この方法は妥当です。kの同じ値に対して多くの独立したドローが必要な場合、それは独自になります。そのため、初期計算のオーバーヘッドは多くのドローにわたって償却されます。fk
補遺
@Cardinalは、かなり合理的に、前述の手振り分析の一部のサポートを求めています。特に、なぜ変換すべきメイク分布はほぼ正規?x=u3/2
理論に照らしてボックス・コックス変換は、フォームのいくつかの電力変換を求めることは当然である(定数のためのα分布「より」標準を行いますUnityからうまくいけば、あまりにも異なっていません)。すべての正規分布は単純に特徴付けられることを思い出してください。pdfの対数は純粋に2次であり、線形項はゼロで、高次項はありません。したがって、任意の pdfを取得し、その(最高の)ピークの周りの対数をべき級数として展開することにより、正規分布と比較できます。(少なくとも)3番目を作るαの値を求めますx=uααα power vanish, at least approximately: that is the most we can reasonably hope that a single free coefficient will accomplish. Often this works well.
But how to get a handle on this particular distribution? Upon effecting the power transformation, its pdf is
f(u)=kuαΓ(uα)uα−1.
Take its logarithm and use Stirling's asymptotic expansion of log(Γ):
log(f(u))≈log(k)uα+(α−1)log(u)−αuαlog(u)+uα−log(2πuα)/2+cu−α
(for small values of c, which is not constant). This works provided α is positive, which we will assume to be the case (for otherwise we cannot neglect the remainder of the expansion).
Compute its third derivative (which, when divided by 3!, will be the coefficient of the third power of u in the power series) and exploit the fact that at the peak, the first derivative must be zero. This simplifies the third derivative greatly, giving (approximately, because we are ignoring the derivative of c)
−12u−(3+α)α(2α(2α−3)u2α+(α2−5α+6)uα+12cα).
When k is not too small, u will indeed be large at the peak. Because α is positive, the dominant term in this expression is the 2α power, which we can set to zero by making its coefficient vanish:
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).