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 78 24°C PM2.5 18
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 22

分析的陷阱

抽樣偏誤、倖存者偏誤、p-hacking、可重現性
Interaction實作 30 minute(s)

Learning Objectives

  • 辨認自願回應、方便抽樣造成的抽樣偏誤,並說明為什麼加大樣本不能修正偏誤
  • 辨認倖存者偏誤:只分析「留下來」的資料時,平均與相關會怎麼改變
  • 用模擬說明多重比較與 p-hacking 為什麼會讓偽陽性大增,以及事先決定分析計畫、校正的作用
  • 用固定種子、把分析決定寫進程式、記錄版本,讓分析可以重現

程式沒有錯,結論卻錯了

前面各課的程式都能正確執行,算出來的數字也都對。但一個分析的結論可能在程式之外就出了問題:

環節 可能的陷阱 這一課的例子
資料怎麼來 抽樣偏誤:樣本不能代表想了解的母體 只有愛讀書的人回問卷、只在宿舍門口問通勤時間
誰看得到 倖存者偏誤:只看到「留下來」的觀察 期中考差的人退選了,期末成績單上看不到他們
怎麼分析 p-hacking、分析的分岔路:試很多種分析,只報顯著的那一個 20 個指標裡總會有一個 p < 0.05
別人能不能重做 可重現性:同樣的資料與程式,能不能得到同樣的結果 亂數沒設種子、在試算表裡手動刪列

這一課的資料都是程式產生的模擬資料,不是任何學校的真實資料;範例裡「退選」「回問卷」的規則也是為了示範而設定的。

抽樣偏誤:樣本和母體不一樣

簡單隨機抽樣讓母體裡每個人被抽到的機會相同,樣本平均才會在母體平均附近隨機變動。 實務上常見的兩種偏離:

  • 自願回應:問卷放在網路上讓人自己填。願意填的人,常常就是對主題比較有興趣、表現比較好或意見比較強烈的人。
  • 方便抽樣:只問容易找到的人,例如上課的同學、住宿生、自己的朋友。如果「容易找到」和要量的變數有關,結果就會偏。

偏誤和隨機誤差不同:隨機誤差會隨樣本變大而變小,偏誤不會。回覆的人從 70 人變成 7,000 人,只是把同一個偏掉的數字算得更精確。

逐步看:自願回應與方便抽樣

假設我們有全部 200 位學生的資料(母體),再看三種「抽樣」各得到什麼。注意右邊 answered 是每個人有沒有回覆的布林值。

倖存者偏誤:看不到離開的人

倖存者偏誤是抽樣偏誤的一種:資料只包含通過某個篩選、「活下來」的觀察,而篩選本身和你要分析的結果有關。 例如只看還在營業的店家歸納成功的原因、只訪問畢業的校友評價課程、只用期末還在修課的人評估一門課。

被篩掉的觀察不只會讓平均偏高,也會改變關聯:篩選把某一段範圍的人拿掉,兩個變數的相關常會變弱(這叫全距限制)。 所以分析前要先問:「這份資料裡少了誰?為什麼少?」

逐步看:只看留下來的人

用微積分的成績。假設期中考低於 50 分的人都退選,期末成績單上只剩留下來的人。

多重比較、p-hacking 與分析的分岔路

顯著水準 0.05 的意思是:虛無假設為真時,一次檢定有 5% 的機會得到 p < 0.05(型一錯誤)。 做一次檢定,偽陽性的機會是 5%;做 20 次彼此獨立的檢定,至少一次偽陽性的機會是 1 − 0.95²⁰ ≈ 64%。

p-hacking 指的是試了很多種分析,只報告顯著的那一個:換指標、換排除條件、只看某個子群組、換檢定方法、資料不夠顯著就再多收一些。 Simmons、Nelson 與 Simonsohn(2011,Psychological Science)用模擬示範:只要組合幾個這類常見的彈性,偽陽性率就會遠高於名目上的 5%。

即使研究者沒有刻意試很多次,問題也可能發生:Gelman 與 Loken(2013)稱為分析的分岔路(garden of forking paths)。 看到資料之後才決定怎麼分析,每一個「看起來合理」的選擇都可能被資料的隨機變動帶著走,結果等於從很多條路裡挑了一條。

美國統計學會(ASA)2016 年關於 p 值的聲明(Wasserstein 與 Lazar,The American Statistician)也明列:科學結論不應只看 p 值有沒有跨過某個門檻, 適當的推論需要完整報告與透明,只挑結果報告會讓報告出來的 p 值難以解讀。

