National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 80 24°C PM2.5 21
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 18

信賴區間

bootstrap 與公式,「95%」的正確意思
Interaction實作 30 minute(s)

Learning Objectives

  • 說出標準誤(SE)與標準差的差別,並用 s/√n 算出平均數的標準誤
  • 用 t 分布算出平均數的 95% 信賴區間,並正確說明「95%」指的是什麼
  • 說出信心水準與樣本數如何影響區間的寬度
  • 用 bootstrap 重抽樣算出平均數或中位數的信賴區間,並畫出各組平均的信賴區間圖

樣本平均有多可靠?

第 16 課看過:從同一個母體抽很多次樣本,每次算出的平均都不一樣,這些平均形成抽樣分布。 實際做分析時,你通常只有一個樣本,例如這 200 位學生的每週讀書時數平均是 9.93 小時。 問題是:如果換一批學生,平均可能差多少?

信賴區間用一個範圍來回答這個問題:與其只報「9.93 小時」,不如報「9.93 小時,95% 信賴區間 9.29~10.58 小時」。 區間越窄,估計越精確;區間很寬,就表示這筆資料還不足以把平均估準。

這一課的資料是 students.csv,是程式產生的模擬資料,不是任何學校的真實資料。

標準誤與 t 分布

標準差(s)描述的是「每個人之間差多少」;標準誤(standard error,SE)描述的是「樣本平均會差多少」:

SE = s ÷ √n

人數越多,平均越穩定,所以 SE 隨 √n 變小。人數變成 4 倍,SE 才減半。

平均數的信賴區間是「平均 ± 臨界值 × SE」。母體的標準差不知道、只能用樣本的 s 代替時,臨界值要用 t 分布(自由度 n − 1):

信心水準 臨界值(n 很大時) 用 SciPy 算
90% 約 1.645 stats.t.ppf(0.95, df=n-1)
95% 約 1.96 stats.t.ppf(0.975, df=n-1)
99% 約 2.576 stats.t.ppf(0.995, df=n-1)

ppf 是累積機率的反函數:t.ppf(0.975, df) 是「左邊面積 97.5%」的那個點,兩邊各留 2.5%,中間就是 95%。 n 小的時候 t 分布的尾巴比較厚,臨界值比 1.96 大,區間也比較寬。

逐步看:用公式算出 95% 信賴區間

每一步只算一個量:平均、標準差、標準誤、臨界值,最後組成區間。注意右邊記憶體區的數字怎麼一路變過來。

「95%」到底是什麼的 95%

這是信賴區間最常被說錯的地方。母體的真實平均是一個固定的數(只是你不知道),它不會跑來跑去; 會變的是區間:每抽一次樣本,就算出一個不同的區間。

正確:用這個方法重複抽樣、每次都算一個 95% 信賴區間,長期下來約 95% 的區間會涵蓋真值。

錯誤:「真值有 95% 的機率落在 9.29~10.58 之間。」算出來之後,這個區間要嘛涵蓋了真值、要嘛沒有。

所以 95% 是方法的成功率,不是某一個區間的成功率。下面的小工具把「重複抽樣」做給你看: 每一條橫線是一個樣本算出的區間,綠色直線是真值,沒有涵蓋到的區間畫成紅色。

這個「約 95%」有前提:樣本是隨機抽的,而且平均數的抽樣分布接近常態。母體很偏、樣本又小時,t 區間的實際涵蓋率可能低於名目的 95%,小工具的最後一個任務會讓你看到。

互動練習:100 條信賴區間

每按一次「重新抽樣」,就從母體抽 100 個樣本,每個樣本畫一條信賴區間。調整信心水準與樣本數,看紅色的條數與寬度怎麼變。

bootstrap:用電腦重抽樣

公式法需要知道統計量的標準誤公式。平均數有現成公式,中位數、兩個中位數的差、相關係數就麻煩得多。 bootstrap(Efron, 1979)的想法是:把手上的樣本當成母體的縮影,用電腦從樣本裡抽後放回,抽出和原樣本一樣多的人, 重複幾千次,每次都算一次統計量,看這些統計量散布多廣。

  1. 從 n 筆資料中抽後放回抽 n 筆(同一筆可能被抽到好幾次,有些一次都沒抽到)。
  2. 算這個重抽樣本的統計量(平均、中位數…)。
  3. 重複 2000 次,取這 2000 個值的第 2.5 與第 97.5 百分位數,當成 95% 區間(百分位數法)。

bootstrap 不是萬靈丹:它仍然假設樣本能代表母體,樣本很小時區間也不可靠。

逐步看:2000 次重抽的平均與中位數

2000 次重抽不用迴圈:一次產生 2000×200 個隨機位置,用陣列一次取值。注意 boot 的形狀。

各組平均的信賴區間

比較各組時,只畫平均的長條圖,看不出哪些差別可能只是抽樣的變動。在每個平均旁畫出信賴區間(誤差線,error bar)會誠實得多: 人數少的組,區間比較寬。pandas 的 sem() 直接算出標準誤(同樣除以 n − 1)。

讀這種圖要小心:兩組的區間沒有重疊,差別通常是顯著的;但有重疊不代表差別不顯著,要比較兩組,請用第 19 課的檢定。 圖上也要寫清楚誤差線是什麼(信賴區間、標準誤還是標準差),三者的長度差很多。

逐步看:各系讀書時數的信賴區間圖

實作:睡眠時數平均的 95% 信賴區間

讀入 students.csv,用 t 分布算出每晚睡眠時數(sleep_hours)平均的 95% 信賴區間。 平均、下限、上限都四捨五入到小數 2 位,印成兩行:

平均: ...
95% CI: 下限 上限
你的輸出
預期輸出

小測驗:信賴區間

1.

算出某個平均的 95% 信賴區間是 6.36~6.59。下面哪一個說法正確?

2.

其他條件不變,樣本人數從 50 人增加到 200 人(4 倍),平均數信賴區間的寬度大約會?

3.

同一份資料,99% 信賴區間和 95% 信賴區間比起來?

4.

bootstrap 每一次重抽是怎麼抽的?

5.

下面程式會印出什麼?

import numpy as np
x = np.array([4, 6, 8, 10, 12])
se = x.std(ddof=1) / np.sqrt(len(x))
print(round(se, 3))
第 1 次作答

重點整理

  • 標準誤 SE=s ÷ √n,描述樣本平均的不確定程度;人數變 4 倍,SE 才減半。
  • 平均數的信賴區間=平均 ± t 臨界值 × SE;stats.t.ppf(0.975, df=n-1) 或 stats.t.interval(0.95, df, loc, scale)。
  • 95% 的意思:重複抽樣時約 95% 的區間會涵蓋真值;不是「真值有 95% 的機率在這個區間裡」。
  • 信心水準越高、區間越寬;樣本越多、區間越窄。母體很偏且樣本小時,實際涵蓋率可能低於名目值。
  • bootstrap:從樣本抽後放回、重複幾千次,取百分位數;可以用在中位數這類沒有簡單公式的統計量。
  • 比較各組時畫出誤差線,並寫清楚它代表什麼。
  • 下一課:兩組的平均差,是真的不同,還是抽樣的變動?用假設檢定回答。

延伸閱讀:Efron, B. (1979). Bootstrap methods: Another look at the jackknife. The Annals of Statistics, 7(1), 1–26。

這一課完成了!
Next lesson:假設檢定與 t 檢定
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。