Edited at

changefinderとはなにかを数式なしで解説

More than 1 year has passed since last update.


この記事の立ち位置


  • アイスタイル Advent Calendar 2016の4日目の記事です

  • この記事は時系列データの分析、統計解析の事前知識がない方向けに、「changefinderとは何か?」を解説する記事です。

  • 時系列データの基礎、詳細を知りたいという方は、沖本本などで


changefinder


概要

changefiderとは、変化点を検出するのに用いられるアルゴリスムの名前です。

変化点とは、時間とともに変化するデータ(PVや温度など)の性質が変わる点です。

外れ値と何が違うの?となりますが、外れ値は一瞬だけ異常値が出た後は、元の数値に戻ります。

変化点は、その外れ値がデータの変化の点となり、元の数値に戻らずにずっーと続くイメージです。


モデル

スコアを算出するまでの流れは以下のようになります



平滑化とは、ざっくり言いますと 「本当に変化にしている部分以外を取り除こうぜ!」 というノリで行われる処理です。スコアを求めるまでの、ざっくりとした流れは理解していただいたと思うので、各学習の部分を説明をします。


第1段階の学習について

(※ARMAモデルを使う選択肢もありますが、今回はARモデルを用いた場合の説明をします)

第1段階の「外れ値スコアを求める」で、使われているARモデルとは、時点Bでの値を算出する式を立てるときに、その前の時点Aの値に、何かをかけたり、足したりすることで、時点Bの値を算出できるようにしたモデルです。

なんでこんなことするかというと、時点Bの値の算出に、時点Aを用いているのだから、何かしらの相関が出そうでモデル化できそうだよね!って考えに基づいたモデルだからです。

このモデルで出した値と、実際のスコアがどれくらい異なるかを調べ、外れ値スコアを算出します。


第2段階の学習について

SDARモデルを用いて、第2段階の学習が行われます。このアルゴリズムは、名前にARという名前が入っている通り、先ほどのARモデルの改良版です。また、SDARモデルは忘却型学習アルゴリズムとも呼ばれています。

SDARモデルは、過去の統計量ほど重みを減らす、忘却パラメーターを採用しています。

このため、定常なデータにしか対応できないARモデルとは違い、非定常なデータにも対応できるようになっています。定常とは、過去の平均、自己共分散が、時間を通して、一定の状態であることを言います。

(※ここでいう定常とは、弱定常のことです)

そうして、SDARモデルを用いて算出した外れ値スコアを、また平滑化することで、変化点を測るスコアを算出します。


参考


  1. SDARアルゴリズムと統計的手法による時系列からの外れ値と変化点の検出

  2. 経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

  3. changefinderライブラリを試してみた