蒙特卡羅
使用接受拒絕方法生成隨機變數
我對接受拒絕方法有疑問,非常感謝您的建議:
假設我們要生成具有機率密度函式的隨機變數 $ f(x) $ ,由於我們使用的是接受-拒絕方法,我們需要另一個機率密度函式 $ g(x) $ 和常數 $ M $ 這樣 $ f(x)/g(x)<=M $ .
我們的第一步是:生成隨機變數 $ y $ 從 $ g(y) $ 和一個隨機變數 $ v $ 從標準均勻分佈 $ [0,1] $
這是我的疑問:生成的隨機變數之間是否存在一對一的映射 $ y $ 和 $ v $ ? 換句話說,它們是獨立的還是每個 $ y $ , 它是由累積分佈函式推導出來的 $ G^{-1}(v) $ ,請注意我們使用 $ v $ 在接下來的步驟中
我們的第二步是:如果 $ v<={f(x)}/{(M*g(X))} $ , 接受 $ x=y $
他們是獨立的。
重點是 $ y $ 源自您容易抽樣的分佈 $ g $ 隨機。現在你有一個隨機測試(通過 $ v $ ) 決定是否接受 $ y $ 或不作為更難抽樣的隨機樣本的一部分 $ f $ .
該程序使用 $ M $ 在接受拒絕方法中,雖然您可以得出保守估計 $ M $ 相當高的被拒絕樣本的數量將非常高,因此採樣將花費很長時間。否則,您可以進行一些事先分析以確定假定的最佳底層證券 $ g $ 和低價值 $ M $ 仍然會生成一個隨機樣本,其分佈為 $ f $ 但被拒絕的樣本數量將被最小化。