就要單獨(dú)一個(gè)變量進(jìn)行異常值檢驗(yàn)的話,以前有次聽統(tǒng)計(jì)建模講座,那老師說到過用一個(gè)箱線圖還是盒圖什么的來衡量異常值,好像是用spss實(shí)現(xiàn)的,忘了是2倍還是4倍標(biāo)準(zhǔn)差之外的的就算異常值。
這個(gè)異常值的問題老師沒說怎么處理。
我自己的經(jīng)驗(yàn)和想法是插值,而插值的方法有很多種比如平均數(shù)插值、線性插值、曲線性插值、二次/三次樣條插值、模型擬合插值和生成隨機(jī)數(shù)法。總體的思想就是平均或者模型估計(jì)。
這里簡(jiǎn)單說一下我個(gè)人的經(jīng)驗(yàn)性的理解。
【這些方法用的時(shí)候大多數(shù)都要把異常值刪去,但把他的空缺位置保留,而不是刪去這個(gè)異常樣本】
平均數(shù)插值:就是用該變量所有的樣本求出一個(gè)平均值,然后替代那個(gè)異常值。這個(gè)方法也用來處理缺失值。但問題在于某些變量本身就是有趨勢(shì)的,比如遞增或者遞減,如果用這種平均的方法來替代異常值或者缺失值,則本身就成為了違反趨勢(shì)的異常值了,這顯然不好用,把數(shù)據(jù)拿出去給別人看,人家做個(gè)圖就會(huì)覺得你數(shù)據(jù)有問題,直接就否定你的論文了。而且還有一個(gè),樣本中出現(xiàn)少量的平均值還好,如果平均值太多,數(shù)據(jù)的隨機(jī)性就減弱了,數(shù)據(jù)的質(zhì)量同樣下降了。
平均值還有一種方法,就是前后幾個(gè)數(shù)據(jù)求平均的方法,這種方法就是用來對(duì)付那些有趨勢(shì)的變量。具體來說就是比如第4個(gè)數(shù)據(jù)是離群值或者缺失值,就可以用第3個(gè)、第5個(gè)(我稱每使用前后多少個(gè)數(shù)值為步長(zhǎng),這里前后一個(gè)數(shù)值,所以步長(zhǎng)為1)數(shù)據(jù)的平均值替代第4個(gè)數(shù)據(jù),或者用第1、2、3、5、6、7個(gè)數(shù)據(jù)(這里前后三個(gè)數(shù)值,所以我稱其步長(zhǎng)為3)的平均值來替代第4個(gè)值,這樣融合的前后的數(shù)值,能夠體現(xiàn)出趨勢(shì)。但前后選多少步長(zhǎng)是個(gè)值得考慮的問題,從我個(gè)人的體驗(yàn)來說,我的建議是步長(zhǎng)為2到4比較合適,太短顯得數(shù)據(jù)處理技術(shù)不夠(呵呵。。。。),太長(zhǎng)可能導(dǎo)致數(shù)據(jù)被過度平滑,成為偏離趨勢(shì)的離群值。
線性插值:顧名思義,就是線性擬合插值,這個(gè)適合有趨勢(shì)的,而且變量的數(shù)據(jù)趨勢(shì)是直線的。方法就是把數(shù)據(jù)(異常值刪去,但保留其空位,自變量是1、2、3......或者年份1978、1979....,被解釋變量就是你的那個(gè)要處理的變量)用最小二乘法擬合出一個(gè)線性方程,然后用異常值所對(duì)應(yīng)的自變量(比如第5個(gè)為異常值或者缺失值,對(duì)應(yīng)的自變量就是5)代入帶你求出來的那個(gè)線性方程,這樣得到的數(shù)值可以用來替代那個(gè)缺失值或者異常值。
曲線插值:就是針對(duì)線性插值的。有些變量的數(shù)值有趨勢(shì),但不是線性的,即圖形出來不是直線,而是轉(zhuǎn)彎的甚至拐好幾個(gè)彎的那種(我去。。。。),這時(shí)候就可以按照線性插值的方法擬合曲線模型來估計(jì)缺失值或者異常值大概的數(shù)值。這個(gè)最好用的就是SPSS了,里面有個(gè)專門的模型擬合模塊,大概有10種左右的模型任你挑。建議的挑選步驟是先全選所有的模型,然后全部擬合出來,看R方,R方越高擬合優(yōu)度越好(其實(shí)不用我說的。。。),挑擬合優(yōu)度最高的那個(gè)模型,然后把缺失值或者異常值對(duì)應(yīng)的自變量(編號(hào)或者年份)代入那個(gè)模型,然后就可以填補(bǔ)缺失值或者異常值了。
二次/三次樣條插值:這個(gè)東西是在固定收益證券里的看到的,里面講利率期限結(jié)構(gòu)的問題,說怎么擬合利率期限結(jié)構(gòu)圖;舅枷胧菙M合二次或者三次曲線方程,但由于數(shù)據(jù)存在斷點(diǎn)(這里可以理解為缺失值或者異常值),擬合出來的曲線是不連續(xù)、連接點(diǎn)是不可導(dǎo)的(好高端的樣子。。。。。)于是就通過某種高端的計(jì)算方法(我忘了。。。我也不會(huì)。。。?赡苁敲商乜寤蛘遙ootstrap還是什么搜索方法)求連接點(diǎn)的數(shù)值,讓曲線連續(xù)且可導(dǎo)。我這里就提供個(gè)思路哈,詳情我也不懂。。。。。。這個(gè)樣條插值法最優(yōu)的是三次樣條插值。
模型擬合插值:某些數(shù)據(jù)的量可能很大,隨機(jī)性很高,同時(shí)可以含有趨勢(shì),那么這個(gè)時(shí)候計(jì)量里的自回歸模型就可以用了,MA/AR/ARIMA/GARCH隨便嘗試(有技術(shù),任性!呵呵。。。),然后挑個(gè)擬合優(yōu)度最高的,然后求出異常值或者異常值的估計(jì)值。
生成隨機(jī)數(shù)法:這個(gè)。。。。呃。。。。用的少。。。基本方法就是針對(duì)那些隨機(jī)性很高、沒有趨勢(shì)、服從某種分布的變量。先作圖或者用某個(gè)軟件(我不知道用啥。。。)找出該變量的分布和參數(shù)(如均值方差之類的),然后采用生成隨機(jī)數(shù)的方式隨機(jī)生成數(shù)值,填補(bǔ)替代缺失值或者異常值。
當(dāng)然,一些數(shù)學(xué)方法也可以用來擬合,比如模糊灰度啥的、遺傳算法之類的(我不懂哈,只是見過有用來做預(yù)測(cè)和擬合的。。。)
上面這些方法可以綜合運(yùn)用,比如某個(gè)變量前面一段是直線,后面一段是曲線,就可以先用直線擬合前面那一段,后用曲線擬合后面那一段,從而求出估計(jì)值;比如前面那一段有一定的趨勢(shì)和隨機(jī)性,后面那一段則完全隨機(jī),就可以前面那一段用自回歸模型,后面那一段用隨機(jī)生成的方法。
而聯(lián)合所有檢驗(yàn)異常值的話,我在最近的MATLAB課上聽老師說,先建立回歸模型,然后看殘差,如果哪個(gè)點(diǎn)或說樣本的殘差明顯離群那么這個(gè)樣本就是離群值(如圖所示),處理方法老師說的是刪除該樣本。
以上純屬個(gè)人經(jīng)驗(yàn)和理解,歡迎討論,請(qǐng)勿拍磚!層主碼這么多字也不容易。。。。
|