歡迎來到我關於 Outliers 的第二篇博客文章。 在這一集中,我將研究使用分位數範圍來檢測異常值。
在第 1 集中,我們著眼於描述和視覺識別異常值。 您可能還記得,在一些簡單的一維(或單變量)情況下,我們需要識別異常值。 這些是最容易識別的,分位數範圍是尋找它們的絕佳方法。
對於多維異常值檢測,您將不得不等待我的下一篇文章!
什麼是分位數?
分位數非常容易理解。 假設我們有一系列 20 個數字。 我們可以將數字從最低到最高排序。 然後,我們可以將這些點分組為分位數,這些分位數由排序數據中的切點標識,這些切點描述了 X% 的數據低於該點的點。
請注意,分位數通常表示為分數(從 0 到 1)。 它們完全對應於百分位數,範圍從 0 到 100。 在這篇文章中,我將交替使用這些。
圖 1 顯示了排序前後的 20 個數字,以及 0.20 和 0.50 分位數(或 20日和 50日百分位數)。
Figure 1: Data from 20 point sample, random order and sorted圖 1:來自 20 個樣本的數據,隨機順序和排序
50的切入點日百分位數是樣本的中位數。 (在這種情況下,中位數在數值上為 32.5,即 40 和 25 之間的中點。)
其他一些有趣的定義包括:
- 四分位數,將數據分成 25% 的組。 第一個四分位數代表落在最低 25% 的數據點,第二個四分位數代表落在 25% 和 50% 之間的數據點,依此類推。
- 四分位數範圍或 IQR,它定義了 2 所涵蓋的範圍nd和 3路四分位數。
請注意,在談論分位數時,沒有對分佈形狀做出任何假設。
JMP 中的分位數計算在哪裡?
您可以在以下三個位置找到列出的分位數JMP . Distribution 平台和 Graph Builder 都使用相同的計算。 探索離群值/分位數範圍離群值在離群值敏感性方面為用戶提供了更大的靈活性。 讓我們逐一看看。
分銷平台
在 Distribution 中,所有連續/數字數據直方圖都包含表格分位數摘要。 默認情況下,JMP 顯示幾個感興趣的分位數。 在圖 1 中標記為 Original Data 的列上使用 Distribution 平台給出以下輸出:

