R語言用ARIMA模型滑動時間窗口識別網(wǎng)絡(luò)流量時間序列異常值
全文鏈接:http://tecdat.cn/?p=30597
原文出處:拓端數(shù)據(jù)部落公眾號
最近我們被要求解決時間序列異常檢驗的問題。有客戶在使用大量的時間序列。這些時間序列基本上是每10分鐘進(jìn)行一次的網(wǎng)絡(luò)測量,其中一些是周期性的(即帶寬),而另一些則不是(即路由流量)。
他想要一個簡單的算法來進(jìn)行在線“異常值檢測”?;旧?,想將每個時間序列的整個歷史數(shù)據(jù)保存在內(nèi)存(或磁盤上),并且想檢測實時場景中的任何異常值(每次捕獲新樣本時)。實現(xiàn)這些結(jié)果的最佳方法是什么?
目前正在使用移動平均線來消除一些噪音,但接下來呢?簡單的事情,如標(biāo)準(zhǔn)差,...針對整個數(shù)據(jù)集效果不佳(不能假設(shè)時間序列是平穩(wěn)的),想要更“準(zhǔn)確”的東西,理想情況下是黑匣子。我們提出一些方案,例如:
將查找時間序列異常值(并選擇性地在圖中顯示它們)。它將處理季節(jié)性和非季節(jié)性時間序列?;舅枷胧钦业节厔莺图竟?jié)性成分的可靠估計并減去它們。然后找出殘差中的異常值。殘差異常值的檢驗與標(biāo)準(zhǔn)箱線圖的檢驗相同 - 大于或低于上下四分位數(shù)的點大于1.5IQR 是假定的異常值。高于/低于這些閾值的 IQR 數(shù)量作為異常值“分?jǐn)?shù)”返回。因此,分?jǐn)?shù)可以是任何正數(shù),對于非異常值,分?jǐn)?shù)將為零。
異常值檢測取決于數(shù)據(jù)的性質(zhì)以及您愿意對它們做出的假設(shè)。?通用方法依賴于可靠的統(tǒng)計信息。這種方法的精神是以不受任何異常值影響的方式表征大部分?jǐn)?shù)據(jù),然后指出不符合該特征的任何單個值。
由于這是一個時間序列,因此增加了需要持續(xù)(重新)檢測異常值的復(fù)雜性。如果要在系列展開時執(zhí)行此操作,那么我們只能使用舊數(shù)據(jù)進(jìn)行檢測,而不能使用未來的數(shù)據(jù)。此外,為了防止許多重復(fù)測試,我們使用一種誤報率非常低的方法。
這些注意事項建議對數(shù)據(jù)運(yùn)行簡單、可靠的移動窗口異常值測試。有很多可能性,但一種簡單、易于理解和易于實現(xiàn)的是基于運(yùn)行ARIMA:與中位數(shù)的中位數(shù)絕對偏差。這是數(shù)據(jù)中變異的強(qiáng)穩(wěn)健度量,類似于標(biāo)準(zhǔn)差。離群峰將比中位數(shù)大幾個ARIMA或更多。
讀取數(shù)據(jù)
data1=read.table("正常數(shù)據(jù).txt")data2=read.table("異常數(shù)據(jù).txt")data3=read.table("異常數(shù)據(jù)第二組.txt")#查看數(shù)據(jù)head(data1)
head(data2)
head(data3)
繪制時間序列圖
plot.ts(data1)


臨時變化的離群值
在識別異常值和建議一個合適的ARIMA模型方面做得很好。見下面應(yīng)用auto.arima。

擬合arima模型,得出最優(yōu)參數(shù)
fit=auto.arima(data1,trace=T)
Fit


得出最優(yōu)的arima模型p=1 q=1

將數(shù)據(jù)轉(zhuǎn)換成time series格式
使用函數(shù)檢測異常點 參數(shù)比照上面autorima得出的參數(shù)p=1 q=1
to(tsmethod = "auto.arima"????????????????? ,argethod=list( stepwise=FALSE )) ? ? ? ? ? ? ? ? ?#設(shè)置環(huán)境參數(shù) 時間窗口和異常點范圍閾值window <- 30
threshold <- 3#求出中位數(shù)幾倍范圍之外的樣本點作為異常點ut <- function(x) {m = median(x);?median(x) + threshold * median(abs(x - m))
}#移動時間窗口查看時間序列中的符合條件的時間點?
z <- rollaly(zoo(data2))
找出data2中符合條件的時間點作為異常序列?


最受歡迎的見解
1.在python中使用lstm和pytorch進(jìn)行時間序列預(yù)測
2.python中利用長短期記憶模型lstm進(jìn)行時間序列預(yù)測分析
3.Python用RNN循環(huán)神經(jīng)網(wǎng)絡(luò):LSTM長期記憶、GRU門循環(huán)單元、回歸和ARIMA對COVID-19新冠疫情新增人數(shù)時間序列
4.Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測股票市場價格時間序列和MSE評估準(zhǔn)確性
5.r語言copulas和金融時間序列案例
6.R 語言用RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長短期記憶網(wǎng)絡(luò)實現(xiàn)時間序列長期利率預(yù)測
7.Matlab創(chuàng)建向量自回歸(VAR)模型分析消費(fèi)者價格指數(shù) (CPI) 和失業(yè)率時間序列
8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類
9.R語言結(jié)合新冠疫情COVID-19股票價格預(yù)測:ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時間序列分析