可以怎麼做:

  • 事先決定:資料還沒看之前,就寫下主要指標、排除條件、要比較的組與檢定方法(預先登記,preregistration)。
  • 全部報告:試過幾種分析就寫出來,不要只留顯著的。
  • 校正多重比較:例如 Bonferroni 校正,做 m 個檢定時,每個檢定改用 0.05 ÷ m 當門檻;它比較保守,會降低檢定力。
  • 探索性的發現當作「值得再驗證的假設」,用新的資料確認。

逐步看:20 個沒有效果的指標

兩組的資料都從同一個常態分布抽出,真正的差異是 0。ttest_ind 加上 axis=1 可以一次做很多個 t 檢定。

互動練習:同一份資料的 144 條分析路徑

一份模擬資料:常用與不常用 AI 助教的同學各 30 人,兩組的成績來自同一個分布(沒有效果)。 你可以選四件事:比較哪個指標、排除哪些人、看哪個子群組、用哪種檢定。每一種組合都說得出道理,合起來共 144 條路。

可重現性:讓別人(和未來的你)能重做一次

可重現(reproducible)指的是:用同樣的資料與程式,別人能得到同樣的數字與圖。做到這一點的幾個習慣:

習慣 作法
亂數固定種子 np.random.default_rng(2026)、df.sample(..., random_state=42)
每一個分析決定都寫在程式裡 排除條件寫成 query("study_hours <= 20"),不要在試算表裡手動刪列
原始資料不覆蓋 清理後存成新檔,原始檔保持不動
記錄環境 印出或寫下 pandas、numpy、scipy 的版本,不同版本的預設值可能不同
從頭跑一次 交出前把 notebook 或程式從第一行重新執行,確定不依賴執行順序

這些習慣也讓「事先決定分析計畫」做得到:程式本身就是一份記錄。

逐步看:種子、寫成程式的排除條件、版本

實作:5 個指標的多重比較

模擬 1,000 份「兩組各 30 人、沒有效果」的研究,每份比較 5 個指標:

  1. 用 rng = np.random.default_rng(1) 產生兩組資料,形狀都是 (5000, 30),平均 0、標準差 1(rng.normal(0, 1, size=(5000, 30)),先產生 a 再產生 b)。
  2. stats.ttest_ind(a, b, axis=1).pvalue.reshape(1000, 5) 得到每份研究的 5 個 p 值。
  3. 依序印出:只看第 1 個指標時 p < 0.05 的比例、5 個裡至少一個 p < 0.05 的比例、用 Bonferroni 校正(p < 0.05 / 5)後至少一個的比例。
只看第 1 個結果: …
5 個裡至少一個: …
Bonferroni 後至少一個: …
你的輸出
預期輸出

小測驗:抽樣偏誤與倖存者偏誤

1.

學生會在網路上發問卷調查「全校學生每週的運動時間」,結果有 3,000 人填寫。下列哪一個說法最恰當?

2.

某課程只用「期末還在修課的同學」的問卷評估教學效果,結果滿意度很高。這最可能是哪一種陷阱?

3.

下面程式會印出什麼?

print(round(1 - 0.95 ** 10, 2))
第 1 次作答

小測驗:p-hacking 與可重現性

1.

一位同學分析資料時,先比較全體沒有顯著,再只看大三大四、換成 Mann-Whitney,終於得到 p = 0.03,報告中只寫了這一個結果。問題在哪裡?

2.

做 8 個檢定時,Bonferroni 校正後每個檢定的顯著門檻是多少?

3.

下列哪一種作法最不利於分析的可重現性?

第 1 次作答

重點整理

  • 抽樣偏誤:自願回應、方便抽樣讓樣本和母體不同;偏誤不會隨樣本變大而消失。
  • 倖存者偏誤:只看通過篩選的觀察,平均會偏、相關也會變;先問「資料裡少了誰?」。
  • 多重比較:做 m 個檢定,至少一個偽陽性的機會約 1 − 0.95ᵐ;Bonferroni 校正改用 0.05 ÷ m。
  • p-hacking 與分岔路:看了資料才決定分析、只報顯著的結果,會讓 p 值失去意義;事先決定分析計畫,並報告所有試過的分析。
  • 可重現性:固定種子、決定寫進程式、原始資料不覆蓋、記錄版本、從頭跑一次。
  • 下一課把這些整理成一份分析報告:怎麼寫問題、方法、數字、圖與不確定性。
這一課完成了!
Next lesson:寫分析報告
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。