圖 2 的中間表格顯示了幾個常見的分位數。 您可以通過選擇紅色熱點並選擇顯示選項,然後設置分位數增量或自定義分位數來更改此表中顯示的分位數。
圖 2 中還顯示了盒須圖。 圖中顯示的符號在圖 2 中進行了註釋。
鬍鬚的末端對檢測異常值最感興趣。 請注意,鬍鬚長度是根據四分位數範圍的最小值和最大值測量的,並且鬍鬚在該範圍 1.5 倍以內的最後一個數據點處結束。 這是異常值檢測的通用經驗法則。 落在這些晶須之外的點可能值得進一步研究。
但在圖 1 和圖 2 所示的數據集中,該技術沒有檢測到異常值。 這並不少見,尤其是在樣本量較小的情況下。
圖 3 顯示了我之前博客文章中 1,000 個示例數據的分發平台輸出。 這些樣本取自隨機正態分佈,均值為 0.0,標準差為 1.0。 我還包括了 X1=4 處的點,它在我之前的帖子中被視覺識別為異常值:
Figure 3: Distribution platform output for 1,000 point sample from normal distribution圖 3:1,000 個正態分佈樣本的分佈平台輸出
隨著樣本量的增加,一些點現在似乎是異常值(至少由鬍鬚末端定義)。 在這種特殊情況下,由於我們知道數據來自具有 1,000 個點的正態分佈總體,因此看到至少一個值為 4 的點可能並不少見。 在現實世界中,鬍鬚之外的點可能需要額外調查。
在 Graph Builder 中製作箱形圖和晶須圖
您還可以在圖形生成器中生成盒須圖。 整個 Graph Builder 設置如圖 4 所示:
Figure 4: Graph Builder setup for Box & Whisker plot (1,000 point sample from normal distribution)圖 4:盒須圖的圖形生成器設置(來自正態分佈的 1,000 個點樣本)
請注意圖表上方的圖表類型圖標(紅色圓圈),它啟用了 Box & Whisker 繪圖類型。
與 Distribution 平台一樣,晶須長度為 1.5* 四分位數範圍,並從 25日百分位和從 75日百分位數。
探索異常值
如果我們想選擇其他晶須限制怎麼辦?
如上所述,1.5*IQR 的晶須長度是識別異常值的常見做法。 我相信這可能來自於觀察大樣本正態分佈。 超出四分位數範圍的 1.5*IQR 可以顯示包含 99.30% 的正態分佈(在每個尾部留下 0.3488% 的數據)。 這將確定一個相對罕見的事件——如果你有正態分佈。
但是,如果您沒有正態分佈怎麼辦? 如果分佈看起來像這樣怎麼辦?
Figure 5: Skewed distribution圖 5:偏態分佈
圖 5 顯示了 N=100 點的偏態分佈,根據 1.5*IQR 方法,在上須線之外有五個異常值。 但是 X1=3 處的點真的是異常值嗎? 或者可能還有其他點被鬍鬚隱藏,需要進行離群值調查。 我們如何調整這個 1.5*IQR 規則?
JMP 允許您在 Analyze/Screening/Explore Outliers 下執行此操作,然後選擇 Quantile Range Outliers 選項。 調出此選項會出現下面所示的輸入屏幕,用於圖 5 中總結的 100 點樣本。
Figure 6: Quantile Range Outliers user interface and sample output圖 6:分位數範圍異常值用戶界面和示例輸出
“分位數範圍異常值”面板有兩個主要輸入:
- 尾分位數 (TQ)。 該分數描述了將用於晶須計算的分佈中的最小分割點。 (1-尾分位數)描述分佈中的上切點。 這些切點之間的差異描述了後續計算中使用的範圍。
- 對於前面描述的 IQR 計算,尾分位數將為 0.25,表示晶須將從 25日和 75日百分位數,範圍將是四分位間距(或 75日-25日百分位數)。
- 分位數範圍離群值中尾部分位數的默認值為 0.1,表示鬍鬚將從 10日和 90日百分位數,長度取決於(90日-10日百分位數)範圍。
- 問。 這是用於確定晶須長度的乘數。
- 在之前的 IQR 計算中,這是 1.5,因此四分位數間距乘以 1.5 得到晶須長度。
- Quantile Range Outliers 中 Q 的默認值為 3,表示晶須長度將由 (90日-10日百分位數)範圍乘以 3。
分位數範圍離群值的輸出顯示在圖 6 面板的底部。 在這裡我們看到列 X1 有一個 10日百分位數為 -1.283,以及 90日百分位數為 1.65556。 晶須的末端(在輸出中標記為低閾值和高閾值 [分別為 LT 和 HT])基於以下計算:
長期 = 10日分位數 - (90日分位數 - 10日分位數)* Q
= -1.283 – (1.65556 – -1.283) * 3
= -10.099
HT = 90日分位數 + (90日分位數 - 10日分位數)* Q
= 1.65556 + (1.65556 – -1.283) * 3
= 10.4713
在這種情況下,該列中只有一個值超出高閾值,值為 12.0,顯示在圖 6 所示報告的底部。
對尾分位數和 Q 的敏感性
離群值檢測靈敏度顯然受尾分位數和 Q 的值控制。 傳統的 1.5*IQR 和 3*(90日-10日分位數)方法都是可以接受的,前者對檢測異常值更為敏感。 您可以使用“分位數範圍離群值”平台根據特定情況的需要調整這些值。
雖然選擇尾分位數和 Q 的有效性取決於您的特定分佈,但我們可以通過查看正態分佈來深入了解它們的行為。 下表顯示了尾部分位數和 Q 的幾種組合,以及正態分佈尾部值落在晶須之外的百分比:
Table 1: Percent of outliers detected in large sample normal distribution for various values of tail quantile and Q表 1:在大樣本正態分佈中針對尾分位數和 Q 的各種值檢測到的離群值百分比
擴展這個想法,我們可以創建一個等高線圖,顯示表 1 中數量的更完整圖片:
Figure 7: Percent of outliers detected in large sample normal distribution for various values of Tail Quantile and Q圖 7:在尾分位數和 Q 的各種值的大樣本正態分佈中檢測到的離群值百分比
圖 7 清楚地表明,高尾分位數和低 Q 值的組合使計算對異常值更加敏感,而低 TQ 值和高 Q 使我們不那麼敏感。
下一集
下次我們再討論馬氏距離,用於檢測多個維度的異常值。
查看本系列中的所有帖子了解異常值.
你好@傑瑞魚, 感謝您的答复。
感謝您的回复。 你說得對,我不應該完全拋棄它們,而是真正調查這些異常值在說什麼。
我猜我太在意確保我的 K-Means 聚類沒有負 CCC 值,因此急於盡可能多地刪除異常值。
理解你上面的觀點,它們真的很有用。 謝謝!
你好@瘋狼, 感謝發帖。
你會發現 Distribution 平台使用的是 1.5*IRQ 方法,而 Analyze/Screening/Explore Outliers 默認使用 3*(90th-10th quantile) 方法。兩者都是幫助識別異常值的合法方法。
請記住,此類工具旨在識別“潛在”異常值。因此,他們只是助手。您可以嘗試兩種方法,看看結果是否不同。如果異常值被識別(以任何一種方法),我會警告他們仍然應該被調查,而不是簡單地立即被丟棄。數據可能試圖告訴你一些重要的事情!所以在丟棄異常值時要謹慎。
在我看來,這兩種方法中的任何一種都會捕捉到“非常糟糕”的異常值。如果你讀我的第三篇博文在 Mahalanobis 距離和我(即將發布的)關於折刀距離的第 4 篇博文中,您會找到更多方法來幫助識別本文中討論的棘手情況下的異常值。
祝你好運!
你好呀,
感謝這篇文章。 這對我來說非常有見地。
你提到:“傳統的 1.5*IQR 和 3*(90日-10日分位數)方法都是可以接受的”
我如何知道我應該選擇傳統的 1.5*IQR 還是 3*(第 90-10 分位數),後者是 JMP 的默認值?
此外,我是否繼續掃描並排除異常值,直到最終掃描顯示我不再存在異常值?
好貼。 1.5 x IQR 有時被稱為“步長”,離群值可以確定為上四分位數加一個步長或下四分位數減 1 個步長;更嚴格的方法可能是使用“2 個步長”+/- 各自的上/較低的四分位數以識別“遠異常值”。
但是,當分佈偏斜時,您聲明的第二種方法通過處理 90 和 10 個百分點而不是 75 和 25 個百分點來擴展遠離群值定義(使用 2 個步驟)。