進行統計分析(有母數分析)時,可能會對數據的特徵建立某些假設,常態分佈就是相當常見的假設,例如 t 檢定或者 ANOVA(變異數分析)都會假設採樣數據的母體是常態分佈。
反過來說,如果不符合常態分佈的假設前提,我們做的 t 檢定、ANOVA、迴歸模型、或者皮爾森相關係數,都有可能是無效的分析、造成結論錯誤!
因此,我們進行(有母數)統計分析之前,檢驗資料「是否符合常態分佈的假設前提」是必要的動作。
要怎麼檢驗資料是否為常態分佈呢?本文將介紹一種好用的視覺化方法:Q-Q Plot,詳細教學其判讀方法、並且附上 R 語言程式碼 讓讀者練習。
個人工商時間:我正在 Instagram 上分享資料科學知識與職涯發展經驗,歡迎追蹤我的 Instagram 帳號 `@hao2huang`!
目錄
Q-Q Plot 教學
Q-Q Plot 全名是 Quantile-Quantile Plot,是一種視覺化比較兩項數據的分佈是否相同的方法。最常見、也是本文要教學的用法,是將某數據與理論上的完美常態分佈比較,從有無差異看出該數據是否為常態分配。判讀方法可用一句話概括:
把有興趣的數據,以及(相對應分位數的)理論常態分佈值,畫出散佈圖。如果呈現一直線,該數據就是常態分佈。

問題在於:「為什麼」看到直線就是常態分佈?好豪認為,讀懂 Q-Q Plot 的關鍵就在於理解 Quantile:
- 理解 Quantile 能讓你了解為什麼 Q-Q Plot 用直線判讀常態分佈
- 理解 Quantile 能讓你學會 Q-Q Plot 製圖
- 理解 Quantile 更讓你在 Q-Q Plot 呈現非直線的時候,也能看出資料分佈究竟是什麼
以上三點,就在接下來的文章一一說明。
直覺理解:比較「名次」之間的數值相對差異
Quantile 的中文是 分位數,是用數據量來分割資料、而不是用數值本身來分割資料,簡單地講就是名次。
Quantile-Quantile:兩組數據各自相同名次的比較
Q-Q Plot 的原理,是先幫有興趣的數據排名次,再為每個名次找出理論常態分配中、同樣名次對應到的值是多少。如果數據符合常態分配,各名次之間的數據值相對差異應該要符合特定模式。
如果數據是常態分配,就會符合鐘型曲線的單峰且左右對稱的特性:
- 第 25% 與 50% 名次數據的數值距離 = 第 50% 與 75% 名次數據的數值距離
- 第 10% 與 20% 名次數據的數值距離 = 第 80% 與 90% 名次數據的數值距離
此外,如果數據是常態分配,各名次之間的數值成長速度應該要有特定形式:(參考下圖)
- 從第 0.1% 到 2.2% 名次數據的數值變化量 = 從第 2.2% 到 15.8% 名次數據的數值變化量
- 從第 2.2% 到 15.8% 名次數據的數值變化量 = 從第 15.8% 到 50% 名次數據的數值變化量

這就是為何在 Q-Q Plot 上可以用直線來判讀常態分佈的道理,我們要檢驗數據各名次間的相對數值差異、是否跟常態分佈相同,這項道理我們在接下來學習製圖步驟後會更加清晰。
製圖步驟
- 為資料由小到大排序
- 為每個資料以分位數表示名次(Plotting Position)
- 如果共有 14 個資料點,第 2 名(倒數)要表示為第 6.7% 名(
1/(14+1)
)
- 如果共有 14 個資料點,第 2 名(倒數)要表示為第 6.7% 名(
- 計算每一點的分位數名次,其相對應的標準常態分配數值
- 使用標準常態分配 CDF 的反函數
- 標準常態分配中,第 6.7% 名對應到 -1.499
- (在 R 語言使用
qnorm(0.067)
)
- (在 R 語言使用
- 將有興趣數據與相對應名次常態分配數值以散佈圖的方式呈現
製圖範例
在此,我們用台大財金所的考題(資料來源:張翔老師)來示範。
請繪製 Q-Q Plot 檢驗下列資料是否符合常態分配: 20, 23, 7, 1, 15, 29, 24, 13, 19, 12, 32, 6, 11, 18
- 首先,我們為這 14 筆資料排序:
1, 6, 7, 11, 12, 13, 15, 18, 19, 20, 23, 24, 29, 32
- 以
7
這筆資料為例,它在 14 筆數據中是第 3 名(倒數),我們將它以分位數表示則是第 20% 名(3/(14+1)
) - 在標準常態分配,第 20% 名的數值是 -0.8416
- 在散佈圖上畫出
x = -0.8416, y = 7
的資料點 - 以此類推,繪製出全部 14 筆資料

圖示中,這 14 筆資料大致是貼合在直線上的,我們可以視覺判斷這組資料符合常態分配。
詳細的製圖方法及 R 語言程式碼,請參閱 好豪的 GitHub。
Q-Q Plot 不是直線怎麼辦?判讀不同分配特性
Q-Q Plot 不是只有判斷「是否為直線」或者「是否為常態分配」,即使畫出來的不是直線,還是能看出資料分配的特性,例如,下圖中可以看到 Q-Q Plot 在左偏與右偏分配會呈現的樣子:

但是,如果只給我們圖示下半部的 Q-Q Plot,要馬上看出究竟是什麼分配,好像不太直覺?筆者好豪在此與你分享快速用 Q-Q Plot 判讀分配的小技巧:
Q-Q Plot 中,脫離直線、形狀趨於水平的資料點,是資料分佈高峰所在地


常態分佈統計檢定
講了半天的 Q-Q Plot,它終究是個視覺化的方法,若是讀者覺得用看的不夠可靠,要檢驗常態分配還可以做統計檢定,常用的方法包括:
- Shapiro-Wilk test
- Kolmogorov-Smirnov test
- Anderson-Darling test
這些統計檢定詳細的使用方法與 R 程式碼,可以參考 吳漢銘老師的教學投影片。
結語
學會 Q-Q Plot 後,比起單純用直方圖判斷鐘型曲線,我們有更強的視覺化方法可以看出數據是否為常態分配。如果覺得視覺判斷不夠客觀,我們還能用統計檢定來檢驗常態性。
檢驗是否為常態分佈後,重點在於:如果不是常態分佈對資料分析會有什麼影響?資料不是常態分佈該怎麼辦?我認為「究竟是誰該常態分佈」是關鍵問題,我在這篇 t 檢定與中央極限定理白話教學文章 用圖片範例解答這些疑惑,非常建議你閱讀!
參考資料:
如果你正在研讀統計學,推薦你繼續閱讀好豪的統計學知識分享:
也歡迎追蹤好豪的 Facebook 粉絲專頁、Instagram 與 Threads 帳號,我會持續努力分享統計學與資料科學知識!