UA STAT675 统计计算I 随机数生成7 Envelope Accept-Reject Algorithm
上一讲我们推导了Accept-Reject Algorithm
Algorithm 3: Accept-Reject Algorithm
Step 1: Generate y ∼ g y \sim g y∼g, u ∼ U ( 0 , 1 ) u \sim U(0,1) u∼U(0,1)
Step 2: If u < f ( y ) M g ( y ) u<\frac{f(y)}{Mg(y)} u<Mg(y)f(y), accept y y y as a random number of f f f; otherwise, repeat Step 1-Step 2
它对所有的密度都适用,但前提是找到另一个密度作为工具密度,工具密度必须是目标密度的强函数;要提高这个算法的效率,最好的做法是设计一个 g g g,它比 f f f稍微大一点点但又特别接近,使得 M ≈ 1 M \approx 1 M≈1,这一讲我们就介绍一些常用的设计工具密度的方法。
Squeeze Principle
上一讲我们分析了Accept-Reject Algorithm的效率,也就是要生成1个目标密度的随机数,平均需要 M M M个均匀分布与工具密度的随机数;一种可行的改进是给目标密度再找一个下界,进一步降低采样器的计算成本。
Algorithm 4: Envelope Accept-Reject Algorithm
Step 1: Generate y ∼ g u y \sim g_u y∼gu, u ∼ U ( 0 , 1 ) u \sim U(0,1) u∼U(0,1)
Step 2: If u ≤ g l ( y ) M g u ( y ) u\le \frac{g_l(y)}{Mg_u(y)} u≤Mgu(y)gl(y), accept y y y as a random number of f f f; otherwise, go to Step 3;
Step 3: if u ≤ f ( y ) M g u ( y ) u \le \frac{f(y)}{Mg_u(y)} u≤Mgu(y)f(y), accept y y y as a random number of f f f; otherwise, repeat Step 1-Step 3
算法分析
- 算法适用条件:构造 g l g_l gl与 g u g_u gu满足 g l ≤ f ≤ g u g_l \le f \le g_u gl≤f≤gu其中 g u g_u gu是工具密度(instrumental density)、 f f f是目标密度(target density)、 g l g_l gl是辅助函数
- 算法几何解释: g l , M g u g_l,Mg_u gl,Mgu构成了一个带状区域, g l g_l g