箱線圖又稱箱形圖或盒須圖,主要從四分位數的角度來描述數據的分布。一個箱線圖由上邊緣線、上四分位數(QU)、中位數(me),下四分位數(QL)和下邊緣線組成。
上、下四分位數之差稱為四分位差,或內距或四分位數間距,記為IQR:
IQR = QU - QL
箱線圖中盒子的上、下線分別是上、下四分位數,盒子中間的線是中位數。由觸須延長的上、下邊緣線分別為:
上邊緣線的值 = QU + 1.5 IQR下邊緣線的值 = QL - 1.5 IQR
也有用數據的極大值和極小值來表示上下邊緣線的值的(但使用這種表示上下邊緣的方法無法檢測異常值)。
一個箱線圖的形式如下圖所示:
箱形圖為我們提供了識別異常值的一個標準:異常值被定義為小于QL-1.5IQR或大于QU+1.5IQR的值。雖然這種標準有點任意性,但它來源于經驗判斷,經驗表明它在處理需要特別注意的數據方面表現不錯。這與識別異常值的經典方法有些不同。眾所周知,基于正態分布的3σ法則或z分數方法是以假定數據服從正態分布為前提的,但實際數據往往并不嚴格服從正態分布。它們判斷異常值的標準是以計算數據批的均值和標準差為基礎的,而均值和標準差的耐抗性極小,異常值本身會對它們產生較大影響,這樣產生的異常值個數不會多于總數0.7%。顯然,應用這種方法于非正態分布數據中判斷異常值,其有效性是有限的。
箱形圖的繪制依靠實際數據,不需要事先假定數據服從特定的分布形式,沒有對數據作任何限制性要求,它只是真實直觀地表現數據形狀的本來面貌;另一方面,箱形圖判斷異常值的標準以四分位數和四分位距為基礎,四分位數具有一定的耐抗性,多達25%的數據可以變得任意遠而不會很大地擾動四分位數,所以異常值不能對這個標準施加影響,箱形圖識別異常值的結果比較客觀。由此可見,箱形圖在識別異常值方面有一定的優越性。(以上兩段來自百度百科-箱形圖)
在R語言中繪制箱線圖使用boxplot函數,該函數的使用方法,可以參見本站《R語言中繪制箱線圖》。
我們仍然使用《標準分數法檢測數據的異常值及在R語言中的實現方法》這篇文章中的例子。數據存儲在文本文件中(下載數據:點擊下載此文件),數據存儲格式如下圖所示:
編寫R語言:
x <- scan("birthWeight.txt") # 定義變量X讀取數據
names(x) <- 1 : length(x) # 給每個數據編號
boxplot(x) # 繪制箱線圖
out.vals = boxplot(x)$out # 獲取異常值信息
print(out.vals) # 輸出異常值信息
for( i in out.vals) # 在圖上標注異常點的值
{
text(i, adj = -0.2, labels = i)
}
輸出結果及繪圖結果如下面靚圖所示:
從輸出結果可以看出,編號為1和6的兩個數據為異常點。
從繪圖結果來看,有兩個點屬于異常點,其位于箱線圖下邊緣線以下,屬于異常小離群點,圖中也標注了其具體的值為1740和960。
新聞熱點
疑難解答