在一個早期的博文 ,我們考慮清理類別中的髒數據。這一次,我們考慮以連續列的異常值的形式清理臟數據。
在工業中,將大多數值放在一個狹窄的範圍內(例如在.1和.7之間)並且有一些值遠遠超出該範圍(例如99,這是缺失的值代碼)並不罕見。一些最常見的異常值例子包括:
•缺少值代碼,通常是9s的字符串。
•顯然是錯誤編碼的,手動輸入的值,尤其是小數點放錯位置時。
•儀器故障,導致儀器故障代碼插入數據所在的位置。
•異常事件,例如導致電流浪湧或電壓驟降的電氣短路。
•長尾分佈,例如失效時間分佈,其中大值可能很少,但卻是真實的。
•污染異常值,其中一些物品已經悄悄進入一系列被認為是乾淨的物品。
如果我們只有幾列可供探索和清理,那麼手動完成它是合理的。但是,有數十個或數千個列,您需要一些幫助。Cols-> Modeling Utilities中的“Explore Outliers”工具是一種新的工具。
最簡單的方法是獲得一些尾部分位數,然後測量超出尾部分位數的一些等量範圍的比例。該 ANSUR Anthopometry數據提供一個很好的例證;它測量了3,982個人的131個身體測量值。在分析此數據之前,您需要首先檢查並了解異常值。
對於每個選定的變量,“探索異常值”首先計算10%和90%的分位數,以確定對大多數數據范圍的良好估計。如果存在大量的關係,意味著10%和90%的分位數是相同的,則實用程序進一步到達尾部以獲得值。然後它將等間距範圍乘以3(默認的'Q'縮放因子),並查找距離10%和90%分位數更遠的任何值,而不是等間距範圍的三倍。這是一個非常極端的默認異常值選擇標準,但您可能最感興趣的是最偏遠的異常值,至少在開始時是這樣。您可以稍後調整分位數和乘數以使其更敏感。
ANSUR數據的默認掃描顯示兩列值為-999,超過10%和90%尾部的三個等間距範圍。在這種情況下,很明顯它們是缺失值代碼,而不是真實數據。
由於其他129個變量沒有顯示異常值,我們可以通過選中“僅顯示具有異常值的列”來更輕鬆地關注所做的列。在顯示中選擇這些列將選擇數據表中的列。
接下來,我們需要確定採取哪些措施來解決這些異常值。有六個動作按鈕。您可以選擇行,並使用Rows命令“Next Selected”將數據表視圖前進到每個選定的行。您可以為行著色以強調該行具有異常值。您可以在瀏覽數據表時為單元格著色以使它們脫穎而出,如下所示。您還可以排除行以將其從分析中恢復。

在這種情況下,由於異常值實際上表示缺少數據,因此剩餘的兩個操作提供了明顯的選擇:單擊“添加到缺失值代碼”,為該列安裝“缺失值代碼”列屬性,或單擊“更改”丟失“,將其更改為硬件(NAN)缺失值 JMP 總是認為是失踪。如果存在多個具有不同含義的缺失值代碼,則可能需要使用前一個按鈕。

我們還檢查高九,因為它們通常用作缺失值代碼,但所有高九都離數據的上尾不遠,因此不太可能代表缺失值。
有時異常值在多變量意義上是偏離的,這意味著它們可能在每列的分位數範圍內很好,但數據是聚類的,有些點遠離其他點。以Fisher的虹膜數據為例,我們發現實際上有三個簇,代表三個物種。因為物種分佈很廣,所以有很多近空的空間,其中異常值可以遠離所有其他點,即使不是單變量異常值。我們有k最近鄰設施來找到這些異常值。對於每個點,它會找到該點到最近點的距離,第二個最近點,第三個最近點,依此類推。在這裡,我們確定一個遠離最近點的點。

如果我們在Scatterplot Matrix中查看這一點,我們會發現它在任何單個坐標中並不罕見,但它遠離其他點。考慮到其相對於花瓣長度和花瓣寬度的位置,它在Sepal寬度上很遠。我們碰巧知道這些星團的身份,而不尋常的特徵是它的萼片寬度與其物種中的其他萼片相比非常低。

要繼續,我們可能會有多個異常值,即距離最近鄰居不遠但距離數據較遠的那些點。這是每個點與其第三個近鄰點的距離。

如果您查看兩個藍色k = 3異常值的散點圖矩陣,您會看到它們彼此靠近,但與其他點分開,側重於Sepal長度散點圖的Sepal寬度。

因此,可以探索多變量異常值並考慮辨別正在發生的事情。k-最近意義上的異常值可能發生在污染情況下,例如,如果來自完全獨立物種的虹膜混入並且在Fisher Iris數據中被錯誤識別。
關於異常值的處理取決於具體情況,但有些行動是明確的。如果缺少值代碼,則應添加缺失值代碼屬性,以便分析平台將其視為缺失。如果您有一個錯位的小數點,如果是明顯的情況,您應該更正它,或者如果不清楚則將其更改為缺失值。
有時找到異常值可能會帶來重要的發現。它們不應該被自動地視為不適合的污垢。
該主題也在其中得到了解決以前的博文 。
注意: 這是一部分大統計 John Sall撰寫的一系列博客文章。讀完他的全部內容大統計帖子 。