Population、Sample 與 Sampling Bias
學習目標:定義目標母體,判斷樣本代表了誰、漏掉了誰。
你手上這份調查資料收集自願意填答的受訪者,主管希望把結論推論到「全校所有學生」。在推論之前,第一個必須回答的問題是:這份樣本實際上代表了誰?漏掉了誰?如果目標母體(全校學生)和實際取得樣本的人有系統性的差異,結論就無法直接套用到目標母體上。
Population(目標母體)
- 你真正想了解、想推論結論的整體對象
- 例如:全校所有在學學生
- 通常無法對每一個人都收集資料
Sample(樣本)
- 實際收集到資料的那一部分人
- 本資料集中,一列 observation_id 代表一筆樣本觀測
- 樣本是否能代表母體,取決於是誰、如何被納入樣本
sample_share = df["sampling_stratum"].value_counts(normalize=True).round(3)
print(sample_share)
completion_by_stratum = df.groupby("sampling_stratum")["response_complete"].mean().round(3)
print(completion_by_stratum)
# 樣本占比與目標母體已知比例差很多的分層,可能代表這個分層在樣本中被過度或不足代表| 來源 | 說明 | 對結論的風險 |
|---|---|---|
| 便利抽樣(convenience sampling) | 只收集容易接觸到、願意配合的對象 | 結果可能只代表「願意參與的人」,而非目標母體 |
| 自我選擇(self-selection) | 受訪者自己決定要不要填答,通常與結果本身相關 | 有強烈意見或利害關係的人更可能填答,扭曲整體分布 |
| 無回覆偏誤(non-response bias) | 被邀請但未完成回覆的人,系統性地與已完成的人不同 | 只分析已完成回覆的人,可能低估或高估真實情況 |
這份調查只透過一個自願加入的線上社團發送,第一輪收到 800 份回覆,B 分層的占比明顯低於它在全校學生中的已知比例。團隊決定「再發一輪,把樣本數加倍」,收到 1600 份回覆後,B 分層的占比幾乎沒有改變,因為新增的回覆仍然來自同一個自我選擇的管道。樣本數變大,但抽樣偏誤完全沒有縮小。
- 推論到目標母體之前,先寫下這個母體的定義,以及樣本的招募或收集方式
- 比較樣本中各分層、各群組的占比,和這些群組在目標母體中已知或估計的占比
- 只因為樣本數夠大就假設樣本具代表性,是最常見也最容易被忽略的錯誤
- 同一個招募管道收集更多資料,通常只會讓偏誤更穩定,而不會讓它消失
注意
一份調查透過學生自願加入的線上社團發送,回收了 800 份問卷。要把結論推論到「全校所有學生」之前,最重要的第一步是什麼?