圓州率
🌐

Feature Image

從擲硬幣到統計理論

數學, 統計, 機率論
從統計的角度解釋擲硬幣與參數估計的關聯,並解釋中央極限定理、信賴區間與其在 AB test 的應用。
   最後更新:

引言

封面是用 ChatGPT 繪製的「投擲硬幣,極簡畫風」。乍看還不錯,但仔細一看發現僅有 4 根手指頭。

在擲硬幣問題中,我們想知道硬幣擲出正面的機率,直覺上會重複投擲硬幣,接著看正面出現的比例,並認為投擲越多就能越準。為什麼?這件事情是合理的嗎?這牽涉到兩個議題:

  1. 什麼是好的參數估計?
  2. 為什麼樣本數增加會比較準?

參數估計有無窮多種方式,例如看正面與反面出現的比例差,或者連續出現幾次正面的比例,這麼多種方法為什麼偏好用「平均」,所有問題都能用平均嗎?斬釘截鐵的說,不是,這也是統計中參數估計為何重要也困難的原因。

另一方面,樣本數代表什麼意思?比較多的樣本真的會比較準嗎?如果真的比較準,那會準多少?這問題就是所謂信賴區間。

參數估計

在估計硬幣正面機率問題中,以 11 表示正面,00 表示反面,xix_i 表示第 ii 次的實驗結果,例如 x1=1,x2=0x_1 = 1, x_2 = 0 表示第一次投擲出正面,第二次投擲出反面。我們得從有限的 nn 次實驗中 (x1,x2,,xn)(\contia{x}{n}) 估計出「未知的」硬幣正面機率 pp

從前面的論述可知,每次硬幣擲出正面的機率都是 pp,寫做:

f(xi;p)={p if xi=11p if xi=0=pxi(1p)1xi \begin{align*} f (x_i; p) & = \begin{cases} p & \text{ if } x_i = 1 \\ 1 - p & \text{ if } x_i = 0 \end{cases} \\ & = p^{x_i} (1 - p)^{1 - x_i} \end{align*}

那麼 nn 次實驗中,出現 x1,x2,,xn\contia{x}{n} 結果的機率為:

f(x1,x2,,xn;p)=i=1npxi(1p)1xi=pi=1nxi(1p)ni=1nxi=pnx(1p)nnx \begin{align*} f (\contia{x}{n}; p) & = \prod_{i = 1}^{n} p^{x_i} (1 - p)^{1 - x_i} \\ & = p^{\sum_{i = 1}^{n} x_i} (1 - p)^{n - \sum_{i = 1}^{n} x_i} \\ & = p^{n \ol x} (1 - p)^{n - n \ol x} \\ \end{align*}

其中 x=1ni=1nxi\ol x = \frac{1}{n} \sum_{i = 1}^{n} x_i 就是平均。實驗結果 x1,x2,,xn\contia{x}{n} 是固定的,那 pp 的估計量 p^\hat p 也就是找到能使發生機率 f(x1,x2,,xn;p)f (\contia{x}{n}; p) 最大的 pp

p^=arg maxp[0,1]f(x1,x2,,xn;p) \begin{align*} \hat p = \argmax_{p \in [0, 1]} f (\contia{x}{n}; p) \end{align*}

直接解這問題不容易處理,因此透過取對數 (log) 解,因 p^\hat p 同為 f(x1,x2,,xn;p)f (\contia{x}{n}; p)lnf(x1,x2,,xn;p)\ln f (\contia{x}{n}; p) 的極值,其中

lnf(x1,x2,,xn;p)=nxln(p)+(nnx)ln(1p) \begin{align*} \ln f (\contia{x}{n}; p) = n \ol x \ln (p) + (n - n \ol x) \ln (1 - p) \end{align*}

透過微積分的求極值方法 (derivative),令一階導數為 0,並檢驗其二階導數為負

0=ddplnf(x1,x2,,xn;p)=nxpnnx1p \begin{align*} 0 & = \frac{d}{dp} \ln f (\contia{x}{n}; p) \\ & = \frac{n \ol x}{p} - \frac{n - n \ol x}{1 - p} \end{align*}

得出 p=xp = \ol x 使 lnf(x1,x2,,xn;p)\ln f (\contia{x}{n}; p) 一階導數為 0,而其二階導數為

d2dp2lnf(x1,x2,,xn;p)p=x=nxp2nnx(1p)2p=x=n[1x+11x]<0 \begin{align*} & \, \left. \frac{d^2}{dp^2} \ln f (\contia{x}{n}; p) \right|_{p = \ol x} \\ = & \, \left. - \frac{n \ol x}{p^2} - \frac{n - n \ol x}{(1 - p)^2} \right|_{p = \ol x} \\ = & \, -n \left[ \frac{1}{\ol x} + \frac{1}{1 - \ol x} \right] \\ < & \, 0 \end{align*}

其中 x(0,1)\ol x \in (0, 1),所以二階求導必定小於 0,因此 x\ol x 為使 f(x1,x2,,xn;p)f (\contia{x}{n}; p) 最大化的值,即 p^=x\hat p = \ol x 是最能夠根據資料描述實際機率的數值。

中央極限定理

上述的 p^=x\hat p = \ol x 被稱為點估計,是理論上最佳的參數 pp 估計量,然而這沒有提供關於準確度的描述,也就是估計量 p^\hat p 與真實參數 pp 的距離有多遠,雖然這實際上也是未知的。但直覺上,靠 100100 個樣本估計比靠 11 個樣本估計來的靠譜。

這時就會提及統計界的重要理論「中央極限定理」,這保障了樣本平均 X\ol X 會收練到母體平均 E[X]=μE [X] = \mu,除此之外也能用於描述估計的準確度。

給定獨立且同分配的 X1,X2,,Xn\contia{X}{n},若其平均 E[X]=μE [X] = \mu 與變異數 Var(X)=σ2\var (X) = \sigma^2 存在,則

Xμσ/nDN(0,1) \begin{align*} \frac{\ol X - \mu}{\sigma / \sqrt{n}} \xrightarrow{D} N (0, 1) \end{align*}

其中 N(0,1)N (0, 1) 為標準常態分佈,而這個議題有兩個重點

  1. 不假設 X1,X2,,Xn\contia{X}{n} 為常態分佈,也就是任意分佈只要平均和變異數存在就都能適用,例如前面的伯努利分佈。
  2. 母體變異數 σ2\sigma^2 實務上也是未知的,因此會用樣本變異數 s2s^2 估計 s2=1n1(xix)2 \begin{align*} s^2 = \frac{1}{n - 1} (x_i - \ol x)^2 \end{align*}

經過轉換,會發現樣本平均收斂到一個常態分佈,其中心為 μ\mu,標準差為 σ/n\sigma / \sqrt {n},會隨著樣本數增加,而導致標準差降低,即分佈更加集中。

Xμ+snN(0,1)=N(μ,(sn)2) \begin{align*} \ol X \approx \mu + \frac{s}{\sqrt{n}} N (0, 1) = N \left( \mu, \left( \frac{s}{\sqrt n} \right)^2 \right) \end{align*}

舉例來說,一個硬幣正面機率為 0.80.8,即母體平均 μ=0.8\mu = 0.8 與標準差為 σ=0.4\sigma = 0.4,若重複執行執行樣本數為 n=100n = 100 的投擲實驗以此估計其樣本平均 x\ol x,則會發現這樣實驗的 x\ol x 分佈就大致上服從

N(0.6,(0.410)2) \begin{align*} N \left( 0.6, \left( \frac{0.4}{10} \right)^2 \right) \end{align*}

若擴大實驗至 n=10000n = 10000,則會發現 x\ol x 的分佈會大致上服從

N(0.6,(0.4100)2) \begin{align*} N \left( 0.6, \left( \frac{0.4}{100} \right)^2 \right) \end{align*}

由此可知,在重複實驗中,提高樣本數能使採樣的標準差降低,即採樣的結果更加集中,或者說「更加可信」。

信賴區間

上述理論保障了估計的 p^\hat p 會以 n\sqrt n 的速度收斂至真實的 pp,此時我們就能著重在分佈範圍上,並希望描述平均的估計方法有效範圍,最終的輸出會類似「真實的平均 μ\mu 有足夠高的機率落在 [a,b][a, b] 區間中」(儘管這有點誤區,但不妨成為一個直覺的起點)。

此時從常態分佈出發,定義常數 Zα/2Z_{\alpha / 2} 為「在標準常態分佈採樣時,能有 1α1 - \alpha 機率採樣到的區間範圍」,又因常態分佈為對稱的,即定義為

P(Zα/2<N(0,1)<Zα/2)=1α \begin{align*} P (- Z_{\alpha / 2} < N (0, 1) < Z_{\alpha / 2}) = 1 - \alpha \end{align*}

此方法為建構信賴區間的絕佳方法,若我們希望有足夠高的機率,如 95%=1α95\% = 1 - \alpha (α=0.05\alpha = 0.05) 能落在某區間內,即滿足

1α=P(N(0,1)(±Zα/2))=P(μ+snN(0,1)(μ±snZα/2))P(x(μ±snZα/2))=P(μ(x±snZα/2)) \begin{align*} 1 - \alpha & = P \left( N (0, 1) \in (\pm Z_{\alpha / 2}) \right) \\ & = P \left( \mu + \frac{s}{\sqrt n} N (0, 1) \in \left( \mu \pm \frac{s}{\sqrt n} Z_{\alpha / 2} \right) \right) \\ & \approx P \left( \ol x \in \left( \mu \pm \frac{s}{\sqrt n} Z_{\alpha / 2} \right) \right) \\ & = P \left( \mu \in \left( \ol x \pm \frac{s}{\sqrt n} Z_{\alpha / 2} \right) \right) \\ \end{align*}

最終建構出來的意思是,μ\mu 落在 x±snZα2\ol x \pm \frac{s}{\sqrt n} Z_{\alpha_2} 的範圍內的機率為 1α1 - \alpha,因此稱以下區間為 μ\mu1α1 - \alpha 信賴區間:

x±snZα/2 \begin{align*} \ol x \pm \frac{s}{\sqrt n} Z_{\alpha / 2} \end{align*}

舉例來說,考慮 0.950.95 (α=0.05\alpha = 0.05) 的信賴區間,其 Zα/21.96Z_{\alpha / 2} \approx 1.96。若實驗 n=100n = 100 次後獲得 8080 次正面,即 x=0.8\ol x = 0.8s=0.4s = 0.4,則其信賴區間為

0.8±0.4100×1.960.8±0.0784=(0.7216,0.874) \begin{align*} 0.8 \pm \frac{0.4}{\sqrt{100}} \times 1.96 & \approx 0.8 \pm 0.0784 \\ & = (0.7216, 0.874) \end{align*}

若擴大實驗至 n=10000n = 10000 得到 8000 次正面,即相同的 x=0.8\ol x = 0.8s=0.4s = 0.4,則其信賴區間為

0.8±0.410000×1.960.8±0.00784=(0.79216,0.80784) \begin{align*} 0.8 \pm \frac{0.4}{\sqrt{10000}} \times 1.96 & \approx 0.8 \pm 0.00784 \\ & = (0.79216, 0.80784) \end{align*}

能看出 μ\mu 的信賴區間範圍隨著樣本數增加而減少,即「樣本數越高,準確度越高」。最終回答了原本的問題,隨著樣本數增加,抽樣的準越度或者說可信度的確會增加,且信賴區間的寬度以 n\sqrt{n} 的速度收斂。

AB Test

最後一個議題是「如果我有兩個硬幣,那這兩個硬幣出現正面的機率一樣嗎?」這被稱為 AB test,可以應用於回答兩組的機率是否相同的檢定,例如「無投藥的 A 組與投藥的 B 組存活率一樣高嗎?」。

給定兩個獨立的族群 X1,X2,,Xni.i.d.Ber(p0)\contia{X}{n} \iid \ber (p_0)Y1,Y2,,Ymi.i.d.Ber(p1)\contia{Y}{m} \iid \ber (p_1),要驗證 p0p_0 是否有別於 p1p_1,還是只是隨機性的導致的差異,即討論假設檢定 H:p0=p1H : p_0 = p_1 對上 A:p0p1A : p_0 \ne p_1。在 HH 的假設條件下,令 p=p0=p1p = p_0 = p_1,則有

X=p^0N(p,p(1p)n),Y=p^1N(p,p(1p)m). \begin{align*} \ol X = \hat p_0 & \approx N \left( p, \frac{p (1 - p)}{n} \right), \\ \ol Y = \hat p_1 & \approx N \left( p, \frac{p (1 - p)}{m} \right). \end{align*}

p^0\hat p_0p^1\hat p_1 差異也為常態分布

p^0p^1N(0,p(1p)(1n+1m)) \begin{align*} \hat p_0 - \hat p_1 \approx N \left( 0, p (1 - p) \left( \frac{1}{n} + \frac{1}{m} \right) \right) \end{align*}

由於 pp 實際是未知的,會以 p^\hat p 估計

p^=i=1nXi+j=1mYjn+m \begin{align*} \hat p = \frac{\sum_{i = 1}^{n} X_i + \sum_{j = 1}^{m} Y_j}{n + m} \end{align*}

轉換後為標準常態分布

Z=p^0p^1p^(1p^)(1n+1m)N(0,1) \begin{align*} Z = \frac{\hat p_0 - \hat p_1 }{\sqrt{\hat p (1 - \hat p) \left( \frac{1}{n} + \frac{1}{m} \right) }} \approx N \left( 0, 1 \right) \end{align*}

因此總結為

  • Z(Zα/2,Zα/2)Z \in (- Z_{\alpha / 2}, Z_{\alpha / 2}) 則不拒絕 H:p0=p1H : p_0 = p_1
  • Z(Zα/2,Zα/2)Z \notin (- Z_{\alpha / 2}, Z_{\alpha / 2}) 則拒絕 H:p0=p1H : p_0 = p_1

結論

回到原本的問題,好的參數估計有時相當直覺,例如擲硬幣的正面機率估計;但更多時候並不容易處理,不過從平均估計硬幣正面機率的過程仍給予了一個啟發「好的參數估計得善用每筆資料」。

另一方面,樣本數增加能使估計更加「準確」,或者說信賴區間的寬度更小,這樣的特性能讓我們知道統計方法的穩定度,也對大致上真實參數的範圍有所理解,這就是在各種民調或是統計數據中經常聽到的信賴區間。