蒙特卡羅

使用接受拒絕方法生成隨機變數

  • January 13, 2020

我對接受拒絕方法有疑問,非常感謝您的建議:

假設我們要生成具有機率密度函式的隨機變數 $ 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 $ 但被拒絕的樣本數量將被最小化。

引用自:https://quant.stackexchange.com/questions/50688