- 統計學習理論與方法:R語言版
- 左飛
- 1619字
- 2020-10-16 16:24:21
3.1 蒙特卡洛法求定積分
蒙特卡洛(Monte Carlo)法是一類隨機算法的統稱。它是20世紀40年代中期由于科學技術的發展,尤其是電子計算機的發明,而被提出并發揚光大的一種以概率統計理論為基礎的數值計算方法。它的核心思想就是使用隨機數(或更準確地說是偽隨機數)來解決一些復雜的計算問題。現今,蒙特卡洛法已經在諸多領域展現出了超強的能力。本節,我們將通過蒙特卡洛法最為常見的一種應用——求解定積分,來演示這類算法的核心思想。
3.1.1 無意識統計學家法則
作為一個預備知識,先來介紹一下無意識統計學家法則(Law of the Unconscious Statistician,LOTUS)。在概率論與統計學中,如果知道隨機變量X的概率分布,但是并不顯式地知道函數g(X)的分布,那么LOTUS就是一個可以用來計算關于隨機變量X的函數g(X)之期望的定理。該法則的具體形式依賴于隨機變量X之概率分布的描述形式。
如果隨機變量X的分布是離散的,而且我們知道它的PMF是fX,但不知道fg(X),那么g(X)的期望是

其中和式是在取遍X的所有可能之值x后求得。
如果隨機變量X的分布是連續的,而且我們知道它的PDF是fX,但不知道fg(X),那么g(X)的期望是

簡而言之,已知隨機變量X的概率分布,但不知道g(X)的分布,此時用LOTUS公式能計算出函數g(X)的數學期望。其實就是在計算期望時,用已知的X的PDF(或PMF)代替未知的g(X)的PDF(或PMF)。
3.1.2 投點法

圖3-1 投點法求定積分
投點法是講解蒙特卡洛法基本思想的一個最基礎也最直觀的實例。這個方法也常常被用來求圓周率π。現在我們用它來求函數的定積分。如圖3-1所示,有一個函數f(x),若要求它從a到b的定積分,其實就是求曲線下方的面積。
可以用一個比較容易算得面積的矩型罩在函數的積分區間上(假設其面積為Area)。然后隨機地向這個矩形框里面投點,其中落在函數f(x)下方的點為菱形,其他點為三角形。然后統計菱形點的數量占所有點(菱形+三角形)數量的比例為r,那么就可以據此估算出函數f(x)從a到b的定積分為Area×r。
注意由蒙特卡洛法得出的值并不是一個精確值,而是一個近似值。而且當投點的數量越來越大時,這個近似值也越接近真實值。
3.1.3 期望法
下面來重點介紹利用蒙特卡洛法求定積分的第二種方法——期望法,有時也稱為平均值法。
任取一組相互獨立、同分布的隨機變量{Xi},Xi在[a,b]上服從分布律fX,也就是說fX是隨機變量X的PDF(或PMF)。令,則g?(Xi)也是一組獨立同分布的隨機變量,而且因為g?(x)是關于x的函數,所以根據LOTUS可得

由強大數定理

若選

則依概率1收斂到I。平均值法就用
作為I的近似值。
假設要計算的積分有如下形式

其中,被積函數g(x)在區間[a,b]上可積。任意選擇一個有簡便辦法可以進行抽樣的概率密度函數fX(x),使其滿足下列條件:
(1)當g(x)≠0時,fX(x)≠0,a≤x≤b;
(2)。
如果記

那么原積分式可以寫成

因而求積分的步驟是:
(1)產生服從分布律fX的隨機變量Xi,i=1,2,…,N;
(2)計算均值

并用它作為I的近似值,即。
如果a,b為有限值,那么fX可取作為均勻分布

此時原來的積分式變為

因而求積分的步驟是:
(1)產生[a,b]上的均勻分布隨機變量Xi,i=1,2,…,N;
(2)計算均值

并用它作為I的近似值,即。
最后來看一下平均值法的直觀解釋。注意積分的幾何意義就是[a,b]區間曲線下方的面積,如圖3-2所示。
當在[a,b]隨機取一點x時,它對應的函數值就是f(x),然后便可以用f(x)·(b-a)來粗略估計曲線下方的面積(也就是積分),如圖3-3所示,當然這種估計(或近似)是非常粗略的。

圖3-2 積分的幾何意義

圖3-3 對積分值進行粗略估計
于是我們想到在[a,b]隨機取一系列點xi時(xi滿足均勻分布),然后把估算出來的面積取平均來作為積分估計的一個更好的近似值,如圖3-4所示。可以想象,如果這樣的采樣點越來越多,那么對于這個積分的估計也就越來越接近。

圖3-4 對積分值進行估計
按照上面這個思路,得到積分公式為

其中,就是均勻分布的PMF。這跟之前推導出來的蒙特卡洛積分公式是一致的。