箱線圖(boxplot)簡介與舉例



簡述:

  盒圖是在1977年由美國的統計學家約翰·圖基(John Tukey)發明的。它由五個數值點組成:最小值(min),下四分位數(Q1),中位數(median),上四分位數(Q3),最大值(max)。也可以往盒圖里面加入平均值(mean)。如下圖。下四分位數、中位數、上四分位數組成一個“帶有隔間的盒子”。上四分位數到最大值之間建立一條延伸線,這個延伸線成為“胡須(whisker)”。

  由於現實數據中總是存在各式各樣地“臟數據”,也成為“離群點”,於是為了不因這些少數的離群數據導致整體特征的偏移,將這些離群點單獨匯出,而盒圖中的胡須的兩級修改成最小觀測值與最大觀測值。這里有個經驗,就是最大(最小)觀測值設置為與四分位數值間距離為1.5個IQR(中間四分位數極差)。即:

 

IQR = Q3-Q1,即上四分位數與下四分位數之間的差,也就是盒子的長度。

  • 最小觀測值為min = Q1 - 1.5*IQR,如果存在離群點小於最小觀測值,則胡須下限為最小觀測值,離群點單獨以點匯出。如果沒有比最小觀測值小的數,則胡須下限為最小值。
  • 最大觀測值為max = Q3 -1.5*IQR,如果存在離群點大於最大觀測值,則胡須上限為最大觀測值,離群點單獨以點匯出。如果沒有比最大觀測值大的數,則胡須上限為最大值。
通過盒圖,在分析數據的時候,盒圖能夠有效地幫助我們識別數據的特征:
  1.  直觀地識別數據集中的異常值(查看離群點)。
  2.  判斷數據集的數據離散程度和偏向(觀察盒子的長度,上下隔間的形狀,以及胡須的長度)。

實例:

12位商學院畢業生月起薪的樣本在這里按升序重復如下。

  2710 2755 2850 | 2880 2880 2890 | 2920 2940 2950 | 3050 3130 3325

  Q1 = 2865 Q2 = 2905(中位數) Q3 = 3000

  中位數是2 905,第一個四分位數Q1 = 2865,第三個四分位數Q3 = 3000。檢查這些數據,最小值為2710,最大值為3325。因此,薪水數據的五數概括數據為2710、2865、2905、3000、3325。大約1/4或25%的觀察值在五數概括的相鄰兩個數字之間。

  箱線圖是在五數概括的基礎上對數據進行描述的圖形方法。繪制箱線圖的關鍵是計算中位數、四分位數Q1Q3。也可以使用四分位數全距IQR = Q3Q1。圖1是月起薪數據的箱線圖。

  繪制箱線圖的步驟如下:

  1.畫一只箱子,箱子兩端分別位於第一個和第三個四分位數上。對於薪水數據來說,Q1 = 2865以及Q3 = 3000。這個箱子包括中間50%的數據。

  2.在箱子中位數(薪水數據是2905)的位置畫一條垂直線。

  3.用四分位數全距IQR = Q3Q1,確定限制線的位置。箱線圖的上、下限制線分別在比Q1低1.5(IQR)和比Q3高1.5(IQR)的位置上。對於薪水數據來說,IQR = Q3Q1 = 3000 − 2865 = 135。因此,限制線的位置在2865 − 1.5(135) = 2662.5和3000 + 1.5(135) = 3202.5處。兩條限制線以外的數據可以認為是異常值。

  4.圖1中的虛線稱為觸須線。觸須線從箱子兩端開始繪制,直至第3步中計算的限制線內的最小值和最大值。因此,薪水數據的觸須線分別在2 710和3 130處結束。

  5.最后,每個異常值的位置都用星號“*”表示出來。在圖1中,我們可以看到一個異常值,即3325。

  Image:圖1 起薪數據帶有上下限制線的箱線圖.jpg

  在圖1中,我們畫出了表示上下界限位置的直線。畫這些線是為了說明如何計算薪水數據的限制線並標出其位置。雖然限制線通常要計算出來,但是在箱線圖中一般並不標示出來。圖2顯示了薪水數據的常見箱線圖的形狀。

  Image:圖2 起薪數據的箱線圖.jpg

seaborn(sns)調用舉例:

import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
# 繪制箱線圖
ax = sns.boxplot(x=tips["total_bill"])
# 豎着放的箱線圖,也就是將x換成y
ax = sns.boxplot(y=tips["total_bill"])

 

Ref:

1.盒圖(boxplot): http://www.blogjava.net/norvid/articles/317235.html

2. 箱線圖: http://wiki.mbalib.com/wiki/%E7%AE%B1%E7%BA%BF%E5%9B%BE#_ref-1

3. Seaborn(sns)官方文檔學習筆記(第五章 分類數據的繪制) https://zhuanlan.zhihu.com/p/27683042

4. python seaborn畫圖 : http://blog.csdn.net/suzyu12345/article/details/69029106


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM