隨機變數的函數與變換

逆變換法(inverse-transform method)

電腦可以整天給你 0 到 1 之間的均勻亂數。但若你需要來自指數分布、或某個模型的自訂分布的抽樣呢?逆變換法把單一個均勻亂數轉成來自任何「其 cdf 可反求」分布的抽樣。它就是機率積分變換倒著跑。

做法只有兩行。生成 (0, 1) 上的均勻 U。回傳 X = F^{-1}(U),其中 F^{-1} 是分位數函數 —— 目標 cdf 的反函數。這就是整個演算法。它成立是因為同樣的壓平邏輯反過來:若 F 把 X 壓平成均勻,那麼 F^{-1} 就把均勻「反壓平」回 cdf 為 F 的東西。直覺是幾何的:U 在縱向機率軸上 0 到 1 之間挑一個高度,F^{-1} 橫向讀出坐落在那個累積機率處的 x 值,所以分布較密的 x 區域會更常被命中。

它的大優點是精確與單調(它保持順序,這在共同亂數等模擬技巧中很有用)。它的限制是你必須能反求 F,無論是閉式或數值。當 F 沒有容易的反函數時 —— 像常態的 cdf —— 人們常改用專門技巧,例如 Box-Muller。離散分布有相應版本:沿著累積機率往上走,回傳第一個累積總和超過 U 的值。

要從率 lambda 的指數分布抽樣:其 cdf 為 F(x) = 1 - e^(-lambda x),故 F^{-1}(u) = -ln(1 - u) / lambda。生成 (0, 1) 上的均勻 U,回傳 X = -ln(1 - U) / lambda。(由於 1 - U 也是均勻的,-ln(U)/lambda 同樣可行。)每一個均勻抽樣變成一個指數抽樣。

把均勻變數代入反 cdf,就得到目標分布的一個抽樣。

它需要可反求的 cdf。當 F^{-1} 沒有閉式時(如常態),解析上會很慢或不可行,此時改用 Box-Muller 或拒絕抽樣等方法。

又稱
inverse transform samplinginverse CDF methodinverse-transform-sampling逆變換抽樣反函數法