異常值分析是檢驗數(shù)據(jù)是否有錄入錯誤以及含有不合常理的數(shù)據(jù); 異常值是指樣本中的個別值,其數(shù)據(jù)明顯偏離其余的觀測值。 異常值也稱為離群點,異常值的分析也稱為離群點分析。 異常值通常被定義為小于Q1-1.5IQR或大于Q3+1.5IQR的值,但是也需要根據(jù)實際情況而定; 異常值處理一般步驟:異常值檢測、異常值篩選、異常值處理。 異常值檢測方法主要有:箱型圖、簡單統(tǒng)計量(比如觀察極(大/小)值),3σ原則。 異常值處理方法主要有:刪除法、插補(bǔ)法、替換法。 數(shù)據(jù)不一致:指數(shù)據(jù)的矛盾性、不相容性;在數(shù)據(jù)挖掘過程中,不一致數(shù)據(jù)的產(chǎn)生主要發(fā)生在數(shù)據(jù)集成的過程中,可能是由于被挖掘數(shù)據(jù)是來自于從不同的數(shù)據(jù)源、重復(fù)存放的數(shù)據(jù)未能進(jìn)行一致性地更新造成的。 1. 異常值檢驗 異常值大概包括缺失值、離群值、重復(fù)值,數(shù)據(jù)不一致。 (1) 基本函數(shù) summary可以顯示每個變量的缺失值數(shù)量。 (2) 缺失值檢驗 關(guān)于缺失值的檢測應(yīng)該包括:缺失值數(shù)量、缺失值比例、缺失值與完整值數(shù)據(jù)篩選。 #缺失值解決方案
(3) 箱型圖檢驗離群值 箱型圖的檢測包括:四分位數(shù)檢測(箱型圖自帶)+1δ標(biāo)準(zhǔn)差上下+異常值數(shù)據(jù)點。 箱型圖有一個非常好的地方是,boxplot之后,結(jié)果中會自帶異常值,就是下面代碼中的sp$out,這個是做箱型圖,按照上下邊界之外為異常值進(jìn)行判定的。 上下邊界,分別是Q3+(Q3-Q1)、Q1-(Q3-Q1)。
代碼中text函數(shù)的格式為text(x,label,y,col);points加入均值點;arrows加入均值上下1δ標(biāo)準(zhǔn)差范圍箭頭。 箱型圖還有等寬與等深分箱法。 (4) 數(shù)據(jù)去重 數(shù)據(jù)去重與數(shù)據(jù)分組合并存在一定區(qū)別,去重是純粹的所有變量都是重復(fù)的,而數(shù)據(jù)分組合并可能是因為一些主鍵的重復(fù)。 數(shù)據(jù)去重包括重復(fù)檢測(table、unique函數(shù))以及重復(fù)數(shù)據(jù)處理(unique/duplicated)。 常見的有unique、數(shù)據(jù)框中duplicated函數(shù),duplicated返回的是邏輯值。 2. 異常值處理 常見的異常值處理辦法是刪除法、替代法(連續(xù)變量均值替代、離散變量用眾數(shù)以及中位數(shù)替代)、插補(bǔ)法(回歸插補(bǔ)、多重插補(bǔ)); 除了直接刪除,可以先把異常值變成缺失值、然后進(jìn)行后續(xù)缺失值補(bǔ)齊。 實踐中,異常值處理,一般劃分為NA缺失值或者返回進(jìn)行數(shù)據(jù)修整(數(shù)據(jù)返修為主要方法)。
(1) 異常值識別 利用圖形——箱型圖進(jìn)行異常值檢測。 #異常值識別
代碼來自《R語言數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》第四節(jié)。 (2) 蓋帽法 整行替換數(shù)據(jù)框里99%以上和1%以下的點,將99%以上的點值=99%的點值;小于1%的點值=1%的點值。
(3) 噪聲數(shù)據(jù)處理——分箱法 將連續(xù)變量等級化后,不同分位數(shù)數(shù)據(jù)就會變成不同的等級數(shù)據(jù),連續(xù)變量離散化,消除了極值的影響。 分箱法:通過考察“鄰居”(周圍的值)來平滑存儲數(shù)據(jù)的值,用“箱的深度”表示不同的箱里有相同個數(shù)的數(shù)據(jù),用“箱的寬度”來表示每個箱值的取值區(qū)間。(不同平滑方法對數(shù)據(jù)整體的影響) 假設(shè)原始數(shù)據(jù)項:4, 8, 9, 15, 21, 21, 24, 25, 26,28, 29, 34 根據(jù)數(shù)據(jù)值順序,將數(shù)據(jù)分到相同等深等寬的“箱子里”: -箱子1:4, 8, 9, 15 -箱子2:21, 21, 24, 25 -箱子3:26, 28, 29, 34 數(shù)據(jù)平滑-均值: -箱子1:4, 4, 4, 4 -箱子2:23, 23, 23, 23 -箱子3:29, 29, 29, 29 數(shù)據(jù)平滑-邊界值: -箱子1:4, 4, 4, 15 -箱子2:21, 21, 25, 25 -箱子3:26, 26, 26, 34
(4) 異常值處理——均值替換 數(shù)據(jù)集分為缺失值、非缺失值兩塊內(nèi)容。缺失值處理如果是連續(xù)變量,可以選擇均值;離散變量,可以選擇眾數(shù)或者中位數(shù)。 計算非缺失值數(shù)據(jù)的均值,然后賦值給缺失值數(shù)據(jù)。
(5)異常值處理——回歸插補(bǔ)法
(6) 異常值處理——多重插補(bǔ)——mice包 注意:多重插補(bǔ)的處理有兩個要點:先刪除Y變量的缺失值然后插補(bǔ) 1) 被解釋變量有缺失值的觀測不能填補(bǔ),只能刪除,不能自己亂補(bǔ); 2) 只對放入模型的解釋變量進(jìn)行插補(bǔ)。 多重插補(bǔ)法步驟: 缺失數(shù)據(jù)集→MCMC估計插補(bǔ)成幾個數(shù)據(jù)集→每個數(shù)據(jù)集進(jìn)行插補(bǔ)建模(glm、lm模型)→將這些模型整合到一起(pool)→評價插補(bǔ)模型優(yōu)劣(模型系數(shù)的t統(tǒng)計量)→輸出完整數(shù)據(jù)集(compute) 步驟詳細(xì)介紹: 函數(shù)mice()首先從一個包含缺失數(shù)據(jù)的數(shù)據(jù)框開始,然后返回一個包含多個(默認(rèn)為5個)完整數(shù)據(jù)集的對象。每個完整數(shù)據(jù)集都是通過對原始數(shù)據(jù)框中的缺失數(shù)據(jù)進(jìn)行插補(bǔ)而生成的。由于插補(bǔ)有隨機(jī)的成分,因此每個完整數(shù)據(jù)集都略有不同。 其中,mice中使用決策樹cart有以下幾個要注意的地方:該方法只對數(shù)值變量進(jìn)行插補(bǔ),分類變量的缺失值保留,cart插補(bǔ)法一般不超過5k數(shù)據(jù)集。 然后, with()函數(shù)可依次對每個完整數(shù)據(jù)集應(yīng)用統(tǒng)計模型(如線性模型或廣義線性模型), 最后, pool()函數(shù)將這些單獨(dú)的分析結(jié)果整合為一組結(jié)果。最終模型的標(biāo)準(zhǔn)誤和p值都將準(zhǔn)確地反映出由于缺失值和多重插補(bǔ)而產(chǎn)生的不確定性。
結(jié)果解讀: 1)imp對象中,包含了:每個變量缺失值個數(shù)信息、每個變量插補(bǔ)方式(PMM,預(yù)測均值法常見)、插補(bǔ)的變量有哪些、預(yù)測變量矩陣(在矩陣中,行代表插補(bǔ)變量,列代表為插補(bǔ)提供信息的變量, 1和0分別表示使用和未使用);同時利用這個代碼imp$imp$sales 可以找到,每個插補(bǔ)數(shù)據(jù)集缺失值位置的數(shù)據(jù)補(bǔ)齊具體數(shù)值是啥。 2)with對象。插補(bǔ)模型可以多樣化,比如lm,glm都是可以直接應(yīng)用,見《R語言實戰(zhàn)》第十五章; 3)pool對象。summary之后,會出現(xiàn)lm模型系數(shù),如果出現(xiàn)系數(shù)不顯著,則需要考慮換插補(bǔ)模型; 4)complete對象。m個完整插補(bǔ)數(shù)據(jù)集,同時可以利用此函數(shù)輸出。 其他: mice包提供了一個很好的函數(shù)md.pattern(),用它可以對缺失數(shù)據(jù)的模式有個更好的理解。還有一些可視化的界面,通過VIM、箱型圖、lattice來展示缺失值情況??梢姴┛停涸?/span>R中填充缺失數(shù)據(jù)—mice包 3. 離群點檢測 離群點檢測與異常值主要的區(qū)別:異常值針對單一變量,而離群值指很多變量綜合考慮之后的異常值。 下面介紹一種基于聚類+歐氏距離的離群點檢測方法。 基于聚類的離群點檢測:數(shù)據(jù)標(biāo)準(zhǔn)化——聚類——求每一類每一指標(biāo)的均值點——每一類每一指標(biāo)生成一個矩陣——計算歐式距離——畫圖判斷。
·END· 超乎想象的體驗 |
|