時系列異常検出のアルゴリズム


24

現在、RでTwitterのAnomalyDetectionを使用していますhttps : //github.com/twitter/AnomalyDetection。このアルゴリズムは、季節性のあるデータの時系列異常検出を提供します。

質問:これに似た他のアルゴリズムはありますか(季節性の制御は重要ではありません)?

私はデータで可能な限り多くの時系列アルゴリズムをスコアリングしようとしています。これにより、最適なもの/アンサンブルを選択できます。

回答:


16

Twitterアルゴリズムは

Rosner、B。、(1983年5月)、「一般化されたESDの多外れ値手順のパーセンテージポイント」、Technometrics、25(2)、pp。165-172

1983年以来、多くの技術と進歩があったに違いありません。内部データをテストしましたが、Twitterの異常検出では明らかな異常値は特定されません。時系列の外れ値をテストするために、他のアプローチも使用します。私が出会った中で最高ののは、SAS / SPSS / AutoboxおよびSCAソフトウェアに実装されているTsayの異常値検出手順です。これらはすべて商用システムです。tsoutliersパッケージも ありますが、これは優れていますが、arima効率的に動作するためにモデルの仕様が必要です。auto.arima最適化とモデル選択に関して、デフォルトの問題がありました。

Tsayの記事は、時系列における外れ値の検出に関する重要な研究です。予測研究の主要なジャーナルInternational Journal of Forecastingは、Tsayの記事は上記リンクの記事で最も引用された論文であり、最も影響力のある論文の1つであると述べました(以下も参照)。予測ソフトウェア(特にオープンソースソフトウェア)におけるこの重要な作業と他の異常値検出アルゴリズムの普及は稀です。

ここに画像の説明を入力してください


14

2017年時点でのRの異常検出のオプションは次のとおりです。

TwitterのAnomalyDetectionパッケージ

  • Seasonal Hybrid ESD(SH-ESD)を使用して動作します。
  • 異常を検出するための一般化されたESDテストに基づいています。
  • ローカルとグローバルの両方の異常を検出できます。
  • 時系列分解と堅牢な統計メトリックの使用(例:中央値とESD)
  • 長い時系列の区分的近似を採用しています。
  • また、タイムスタンプが利用できない場合のメソッドがあります。
  • 異常の方向、関心のあるウィンドウを指定し、区分的近似を切り替え、ビジュアルをサポートできます。

anomalyDetectionパッケージ(Twitterとは異なる)

  • マハラノビス距離、因子分析、ホーンの並列分析、ブロック検査、主成分分析など、さまざまなアプローチ。
  • 結果を処理する方法があります。

tsoutliersパッケージ

  • ChenおよびLiuの手順(https://www.jstor.org/stable/2290724?seq=1#page_scan_tab_contents)に従って時系列で外れ値を検出します
  • 異常値は、モデルパラメーターの「汚染の少ない」推定値、多重線形回帰を使用した異常値効果の推定値に基づいて取得され、モデルパラメーターと効果を共同で推定します。
  • 革新的な外れ値、相加的な外れ値、レベルシフト、一時的な変更、季節的なレベルシフトを考慮します。

異常なacm

  • 各時系列で特徴のベクトルを計算し(例:ラグ相関、季節性の強さ、スペクトルエントロピーを含む)、特徴にロバスト主成分分解を適用し、最後に最初の2つの主成分にさまざまな2変量異常値検出方法を適用します。
  • 特徴ベクトルに基づいて、最も珍しいシリーズを識別できるようにします。
  • パッケージには、Yahooの実際のデータセットと合成データセットの両方が含まれています。

レインボーパッケージ

  • バグプロットとボックスプロットを使用します。
  • 深さまたは密度が最も低い外れ値を識別します。

kmodRパッケージ

  • 2013年にChawlaとGionisが提案したk-meansの実装を使用(http://epubs.siam.org/doi/pdf/10.1137/1.9781611972832.21);
  • 標準のk-meansよりも(潜在的に)タイトなクラスターを作成し、同時に多次元空間で異常値を安価に見つけるのに役立ちます。

washeRメソッド

ロバスト統計法のCRANタスクビュー

  • 外れ値を検出するために堅牢な統計手法を使用するためのさまざまなアプローチ。

2018年編集

異常化:整然とした異常検出


時系列データに使用できる提案ですが、季節性はありませんか?その場合、twitterパッケージを使用できますか?
-MikeHuber

Twitterパッケージは、ローカルとグローバルの両方の異常を処理します。彼らのドキュメントで述べているように、「グローバルな異常は通常、予想される季節性の上または下に広がっているため、季節性と根本的な傾向の影響を受けません。」はい。Twitterパッケージを使用して、季節性のない時系列の異常を潜在的に検出できます。blog.twitter.com/engineering/en_us/a/2015/…–
サイバネティック

8

私はあなたを助けるかもしれないいくつかの情報源に遭遇しましたが、彼らはあなたのデータよりRスクリプトを実行するように簡単/便利なようではありません: - Numentaは、オープンソースの彼らの持っているNuPIC異常検知など、多くのもののために使用されているプラットフォームを。- Netflixののアトラスプロジェクトが間もなくオープンソース外れ値/異常検出ツールをリリースします。- Prelertは、サーバー側のアプリケーションとして来る異常検出エンジンを持っています。彼らのトライアルは、あなたのニーズを満たすことができる限られた使用法を提供します。

また、私の会社であるInsignumには、時系列データを取り込み、完全に自動化された方法で異常を検出するベータ版の製品があり、異常が検出されたときに電子メールでアラートを受け取るだけです。手を差し伸べるのTwitterLinkedInのと私はより多くのあなたを教えてさせていただきます。


3

Autobox(私の会社)は異常値の検出を提供します。Twitterのアルゴリズムは大きな異常値を取得しますが、Autoboxと比較して小さな異常値を逃します。

実行には長い時間がかかりますが、結果は、より小さな異常値と、異常値でもある季節性の変化を見つけるのに適しています。以下は、14,398の元の観測値の最初の8,560の観測値を使用して79の外れ値を見つけるモデルです。標準バージョンの最大値は10,000件ですが、さらに変更することもできますが、外れ値を特定して対応する場合に、それほど多くのデータを保持する本当の理由はありません。

私たちは、異常値、レベルシフト、分散の変化に関するTsayの作業と、季節変化の検出に関する独自の作業に加えて、パラメータの変更に関するChowの作業の影響を受けました。

30日間の試用版をダウンロードしてTwitterのサンプルデータを読み込み、頻度を60に指定し、インストールフォルダー(noparcon.afs、novarcon.afs、notrend.afs)に3つのトリガーファイルを保存し、stepupdeというファイルを作成した場合。 100のafs。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.