時系列分析の加法的アウトライアー
ビルドアップ
上のグラフで一番目立つ点は、2015年2月の近くにある巨大な外れ値だ。このような極端な値が分析に悪影響を及ぼす可能性がある。幸い、文字通り一瞬の外れ値で終わったことだ。
定義 1
データの変動自体を変えない外れ値を加算外れ値additive Outlierと呼ぶ。
実践
このような加算外れ値は直感的に見つけてもいいし、TSA
パッケージのdetectAO()
関数を使ってもいい。使用方法は以下の通りだ。
- 元のデータで加算外れ値を考慮せずに時系列分析を行う。
- 返されたモデル自体を
detectAO()
関数に入れると、次のような結果が得られる。 - ラムダの絶対値が最大のインデックスを最優先の候補とする。上のスクリーンショットでは55番目だ。
- 加算外れ値を反映して再分析する。納得のいく結果が出るまで繰り返す。
加算外れ値を反映した分析には動的回帰モデルが必要だ。アイデアは単純だ。69番目のデータがAOだと思えば、69番目の値だけが1で、残りはすべて0のダミーデータを作って回帰分析を行う。理論上では純粋なパルス関数に相当し、コードもそれほど難しくない。
実際にAOが反映された後は、AOの地点だけでなく、他の場所のフィッティングも改善されていることがわかる。
コード
以下はRで書かれたサンプルコードだ。適切な例がなかったため、データを添付したが、コードにリンクがそのまま載せられているため、わざわざ直接ダウンロードする必要はない。
Cryer. (2008). Time Series Analysis: With Applications in R(2nd Edition): p257. ↩︎