是不是常態分佈?Q-Q Plot 一看就懂

文章推薦指數: 80 %
投票人數:10人

Q-Q Plot 全名是Quantile-Quantile Plot,是一種視覺化比較兩項數據的分佈是否相同的方法。

最常見、也是本文要教學的用法,是將某數據與理論上的完美常態 ... 資料科學 是不是常態分佈?Q-QPlot一看就懂 by好豪 2021-05-21 by好豪 Published:2021-05-21LastUpdatedon2022-02-14 進行統計分析(有母數分析)時,可能會對數據的特徵建立某些假設,常態分佈就是相當常見的假設,例如t檢定或者ANOVA(變異數分析)都會假設採樣數據的母體是常態分佈。

反過來說,如果不符合常態分佈的假設前提,我們做的t檢定、ANOVA、迴歸模型、或者皮爾森相關係數,都有可能是無效的分析、造成結論錯誤! 因此,我們進行(有母數)統計分析之前,檢驗資料「是否符合常態分佈的假設前提」是必要的動作。

要怎麼檢驗資料是否為常態分佈呢?本文將介紹一種好用的視覺化方法:Q-QPlot,詳細教學其判讀方法、並且附上R語言程式碼讓讀者練習。

目錄 Q-QPlot教學直覺理解:比較「名次」之間的數值相對差異Quantile-Quantile:兩組數據各自相同名次的比較製圖步驟製圖範例Q-QPlot不是直線怎麼辦?判讀不同分配特性常態分佈統計檢定結語 Q-QPlot教學 Q-QPlot全名是Quantile-QuantilePlot,是一種視覺化比較兩項數據的分佈是否相同的方法。

最常見、也是本文要教學的用法,是將某數據與理論上的完美常態分佈比較,從有無差異看出該數據是否為常態分配。

判讀方法可用一句話概括: 把有興趣的數據,以及(相對應分位數的)理論常態分佈值,畫出散佈圖。

如果呈現一直線,該數據就是常態分佈。

只要看到直線就是常態分佈,數據點偏離直線就不是,就這麼簡單!(Source:Wikipedia) 問題在於:「為什麼」看到直線就是常態分佈?好豪認為,讀懂Q-QPlot的關鍵就在於理解Quantile: 理解Quantile能讓你了解為什麼Q-QPlot用直線判讀常態分佈理解Quantile能讓你學會Q-QPlot製圖理解Quantile更讓你在Q-QPlot呈現非直線的時候,也能看出資料分佈究竟是什麼 以上三點,就在接下來的文章一一說明。

直覺理解:比較「名次」之間的數值相對差異 Quantile的中文是分位數,是用數據量來分割資料、而不是用數值本身來分割資料,簡單地講就是名次。

Quantile-Quantile:兩組數據各自相同名次的比較 Q-QPlot的原理,是先幫有興趣的數據排名次,再為每個名次找出理論常態分配中、同樣名次對應到的值是多少。

如果數據符合常態分配,各名次之間的數據值相對差異應該要符合特定模式。

如果數據是常態分配,就會符合鐘型曲線的單峰且左右對稱的特性: 第25%與50%名次數據的數值距離=第50%與75%名次數據的數值距離第10%與20%名次數據的數值距離=第80%與90%名次數據的數值距離 此外,如果數據是常態分配,各名次之間的數值成長速度應該要有特定形式:(參考下圖) 從第0.1%到2.2%名次數據的數值變化量=從第2.2%到15.8%名次數據的數值變化量從第2.2%到15.8%名次數據的數值變化量=從第15.8%到50%名次數據的數值變化量 用名次間的相對數值變化特性,來判斷是否為常態分配(Source:Wikipedia) 這就是為何在Q-QPlot上可以用直線來判讀常態分佈的道理,我們要檢驗數據各名次間的相對數值差異、是否跟常態分佈相同,這項道理我們在接下來學習製圖步驟後會更加清晰。

製圖步驟 為資料由小到大排序為每個資料以分位數表示名次(PlottingPosition)如果共有14個資料點,第2名(倒數)要表示為第6.7%名(1/(14+1))計算每一點的分位數名次,其相對應的標準常態分配數值使用標準常態分配CDF的反函數標準常態分配中,第6.7%名對應到-1.499(在R語言使用qnorm(0.067))將有興趣數據與相對應名次常態分配數值以散佈圖的方式呈現 製圖範例 在此,我們用台大財金所的考題(資料來源:張翔老師)來示範。

請繪製Q-QPlot檢驗下列資料是否符合常態分配: 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筆資料 Q-QPlot製圖方法(Source:好豪的GitHub) 圖示中,這14筆資料大致是貼合在直線上的,我們可以視覺判斷這組資料符合常態分配。

詳細的製圖方法及R語言程式碼,請參閱好豪的GitHub。

Q-QPlot不是直線怎麼辦?判讀不同分配特性 Q-QPlot不是只有判斷「是否為直線」或者「是否為常態分配」,即使畫出來的不是直線,還是能看出資料分配的特性,例如,下圖中可以看到Q-QPlot在左偏與右偏分配會呈現的樣子: 不同數值分配下的不同Q-QPlot(Source:MannyGimond) 但是,如果只給我們圖示下半部的Q-QPlot,要馬上看出究竟是什麼分配,好像不太直覺?筆者好豪在此與你分享快速用Q-QPlot判讀分配的小技巧: Q-QPlot中,脫離直線、形狀趨於水平的資料點,是資料分佈高峰所在地 左偏分佈的Q-QPlot(Source:好豪的GitHub) 雙峰型分佈的Q-QPlot(Source:好豪的GitHub) 常態分佈統計檢定 講了半天的Q-QPlot,它終究是個視覺化的方法,若是讀者覺得用看的不夠可靠,要檢驗常態分配還可以做統計檢定,常用的方法包括: Shapiro-WilktestKolmogorov-SmirnovtestAnderson-Darlingtest 這些統計檢定詳細的使用方法與R程式碼,可以參考吳漢銘老師的教學投影片。

結語 學會Q-QPlot後,比起單純用直方圖判斷鐘型曲線,我們有更強的視覺化方法可以看出數據是否為常態分配。

如果覺得視覺判斷不夠客觀,我們還能用統計檢定來檢驗常態性。

檢驗是否為常態分佈後,重點在於:如果不是常態分佈對資料分析會有什麼影響?資料不是常態分佈該怎麼辦?筆者未來會在另一篇文章繼續探討。

參考資料: R語言教材:R錦囊妙計好豪的GitHub:R語言Q-QPlot教學Youtube:StatQuestYouTube:張翔老師 如果你正在研讀統計學,推薦你繼續閱讀好豪的統計學知識分享: 二項式檢定與P-value解讀:《天堂M》手遊機率爭議案例學習圖解信賴區間,兩種常見的錯誤解讀 也歡迎追蹤好豪的Facebook粉絲專頁,我會持續努力分享統計學與資料科學知識! R語言統計學 推薦閱讀 在freeCodeCamp自學JavaScript 2020-07-18 R語言自學資源分享:從入門到資料科學實戰 2021-07-21 北極星指標:把「賺錢」從口號化為行動的橋樑 2021-03-02 多重檢定問題:一定會有人中樂透 2021-12-06 資料科學競賽,能獲得什麼? 2021-10-20 A/ATest:商業實驗不能忘的前置動作 2021-07-17 2021年Tomofun狗音辨識機器學習競賽,第10名作法分享 2021-08-17 最讚的PyTorch免費初學課程,由臉書AI團隊教學!—Udacit... 2020-12-03 A/BTesting:「偷看結果」將成為最大的錯誤 2020-08-22 2021年,外商資料科學家求職經驗分享 2021-12-29 關於好豪 嗨,我是好豪(*゚∀゚) 在科技業打滾的資料科學家,以部落格寫作記錄自己的知識焦慮,記下我看過的書、寫過的程式碼、以及數據分析工作的見聞。

Keepintouch Facebook Linkedin Github 歡迎追蹤粉專,獲得最新資訊 歡迎追蹤粉專,獲得最新資訊 最新文章 Pythondataclass教學:輕鬆定義資料類別 2022-04-04 因果推論簡介:A/BTesting行不通時怎麼辦? 2022-03-13 PythonPandas的MethodChaining教學,讓資料分析程式碼變好讀 2022-03-05 不是資工系能找機器學習工作嗎?跨領域面試經驗分享 2022-03-01 從《天堂M》手遊機率爭議學會二項式檢定與P-value解讀 2022-02-12 能創造真實成長的,只有輸出—《Output:最高學以致用法》 2022-02-03 分類 Podcast Python 吉他 商業思維 學習 學習技巧 投資理財 課程心得 讀書筆記 資料科學 雜談 音樂 搜尋 贊助 @2020-AllRightReserved.HaoSquare.com



請為這篇文章評分?