認識常態分配(Normal distribution) Part 1

1. 常態分配基本介紹

1.1. 名稱

常態分配(Normal distribution) = 高斯分配(Guassian distribution) = 鐘型分配(Bell distribution)

2.2. 符號

$X \sim N \left(\mu, \sigma^{2} \right)$

1.3. 使用時機

這是一個適用於解釋誤差的分配。所謂的誤差是指一特定隨機變數($X$)和其目標($\mu$)的差距,以符號表示為,$\varepsilon = X - E(X) = X - \mu, E(\varepsilon^{2})=\sigma^{2}$。

  • $\mu$ 為位置參數
  • $\sigma$ 為形狀參數

1.4. 機率密度函數

令一隨機變數為 $X$,滿足 $E(X)=\mu$ 和 $Var(X)=\sigma^{2}$。 令新的隨機變數為 $X$ 標準化, $Z=\frac{X-\mu}{\sigma}$。

機率密度函數為

\[f_X(x)=\frac{1}{\sqrt{2 \: \pi} \: \sigma} \times e^{\frac{-1}{2} \: Z^{2}}, - \infty < x < \infty \tag{1}\]

累積機率密度函數為

\[F_X(x)=\int_{- \infty}^{\infty}\frac{1}{\sqrt{2 \: \pi} \: \sigma} \times e^{\frac{-1}{2} \: Z^{2}} \: dx =1 \tag{2}\]

式(2)可改寫為

\[\int_{- \infty}^{\infty} e^{\frac{-1}{2} \: Z^{2}} \: dx = \sqrt{2 \: \pi} \: \sigma \tag{3}\]

1.5. 動差母函數

\[\begin{align} M_{X}(t) &=E(e^{t \, X}) \\ &=\int_{- \infty}^{\infty}\frac{e^{t \, x}}{\sqrt{2 \: \pi} \: \sigma} \times e^{\frac{-1}{2} \: Z^{2}} \: dx \\ &=\int_{- \infty}^{\infty}\frac{1}{\sqrt{2 \: \pi} \: \sigma} \times e^{\frac{-1}{2 \sigma^{2}} \: (x-\mu)^{2}} \times e^{tx} \: dx \\ &=e^{t \: \mu + \frac{t^{2} \, \sigma^{2}}{2}} \tag{4} \end{align}\]
  • 期望值: $E(X) =\mu$
  • 變異數: $Var(X) = E(X^{2})- \left[E(X)^{2} \right] =\sigma^{2}$
  • 偏態係數: $\gamma_{1}=E \left[Z^{3} \right] = 0$
  • 峰態係數: $\gamma_{1}=E \left[Z^{4} \right] = 3$

1.6. 圖形特徵

  • 母體的算術平均數 = $\mu = E(X)$ = 中位數 = 眾數
  • 反曲點: $\mu - \sigma$ 和 $\mu + \sigma$

2. 如何模擬常態分配

使用蒙地卡羅模擬方法模擬常態分配的數值。當數值來自 $N(\mu, \sigma)$,可生成 $X= \mu + \sigma \times Z$,其中, $Z$ 為常態分配變數標準化。

設定蒙地卡羅模擬的亂數產生於均勻分配, $F_{X} (x)=U \sim U(0,1)$。

令兩個來自均勻分配的隨機變數為 $U_{1}和U_{2}$,根據Box-Muller Transform 公式1

\[Z_{1}=\sqrt{-2 \, ln(U_{1})} \times cos \left(2 \, \pi \, U_{2} \right)\]

\[Z_{2}=\sqrt{-2 \, ln(U_{1})} \times sin \left(2 \, \pi \, U_{2} \right)\]

$Z_{1}$ 和 $Z_{2}$ 為獨立標準常態分配, $N(0,1)$。

2.1. 使用Excel模擬常態分配

想要模擬出常態分配,你以為前面的兩條數學式就足夠嗎?不!我根據YouTube2的方法,使用Excel亂數生成常態分配出一組數據。此時,還需要第三個均勻分配,$U_{3}$ 做為控制器。因此可得到公式(5)。

\[IF(U_{3}<=0.5,mu +sqrt(-2*ln(U1))*cos(pi()*U2*2)*sigma, \\ mu+sqrt(-2*ln(U1))*sin(pi()*U2*2)*sigma) \tag{5}\]

從Excel上可生成來自常態分配的隨機樣本

一個試算表使用 ctrl+shift+↓,可以選取到如下圖這般多的列數:1,048,576。扣除第一列為標題列,我們可以生成1,048,575個隨機樣本。

有需要我使用的Excel檔案,請在聯繫我。我會附檔回信給你,或是在臉書粉絲專頁對應這篇文章的貼文下留言,我會私訊給你。

2.2. 比對指令法和亂數法的常態分配差異

為什麼亂數方式得到的數據比直接用指令還要優異?讓我歸納一下兩者的差異:

差異點 機率分配模擬器 指令法
隨機性 數字仍存在隨機性 數字已經不存在隨機性
數字來源 亂數轉換生成 數學公式計算得到
可否繼續數字轉換 可以 不行
第一次使用得到的 先得到數據,再由
數據得到次數分配表
直接是次數分配表

透過亂數的機率分配模擬器產生的數值,建立相對次數分配表和圖(如下圖),可以發現,同樣為常態分配,但因來自亂數隨機,1百萬的數據仍會讓常態分配圖有細微的波動。

指令法得到的數值是由非亂數產生的數字,所以從E欄可看出當A欄數字逐漸增加時,機率值以穩定的數學式計算得到,使得數字非常穩定。換言之,指令法當中已不存在數字隨機性。如若我們將這些指令用在大數據和人工智慧模型中,去比對數據,原該有的隨機性,只會發生在數據中,而不是既有的機率分配中。

亂數的機率分配模擬器生成的常態分配還可以經由轉換得到第3節要講到的其他分配。如果你使用指令,就只能做到這樣。常態就是常態、t分配就是t分配,F分配就是F分配。

參考資料

  1. 維基百科:Box-Muller transform 

  2. YouTube中機率分配模擬器影片https://youtu.be/lpR0rN3GKcg?t=144。如果需要知道機率分配模擬器,可在Google搜尋「probability distribution simulator youtube」