UA STAT675 统计计算I 随机数生成6 Accept-Reject Algorithm
UA STAT675 統計計算I 隨機數生成6 Accept-Reject Algorithm
- 隨機模擬基本定理(Fundamental Theorem of Simulation)
- 根據隨機模擬基本定理設計一元隨機變量的隨機數生成器
- 隨機模擬基本定理的推論
上一講我們介紹了生成隨機數的general transformation method,那是以U(0,1)U(0,1)U(0,1)的隨機數為基礎,通過變換獲得其他分布的隨機數的方法,當我們知道各種分布之間的變換規則,或者知道分布函數并能比較容易地求出它的反函數時,這種方法就是最直觀最簡單的;但是當我們想進行抽樣的總體分布比較復雜時,我們就需要設計一些其他的方法了。這一講我們介紹第一類采樣的算法:accept-reject methods。
隨機模擬基本定理(Fundamental Theorem of Simulation)
Target density為fff,則從X~fX \sim fX~f中采樣等價于從
(X,U)~U{(x,u):0<u<f(x)}(X,U) \sim U\{(x,u):0<u<f(x)\}(X,U)~U{(x,u):0<u<f(x)}
中采樣。
證明
這個定理的證明非常簡單,因為
f(x)=∫0f(x)duf(x) = \int_0^{f(x)}duf(x)=∫0f(x)?du
所以f(x)f(x)f(x)是二元隨機變量(X,U)~U{(x,u):0<u<f(x)}(X,U) \sim U\{(x,u):0<u<f(x)\}(X,U)~U{(x,u):0<u<f(x)}中XXX的邊緣分布,因此對二元隨機變量(X,U)(X,U)(X,U)采樣得到的XXX的樣本服從fff。
但是我們并不需要UUU的樣本,所以稱UUU是一個auxiliary variable。
根據隨機模擬基本定理設計一元隨機變量的隨機數生成器
假設Target density是一元函數,滿足
則
P(a≤X<x)=∫axf(y)dy=∫ax∫0f(y)dudy=∫ax∫0f(y)dudy∫ab∫0f(y)dudy=P(Y≤x∣U<f(Y))P(a \le X< x) = \int_a^x f(y)dy = \int_a^x \int_0^{f(y)}dudy \\ = \frac{\int_a^x \int_0^{f(y)}dudy}{\int_a^b \int_0^{f(y)}dudy}=P(Y \le x|U<f(Y))P(a≤X<x)=∫ax?f(y)dy=∫ax?∫0f(y)?dudy=∫ab?∫0f(y)?dudy∫ax?∫0f(y)?dudy?=P(Y≤x∣U<f(Y))
其中U~U(0,M)U \sim U(0,M)U~U(0,M), Y~U(a,b)Y \sim U(a,b)Y~U(a,b),這個推導給了我們一種設計arget density的隨機數生成器的思路:
Algorithm 1
Step 1: Generate y~U(a,b)y \sim U(a,b)y~U(a,b)
Step 2: Generate u~U(0,M)u \sim U(0,M)u~U(0,M)
Step 3: If u<f(y)u<f(y)u<f(y), accept yyy as a random number of fff; otherwise, repeat Step 1-Step 3
算法分析
隨機模擬基本定理的推論
正如我們在算法分析中討論的一樣,基于隨機模擬基本定理設計的算法效率取決于Target density的形狀,如果Target density形狀比較差,比如支撐集為R\mathbb{R}R或者有比較嚴重的concentration,上面的算法效率就會很差。不難發現上述算法局限在于我們總是在試圖用一個矩形去包圍一個面積固定但形狀可以千奇百怪的區域,那么是否可以放棄矩形包圍的思路,針對不同形狀的區域設計不一樣的包圍方法呢?
隨機模擬基本定理的推論
Target density f(x)f(x)f(x)
Instrumental density g(x)g(x)g(x)
假設f(x)≤Mg(x)f(x) \le Mg(x)f(x)≤Mg(x),?M≥1\exists M\ge 1?M≥1,則從X~fX \sim fX~f中抽樣可以用下面的算法:
Algorithm 2
Step 1: Generate y~gy \sim gy~g
Step 2: Generate u~U(0,Mg(y))u \sim U(0,Mg(y))u~U(0,Mg(y))
Step 3: If u<f(y)u<f(y)u<f(y), accept yyy as a random number of fff; otherwise, repeat Step 1-Step 3
證明
如果X~fX \sim fX~f,?B∈B(R)\forall B \in \mathcal{B}(\mathbb{R})?B∈B(R),
P(X∈B)=∫Bf(y)dy=∫B∫0f(y)1Mg(y)dudy=∫B∫0f(y)1Mg(y)dudy∫R∫0f(y)1Mg(y)dudy=P(Y∈B∣U<f(Y))P(X \in B) = \int_{B} f(y)dy = \int_B\int_0^{f(y)}\frac{1}{Mg(y)}dudy\\ = \frac{\int_B \int_0^{f(y)}\frac{1}{Mg(y)}dudy}{\int_{\mathbb{R}} \int_0^{f(y)}\frac{1}{Mg(y)}dudy}=P(Y \in B|U<f(Y)) P(X∈B)=∫B?f(y)dy=∫B?∫0f(y)?Mg(y)1?dudy=∫R?∫0f(y)?Mg(y)1?dudy∫B?∫0f(y)?Mg(y)1?dudy?=P(Y∈B∣U<f(Y))
這個式子說明,在U<f(Y)U<f(Y)U<f(Y)的條件下,XXX的分布與YYY的分布是相同的,于是此時的YYY的隨機數服從target density;
算法分析
首先,我們把算法2的第2、3步合并一下:
Algorithm 3: Accept-Reject Algorithm
Step 1: Generate y~gy \sim gy~g, u~U(0,1)u \sim U(0,1)u~U(0,1)
Step 2: If u<f(y)Mg(y)u<\frac{f(y)}{Mg(y)}u<Mg(y)f(y)?, accept yyy as a random number of fff; otherwise, repeat Step 1-Step 2
這樣關于均勻分布的處理就比較標準化了,定義
α(y)=f(y)Mg(y)\alpha(y) = \frac{f(y)}{Mg(y)}α(y)=Mg(y)f(y)?
稱α\alphaα為acceptance rate;在fff與MgMgMg比較接近的區域,acceptance rate較高。
總結
以上是生活随笔為你收集整理的UA STAT675 统计计算I 随机数生成6 Accept-Reject Algorithm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA PHYS515 电磁理论I 麦克斯
- 下一篇: aMCMC for Horseshoe: