JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

假設檢定與 p 值

人人都在用、多數人卻讀錯的那套儀式——虛無假設、p 值、顯著性、錯誤與檢定力,一次說清楚。

法庭的比喻:未證明有罪前都是清白的

你改了某樣東西——也許你懷疑一枚硬幣被動了手腳、你把結帳按鈕換成新版本,或朋友信誓旦旦說他的新讀書 App 讓成績進步了——然後數字稍微動了一下。真正困難的問題從來不是「數字有沒有變?」它幾乎總會變一點。真正困難的問題是:那個變動是真的,還是只是那種「就算什麼都沒變、你也會看到」的隨機晃動?假設檢定(hypothesis test)就是統計學家用來回答這個問題的正式儀式。

要感受它如何運作,最乾淨的方式是想像一個法庭。被告被「推定無罪」。檢方不必用魔法把清白徹底證偽;它要做的,是提出強到讓「無罪」變得難以置信的證據。注意這個推理的形狀:我們從不以百分之百的把握證明有罪。我們問的是一個更鋒利的問題——如果被告真的是清白的,這些證據會不會很令人意外?如果會非常意外,我們就定罪。

從這個比喻會推出兩個結論,而它們幾乎絆倒每一個人。第一,檢定只能「拒絕」虛無假設,或「無法拒絕」它——它永遠不能「接受」它或證明它為真,正如「無罪開釋」並不等於「已證明清白」。缺乏強力證據,並不是「不存在」的強力證據。第二,判決可能以兩種不同方式出錯:你可能把清白的人定罪,也可能放走真正有罪的人。記住這兩種錯誤——稍後我們會給它們名字與機率。

虛無假設與對立假設

我們用最簡單的實驗把它變具體。你擲一枚硬幣 100 次,得到 60 次正面。一枚公平的硬幣「應該」大約落在 50 次。60 距離 50 夠遠到可以指控這枚硬幣作弊嗎——還是 60 只是運氣?在我們計算任何東西之前,統計學要你先寫下兩個彼此競爭、關於這個世界的陳述。

第一個是虛無假設,寫成 H₀:正面出現的真實、長期機率恰好是 0.5——這枚硬幣是公平的。它永遠是「沒有效果、沒有差異、沒什麼有趣的事」這種主張。第二個是對立假設(alternative hypothesis),寫成 H₁:這枚硬幣不公平——真實機率不是 0.5。對立假設是那個有趣的主張,只有在資料逼你不得不信時你才會相信。

H_0:\ p = 0.5 \qquad H_1:\ p \neq 0.5

虛無假設釘住一個確切的數字(0.5),這正是我們能計算的原因。對立假設只說「不是那個」。

一開始要先做一個選擇:單尾或雙尾。如果你只在乎硬幣偏向正面,你的對立假設是「機率大於 0.5」(單尾)。如果偏向任一方向都算數,你的對立假設就是「不等於 0.5」(雙尾)。誠實的預設是雙尾,因為在你看資料之前,你沒有理由押注某個特定方向——而且你必須在看到資料之前就決定,而不是在結果誘惑你之後。

檢定統計量與 p 值

現在我們要把這 100 次擲幣壓縮成一個數字,用來衡量「我們的結果離虛無假設所預測的有多遠」。這個數字就是檢定統計量(test statistic)。訣竅在於:距離不是用原始的正面次數來量,而是用「你本來無論如何都會預期到的那種隨機晃動」當單位——這個單位叫做標準誤(standard error)。

回想抽樣那一課的概念:就算是一枚完全公平的硬幣,擲 100 次也幾乎從不剛好給你 50 次正面;每一輪的次數都會在 50 上下散開。對 100 次擲幣來說,這種典型的散布——也就是比例的標準誤(standard error)——算出來是「0.5 乘 0.5 再除以 100」的平方根,等於 0.05,也就是 5 個百分點。所以這裡「一單位的運氣」大約是 5 個正面百分點。

z = \frac{\hat{p}-p_0}{\sqrt{p_0(1-p_0)/n}} = \frac{0.60-0.50}{\sqrt{0.5\times 0.5/100}} = \frac{0.10}{0.05} = 2.0

我們觀察到的 60% 恰好落在公平硬幣所預測的 50% 之上兩個標準誤的位置。

所以我們的結果離虛無假設有兩個標準誤遠。「兩個標準誤」算多嗎?要回答這個,我們終於要計算 p 值(p-value)。先用文字小心地說一遍:假設虛無假設恰好為真——這枚硬幣真的是公平的——然後想像把這個「擲 100 次」的實驗一遍又一遍、永遠重複下去。p 值就是這些想像中的實驗裡,會給出「至少和你實際看到的一樣極端」之結果(60 次以上正面,或 40 次以下,因為我們選了雙尾)的比例。

p\text{-value} = \Pr(\text{a result at least this extreme}\mid H_0)

用白話說:在虛無假設下,純粹的運氣有多常追平或超過我們所看到的結果?

互動:拖動觀察到的正面次數(或改變樣本數),看著檢定統計量移動、p 值隨之縮小或放大。

一條以公平硬幣預測值為中心的鐘形曲線;一個標記顯示觀察到的結果,超出它的兩側尾端面積(即 p 值)被填上陰影。

對我們的硬幣來說,在鐘形曲線上,「往任一方向偏離兩個標準誤以上」的結果大約只占 5%——所以 p 值大約是 0.05。更精確的計算(下方程式碼中的二項檢定)給出 0.057。無論用哪個,白話的讀法都一樣:如果這枚硬幣真的公平,這麼一面倒(或更極端)的結果,大約每 18 次實驗才會出現一次。算少見——不過,正如我們即將看到的,它正好坐在常用門檻的邊界上。

from scipy.stats import binomtest
# 60 heads in 100 flips - is the coin fair (p = 0.5)?
result = binomtest(60, n=100, p=0.5, alternative="two-sided")
print(round(result.pvalue, 4))   # -> 0.0569
用 Python 對「100 次中 60 次正面 vs 公平硬幣」做精確的二項檢定——它會印出 0.0569。
把 p 值看成尾端面積:在假設虛無假設為真的前提下,它是所有可能結果中、至少和你看到的一樣極端的那一部分比例。

一條常態曲線,超出觀察到之檢定統計量的兩側區域被填上陰影,代表雙尾 p 值。

p 值是什麼——以及它不是的四件事

正因為 p 值如此容易計算、又被引用得如此廣泛,它同時也是整個科學界最常被讀錯的一個數字。所以我們先把唯一正確的定義釘死,再拆解四種最常見的誤讀——這是整篇指南誠實的核心。唯一正確的定義是:p 值是「在一個虛無假設恰好為真的假想世界裡,得到至少和你一樣極端之資料」的機率。

p\text{-value} = \Pr(\text{data}\mid H_0)\quad\neq\quad \Pr(H_0\mid \text{data})

p 值是「在虛無假設成立下、看到這筆資料」的機率——不是「在看到這筆資料下、虛無假設成立」的機率。這兩者並不相同,把它們對調,就是 p 值的原罪。

  1. 它不是「虛無假設為真」的機率。你想要的是「在你的資料下、硬幣是公平的」機率;p 值卻是反過來的條件機率——「在硬幣公平下、看到你這筆資料」的機率。要把兩者對調,需要貝氏定理和一個先驗信念。所以 p = 0.057 並不代表「硬幣有 5.7% 的機率是公平的」。
  2. 它不是「你的結果只是碰巧發生」的機率。p 值本來就假設「運氣」——也就是虛無假設——是整個故事;它是在這個假設「之內」算出來的。一個靠著假設運氣才算得出來的數字,不可能同時又是「那個假設本身為真」的機率。
  3. 它不是「效果有多大、多重要」的度量。樣本一大,一個微小又沒用的差異——例如只偏了半個百分點的硬幣——也能產生極小的 p 值。樣本一小,一個巨大又真正重要的效果,卻可能產生又胖、又不顯著的 p 值。統計顯著性與實務重要性,是兩條不同的軸。
  4. 它不是「如果你拒絕虛無假設、你會出錯」的機率。一個「顯著」發現有多常其實是假警報,取決於一開始究竟有多少真實效果可找——也就是基底比率(base rate)——而不只取決於 p 值。在幾乎沒有真實效果的地方拚命找,就算 p 小於 0.05,你大部分的「發現」也會是錯的。

顯著性、型一錯誤與型二錯誤

p 值是一種連續的「意外程度」量尺,但在某個時刻你終究得行動——要不要上線那個按鈕、要不要把硬幣回收。所以在實驗之前,你會挑一個門檻,叫做顯著水準(significance level),寫成 α(希臘字母 alpha),最常設成 0.05。規則很簡單:如果 p 值落在 α 或更小,你就稱這個結果「統計上顯著」並拒絕虛無假設;否則你就「無法拒絕」它。

\text{Reject } H_0 \text{ if } p \le \alpha \qquad (\text{often } \alpha = 0.05)

決策規則。注意 α 是事先由你設定的——不是從資料讀出來的。

回到法庭:因為任何判決都可能出錯,統計學家替這兩種錯誤取了名字。型一錯誤(type I error)是「拒絕了一個其實為真的虛無假設」——一個假警報——就像硬幣明明公平,你卻大喊「這硬幣作弊!」。漂亮的地方在於:它的長期發生率由你直接控制——它恰好就是 α。把 α 設成 0.05,等於是一個承諾:在虛無假設為真的世界裡,你只會有 5% 的時候喊「狼來了」。

相反的錯誤是型二錯誤(type II error):「沒能拒絕一個其實為假的虛無假設」——一個漏接——硬幣其實被動了手腳,但你的資料沒抓到,於是你放它走了。它的長期發生率寫成 β(beta)。和 α 不同,你無法直接設定 β;它取決於真實效果有多大、以及你蒐集了多少資料。

\alpha = \Pr(\text{reject }H_0 \mid H_0\text{ true}), \qquad \beta = \Pr(\text{fail to reject }H_0 \mid H_0\text{ false})

兩種錯誤、兩個條件機率——各自定義在不同的世界裡(虛無假設為真 vs 為假)。

統計檢定力,以及檢定力不足的檢定為何誤導

如果型二錯誤是「漏接」,那它的鏡像就是好的結果,而它也有自己的名字:統計檢定力(statistical power)是「當效果真的存在時,你的檢定正確抓到它」的機率。檢定力和漏接率是同一枚硬幣的兩面——檢定力等於 1 減去 β。

\text{power} = 1 - \beta = \Pr(\text{reject }H_0 \mid H_1\text{ true})

檢定力:當對立假設才是真相時,(正確地)拒絕虛無假設的機率。

把它變具體。假設一個新的結帳按鈕,真的把購買率從 8.0% 提升到 8.4%——是個真實的效果,但很小。如果你每組只測 200 位訪客,組與組之間的隨機晃動,會遠大於那 0.4 個百分點,所以即使這個提升是真的,你的檢定也幾乎總會回給你一個無聊、不顯著的 p 值。檢定力低,意味著你會系統性地錯過真正的成效,並錯誤地下結論說「什麼都沒發生」。常見的標準是把檢定力設計到至少 80%,也就是漏接率 β 在 0.20 以下。

有四個旋鈕能把檢定力轉高:更大的真實效果(更容易看見)、雜訊更少的資料(更小的標準差)、更寬鬆的 α(要跨過的門檻更低),以及——你真正能控制的那個旋鈕——更大的樣本。最後這一個,正是認真的團隊在跑任何東西之前都會先計算所需樣本數的原因;我們在實驗那條學習軌道裡,用一整篇指南來談它。

把檢定力看成重疊:左邊的曲線是虛無假設為真的世界,右邊是確實存在效果的世界。檢定力就是右邊曲線中落在拒絕門檻之外的那一塊。

兩條重疊的鐘形曲線;一條垂直門檻線標出我們拒絕虛無假設的位置。右邊(真實效果)曲線超過該線的面積標示為檢定力,線前的面積則是型二錯誤率 β。

p 駭客與複現危機

記住:那 5% 的假警報率是「每一次檢定」的。做很多次檢定,假警報就會悄悄堆積。如果你檢定 20 個全都其實為虛無的假設,在 α = 0.05 之下,你應該預期其中大約會有一個純粹因為運氣而回報「顯著」。拿 20 種顏色的雷根糖去找與青春痘的關聯,幾乎一定會有一種顏色看起來有罪——而那當然就是最後上了新聞標題的那一種顏色。

\Pr(\text{at least one false alarm in }20\text{ tests}) = 1-(1-0.05)^{20} \approx 0.64

若有 20 個彼此獨立、且全為真的虛無假設,至少出現一次假警報的機率不是 5%,而是大約 64%。

這就是 p 駭客(p-hacking,也叫資料探勘式硬挖,data dredging)背後的機制:一種——往往甚至不是故意的——做法,亦即嘗試很多種分析,卻只報告那些跨過 p 小於 0.05 的。檢定許多種結果、把資料切成許多子群、不斷加入又拿掉控制變數直到某樣東西變顯著,或偷看結果、一看好看就立刻停下——每一次額外的嘗試,都是再買一張偽陽性的彩券,而只報告中獎的那幾張,就像一個槍手先朝牆開槍、再把靶心畫在彈孔周圍。

還有兩股力量讓情況更糟。發表偏誤(publication bias):期刊、研討會與公司內部的儀表板,全都偏好刺激、顯著的結果,於是文獻被幸運的那 5% 塞滿,而無聊、虛無的 95% 則靜靜躺在抽屜裡——也就是所謂的抽屜檔案問題(file-drawer problem)。而一旦一個亮眼的結果被發表,重新查核它的誘因就很薄弱。把 p 駭客、低檢定力與發表偏誤加在一起,你就會得到一整片「看起來遠比底層證據所能支撐的還要確定」的文獻。

  1. 在你看到資料之前,就先決定你那一個主要結果、確切的檢定方法,以及樣本數——而且在能做到的地方,把這份計畫預先登記(pre-register),讓你日後無法偷偷更動它。
  2. 如果你真的必須檢定很多東西,就要為此校正——透過多重比較(multiple comparisons)的調整使用更嚴格的門檻,而不是把每個檢定都用天真的 0.05 來評斷。
  3. 不要一碰到顯著就立刻停手。要嘛事先固定樣本數,要嘛使用一種專門為「允許提前停止」而設計的正規序貫方法。
  4. 報告你試過的一切,包括那些虛無的結果,並且永遠把效果大小連同信賴區間一起呈現——而不是只撒上幾顆顯著性星號。
  5. 相信複現,勝過任何單一個耀眼的 p 值。一個研究是個提示;同一個效果,被其他人用全新的資料再次找到,才是知識。

解讀檢定的清醒檢查清單

你現在已經懂了整套儀式——假設、檢定統計量、p 值、門檻、兩種錯誤,以及檢定力——而且同樣重要的是,你也懂它如何被濫用。以下是一種精簡的方法,讓你能讀懂任何人(包括你自己)的「p 小於 0.05」,而不會自欺。

  1. 假設到底是什麼,而且它們是事先就定好的嗎?一個「看了資料之後才決定要問什麼問題」的分析,是一個警訊,而不是一個發現。
  2. 效果大小是多少,用真實的單位來看?「顯著」說的是這個效果大概不是「恰好為零」;它從不說這個效果大到足以對任何人造成影響。
  3. 信賴區間在哪裡?一個又寬、又幾乎碰到零的區間,就算 p 值勉強壓到 0.05 之下,也是薄弱的證據。
  4. 這個研究的檢定力足夠嗎?一個樣本很小、卻還是「找到」了一個大效果的研究,應該引起懷疑,而不是興奮——記得那個誇大陷阱。
  5. 為了得到這個結果,總共檢定了多少東西?在五十個比較中得到一個顯著結果,正是純粹雜訊應有的樣子。
  6. 它複現了嗎?單一個研究是一條值得追查的線索;一個被獨立地、一再找到的效果,才是你能在上面繼續搭建的東西。

這是頻率學派(frequentist)的工具箱——統計學被教授與報告時最主流的方式。但還有第二種、非常不同的方式可以推理證據:從一個先驗信念出發,用資料更新它,再把你的答案直接讀成一個關於這個世界的機率。那就是下一篇指南貝氏思考(Bayesian thinking)的主題。而每當你想為「一個效果有多大」標上一個數字、而不只是一個「是或否」的判決時,就回到信賴區間——這整條學習軌道中最便於做決策的工具。