大數定律告訴我們,如果想要求得一個隨機變量的期望,只需要進行多次重復試驗,然后取均值就可以了。然而在使用大數定律時仍然需要小心,因為大數定律並沒有明確指出到底需要多少次試驗才能充分接近我們所期待的極限。無論實驗多少次,我們仍然不能否認存在這樣的情況:所拋出的骰子全部是同一點數,盡管這種情況發生的概率很小。
用Yn表示一系列獨立同分布的隨機變量X1, X2, …, Xn之和,既然X1, X2, …, Xn是隨機變量,那么它們的和也是隨機的。
一個令人驚奇的事實是,Yn的標准化形式總是趨近於正態分布。這意味着隨機過程呈現出不確定性的表面下,其實是高度組織化的,所有隨機變量最終都歸於正態分布。這種現象就是中心極限定理的客觀背景。
標准化處理
對於Yn來說,我們知道它的期望和方差:
為了簡單起見,可以先假設μ=0,σ2 > 0,這樣就可以認為Yn期望等於Xi的期望。
方差刻畫了單個隨機變量相對於均值的波動程度,類似地,我們也想要知道隨機變量之和的波動,以便了解“骰子全部都是1點”這種小概率事件發生的幾率。問題是,當n→∞時,Yn的方差是發散的:
隨着n的增大,Yn的分布越來越均勻,在這種情況下討論Var(Yn)沒有任何意義:
Yn的分布越來越均勻
為了能夠有效地討論Yn的方差,需要對其進行標准化處理。
如果把變量做一個線性變換,可以發現下面的現象:
只要令X* = (X - μ)/σ,就可以讓任意隨機變量的期望化為0,方差化為1,這種轉換稱為標准化或歸一化。
Yn的標准化是:
中心極限定理
中心極限定理告訴我們,如果有一個獨立同分布的隨機變量序列X1, X2, …, Xn,它們的期望為μ,方差為σ2>0,那么關於這些隨機變量之和Yn的標准化變量Yn*的分布函數Fn(x),對於任意x滿足:
想要證明這個定理並不容易,但我們可以在后文中給出一個從旁側擊的論據。
Yn*是Yn的標准化,二者的分布是一回事,因此中心極限定理的另一種寫法是:
這里的~符號表示“近似於”。也就是說,對於均值為μ,方差為σ2>0的獨立同分布的隨機變量X1, X2, …, Xn之和Yn的標准化變量Yn*,當n充分大時,Yn* 趨近於均值為0,方差為1的正態分布:
我們可以把Var(Xi)看作一個微小的誤差,Yn是微小誤差的累加。中心極限定理告訴我們,當無數次微小誤差的逐漸累加后,就會形成肉眼可見的巨大變化,並最終接近正態分布。
另外兩種表達
在一般的情況下,很難求出Yn的分布函數,尤其是我們面對的經常是“小數”時。在現實生活中,這個“小數”常常就是1,因此才會說“不以成敗論英雄”。但是當n充分大時,可以通過φ(x)給出其近似分布,這樣就可以利用正態分布對Yn出現的概率進行分析。
把Yn*的分子和分母同時除以n:
於是得到了中心極限定理的另一種寫法:
上一章我們計算了大數定律下均值的期望和方差:
由此,中心極限定理的第三種寫法是:
以擲骰子為例,隨機變量X是每次投擲骰子的結果,出現1~6點的概率都是1/6,E[X]=3.5,其方差是:
我們用程序模擬多次投擲骰子。每次試驗投擲n次骰子,試驗1000次,看看這種情況下點數均值的分布。
1 import numpy as np 2 import matplotlib.pyplot as plt 3 from scipy import stats 4 5 fig = plt.figure(figsize=(10, 5)) 6 plt.subplots_adjust(hspace=0.5) # 調整子圖之間的上下邊距 7 8 mu, sigma_square = 3.5, 2.9167 # 骰子的期望和方差 9 xs = np.arange(0, 7, 0.01) 10 for i, n in enumerate([2, 10, 20, 50]): 11 ax = fig.add_subplot(2, 2, i + 1) 12 means = [np.random.randint(1, 7, n).mean() for i in range(1000)] # 生成1000組均值 13 sigma = np.sqrt(sigma_square / n) 14 ax.hist(means, bins=30, density=True, alpha=0.2, edgecolor='black', label='試驗數據布') 15 ys = stats.norm.pdf(xs, mu, sigma) 16 ax.plot(xs, ys, 'r--', label='$Y_n/n$~N($\mu,\sigma^2$)') 17 ax.set_xlabel('$Y_n/n, n={}$'.format(n)) 18 ax.set_ylabel('pdf') 19 ax.set_title('n={}'.format(n)) 20 ax.legend(loc='upper right') 21 22 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文標簽 23 plt.show()
n的值越大,Yn/n越趨近於N(μ,σ2/n)的正態分布。
示例
浙江大學《概率論與數理統計》中有一個很好的示例,直接貼圖一下:
棣莫弗-拉普拉斯定理
我們通常講的中心極限定理的全稱是獨立同分布中心極限定理。棣莫弗-拉普拉斯(De Moiver-Laplace)定理可以看作是獨立同分布中心極限定理的窄化形式。
設Yn(n=1,2,…)服從參數為n,p(0 < p < 1)的二項分布Yn~B(n, p),Yn*是Yn的標准化,則對於任意x,有:
定理二是說,二項分布隨機變量的標准化形式近似於均值為0,方差為1的正態分布。
根據二項分布的定義可知,Yn是n重伯努利事件中成功事件發生的次數。因此可以把Yn分解為n個伯努利隨機變量之和,我們知道伯努利隨機變量的期望是μ = p,方差是σ2 = p(1 - p),因此:
這和定理一的形式相同,既然相信定理一成立,那么定理二也成立。
用特例佐證
我們用成功率p=1/2的特例來檢驗棣莫弗-拉普拉斯定理,此時Yn~B(n, 1/2),根據二項分布的性質,我們也知道這特例條件下Yn的均值、方差和標准差:
由此可以得到Yn的標准化形式:
進一步可以用Yn*表示Yn:
現在進行簡單的代數,假設當Yn = r時,Yn* = xr。由於Yn*是Yn的標准化,因此二者的概率是一樣的,根據二項分布:
現在需要借助一下斯特林公式。
斯特林公式是一種適用於大數階乘的近似公式。一般來說,當n很大的時候,n階乘的計算量十分大,所以斯特林公式十分好用,而且,即使在n很小的時候,斯特林公式的取值也十分准確。
或更精確的:
將斯特林公式應用於③:
現在將r替換成xr,根據①和②:
xr可以用r和n表達,所以上式實際上是關於n和r的函數,由此我們做一個化簡:
回顧定理二,可以知道:
現在1/√2π已經有了,我們的目標是讓α和β趨近於合理的極限,最終使得二者的積是exp(-xr3/2)dt。向這個目標努力,當n很大時,將⑤代入α(r, n):
得到了這么個結果,似乎作用十分有限。再次利用⑤將會發現一個奇妙的關系:
α終於和微分扯上關系了,n很大時,它將成為⑥中的dx。
現在來看β(n, r)。為了便於操作,我們取對數以便消除冪:
既然n是一個充分大的數,那么可以判定xr/√n < 1。通過無窮級數的知識,我們知道當|x| < 1時ln(1+x)的展開式(來源可參考 單變量微積分30——冪級數和泰勒級數),並利用這一點展開lnβ:
當n充分大時,|t|< < 1, t的冪次越高,對結果的影響越小,因此我們拋棄高於t2的項,並再次借助⑤:
現在終於達到了目的:
雖然這只是一個二項分布的特殊情況,但仍然呈現出清晰的道理:任何大量獨立同分布的隨機過程都將以一個正態分布為模型,這也是很多分布的曲線都是倒鍾形的原因。
出處:微信公眾號 "我是8位的"
本文以學習、研究和分享為主,如需轉載,請聯系本人,標明作者和出處,非商業用途!
掃描二維碼關注作者公眾號“我是8位的”