時間序列異常檢測算法S-H-ESD


1. 基於統計的異常檢測

Grubbs' Test

Grubbs' Test為一種假設檢驗的方法,常被用來檢驗服從正太分布的單變量數據集(univariate data set)\(Y\) 中的單個異常值。若有異常值,則其必為數據集中的最大值或最小值。原假設與備擇假設如下:

\(H_0\): 數據集中沒有異常值
\(H_1\): 數據集中有一個異常值

Grubbs' Test檢驗假設的所用到的檢驗統計量(test statistic)為

\[G = \frac{\max |Y_i - \overline{Y}|}{s} \]

其中,\(\overline{Y}\)為均值,\(s\)為標准差。原假設\(H_0\)被拒絕,當檢驗統計量滿足以下條件

\[G > \frac{(N-1)}{\sqrt{N}}\sqrt{\frac{ (t_{\alpha/(2N), N-2})^2}{N-2 + (t_{\alpha/(2N), N-2})^2}} \]

其中,\(N\)為數據集的樣本數,\(t_{\alpha/(2N), N-2}\)為顯著度(significance level)等於\(\alpha/(2N)\)、自由度(degrees of freedom)等於\(N-2\)的t分布臨界值。實際上,Grubbs' Test可理解為檢驗最大值、最小值偏離均值的程度是否為異常。

ESD

在現實數據集中,異常值往往是多個而非單個。為了將Grubbs' Test擴展到\(k\)個異常值檢測,則需要在數據集中逐步刪除與均值偏離最大的值(為最大值或最小值),同步更新對應的t分布臨界值,檢驗原假設是否成立。基於此,Rosner提出了Grubbs' Test的泛化版ESD(Extreme Studentized Deviate test)。算法流程如下:

  • 計算與均值偏離最遠的殘差,注意計算均值時的數據序列應是刪除上一輪最大殘差樣本數據后;

\begin{equation}
R_j = \frac{\max_i |Y_i - \overline{Y'}|}{s}, \quad 1 \leq j \leq k
\label{eq:esd_test}
\end{equation}

  • 計算臨界值(critical value);

\[\lambda_j = \frac{(n-j) * t_{p,n-j-1}}{\sqrt{(n-j-1+t_{p,n-j-1}^2)(n-j+1)}}, \quad 1 \leq j \leq k \]

  • 檢驗原假設,比較檢驗統計量與臨界值;若\(R_i > \lambda_j\),則原假設\(H_0\)不成立,該樣本點為異常點;

  • 重復以上步驟\(k\)次至算法結束。

2. 時間序列的異常檢測

鑒於時間序列數據具有周期性(seasonal)、趨勢性(trend),異常檢測時不能作為孤立的樣本點處理;故而Twitter的工程師提出了S- ESD (Seasonal ESD)與S-H-ESD (Seasonal Hybrid ESD)算法,將ESD擴展到時間序列數據。

S-ESD

STL將時間序列數據分解為趨勢分量、周期分量和余項分量。想當然的解法——將ESD運用於STL分解后的余項分量中,即可得到時間序列上的異常點。但是,我們會發現在余項分量中存在着部分假異常點(spurious anomalies)。如下圖所示:

在紅色矩形方框中,向下突起點被誤報為異常點。為了解決這種假陽性降低准確率的問題,S-ESD算法用中位數(median)替換掉趨勢分量;余項計算公式如下:

\[R_X = X - S_X- \tilde{X} \]

其中,\(X\)為原時間序列數據,\(S_X\)為STL分解后的周期分量,\(\tilde{X}\)\(X\)的中位數。

S-H-ESD

由於個別異常值會極大地拉伸均值和方差,從而導致S-ESD未能很好地捕獲到部分異常點,召回率偏低。為了解決這個問題,S-H-ESD采用了更具魯棒性的中位數與絕對中位差(Median Absolute Deviation, MAD)替換公式\eqref{eq:esd_test}中的均值與標准差。MAD的計算公式如下:

\[MAD = median(|X_i - median(X)|) \]

S-H-ESD的Python實現有pyculiarity
,時間序列異常檢測數據集有Yahoo公開的A Labeled Anomaly Detection Dataset

3. 參考資料

[1] Hochenbaum, Jordan, Owen S. Vallis, and Arun Kejariwal. "Automatic Anomaly Detection in the Cloud Via Statistical Learning." arXiv preprint arXiv:1704.07706 (2017).


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM