1979 - Efron Bootstrap 法#
案件摘要#
1979 年 Bradley Efron 在《The Annals of Statistics》發表 Bootstrap 方法,用「從樣本中重抽樣」這個看似偷懶的把戲,解開了無母數推論中「標準誤怎麼估」的死結。不靠任何分布假設,只靠計算能力,就能算出幾乎任何統計量的信賴區間。
前因 -- 為什麼會有這個案子#
- 傳統推論依賴參數假設:例如「資料來自常態分布」,才有 \(t\) 分配、 \(F\) 分配可用。
- 但現實資料常不遵循漂亮的分布;而許多統計量的抽樣分布根本沒有解析解——例如中位數、相關係數、迴歸係數比值、决策樹的準確率的標準誤。
- 早年有** jackknife(Quenouille 1949、Tukey 1958,逐一留一重算)與permutation test**(Fisher 1935,交換標籤重算)等重抽樣先驅,但它們各有局限:jackknife 對非平滑統計量(如中位數)失效,permutation test 主要用於檢定而非估計。
- 電腦運算能力在 1970 年代快速成長,「用計算換理論」成為可能——Efron 抓住了這個時機。
線索與推理 -- 數學式、程式、理論#
核心思想:plug-in 原理#
統計學中估計的根本策略是 plug-in:把經驗分布 \(\hat F_n\) 代入理論公式中的真實分布 \(F\) :
例如母體平均 \(\theta = \int x \, dF(x)\) ,plug-in 估計就是 \(\hat\theta = \bar x\) 。
難點:抽樣分布的 plug-in#
我們想估的不只是 \(\theta\) ,還有 \(\hat\theta\) 的變異程度:
但這需要知道真實分布 \(F\) ——而 \(F\) 未知。傳統做法靠數學推導(如中央極限定理給出 \(\bar x\) 的漸近常態),但對一般 \(T\) 無能為力。
Bootstrap 的偷天換日#
Efron 的洞察:**用 \(\hat F_n\) 取代 \(F\) **,然後「重新扮演上帝」——從樣本本身模擬抽樣:
計算 \(B\) 次 bootstrap 統計量:
用這些 \(\hat\theta_b^*\) 的經驗分布近似 \(\hat\theta\) 的真實抽樣分布:
Bootstrap 信賴區間#
百分位法(percentile method)最常用:取 bootstrap 分布的 \(\alpha/2\) 與 \(1-\alpha/2\) 分位數:
進階版本還有 basic 法、BCa(bias-corrected and accelerated)法,修正偏誤與偏度。
與 jackknife / permutation test 的對照#
| 方法 | 原理 | 用途 | 局限 |
|---|---|---|---|
| Bootstrap | 放回重抽樣 | 估計(標準誤、信賴區間)、檢定 | 需大量計算;對極端相依結構需 block bootstrap |
| Jackknife | 逐一留一( \(\binom{n}{n-1}\) 個子樣本) | 偏誤、標準誤估計 | 對非平滑統計量(中位數)失效 |
| Permutation test | 打亂標籤、所有排列 | 檢定(兩樣本比較) | 主要用於假設檢定,難給信賴區間 |
三者都屬「resampling」,但 bootstrap 最通用、最具擴展性。
Python 實作:Bootstrap 信賴區間#
import numpy as np
np.random.seed(42)
# 母體:偏斜分布(指數),樣本數 n = 50
data = np.random.exponential(scale=2.0, size=50)
theta_hat = np.median(data) # 我們想估計母體中位數
print(f"樣本中位數 = {theta_hat:.3f}")
B = 10_000
n = len(data)
boot = np.empty(B)
for b in range(B):
idx = np.random.randint(0, n, n) # 抽出後放回
boot[b] = np.median(data[idx])
se = boot.std(ddof=1)
ci_lo, ci_hi = np.percentile(boot, [2.5, 97.5])
print(f"Bootstrap 標準誤 = {se:.3f}")
print(f"95% 信賴區間 = [{ci_lo:.3f}, {ci_hi:.3f}]")
# 驗證:真實中位數 = 2 * ln(2) ≈ 1.386,落在區間內
print(f"真實中位數 = {2 * np.log(2):.3f}")
輸出顯示 95% 信賴區間確實涵蓋真實中位數——而我們完全沒有假設任何分布。
結案 -- 後果與影響#
- Bootstrap 成為現代統計的標準工具,被廣泛用於生物統計、經濟計量、機器學習模型評估。
- 對機器學習影響深遠:
- Bagging(Breiman 1996):bootstrap aggregating,對 bootstrap 樣本訓練多個模型再平均,降低變異。
- 隨機森林(Breiman 2001):bagging + 特徵隨機選取,成為最強大的基礎學習器之一。
- Out-of-bag 誤差:bootstrap 未抽到的資料(約 36.8%)可作為免費驗證集,機率為 \(e^{-1}\) 。
- Efron 因此獲得多項榮譽(MacArthur Fellow、美國國家科學獎章 2005)。
- 理論持續發展:subagging、bagged V-statistics、與貝葉斯方法的結合(Bayesian bootstrap, Rubin 1981)。
關鍵人物與文獻#
- Bradley Efron(史丹佛):Bootstrap 之父,亦是 MacArthur 獎首位統計學家得主。
- Efron, B. (1979). Bootstrap methods: Another look at the jackknife. Annals of Statistics 7(1), 1–26.
- Efron, B., & Tibshirani, R. (1993). An Introduction to the Bootstrap. Chapman & Hall.
- Breiman, L. (1996). Bagging predictors. Machine Learning 24(2), 123–140.
- Breiman, L. (2001). Random forests. Machine Learning 45(1), 5–32.