私は大量の時系列を扱っています。これらの時系列は、基本的に 10 分ごとに取得されるネットワーク測定値であり、定期的なもの (帯域幅など) とそうでないもの (ルーティング トラフィックの量など) があります。
オンラインの「外れ値検出」を行うための簡単なアルゴリズムが欲しいです。基本的に、各時系列の履歴データ全体をメモリ (またはディスク) に保持し、ライブ シナリオで異常値を検出したいと考えています (新しいサンプルがキャプチャされるたびに)。これらの結果を達成するための最良の方法は何ですか?
現在、ノイズを除去するために移動平均を使用していますが、次はどうすればよいでしょうか? 標準偏差、狂気などの単純なものは、データセット全体に対してうまく機能しません (時系列が定常的であるとは想定できません)。より「正確」なもの、理想的には次のようなブラックボックスが必要です。
double outlier_detection(double* vector, double value);
ここで、 vector は、履歴データを含む double の配列であり、戻り値は、新しいサンプル "value" の異常スコアです。