カルマンフィルタを使った状態空間モデル!ARIMAとの違いも紹介!

こんにちは!
IT企業に勤めて、約2年間でデータサイエンティストになったごぼちゃん(@XB37q)です!

この投稿では、状態空間モデルを紹介します!
時系列分析と言えば、box-Jenkins法か、状態空間モデルが有名です!

box-jenkins法については、「box-jenkins法の流れを丁寧に解説!状態空間モデルとの違いも!」をご覧ください!

状態空間モデルとは

状態と観測
状態と観測

状態空間モデルとは、主に時系列データに適用する分析手法です。
他の時系列モデルを数多く表現できる、汎用性の高い時系列分析のモデルです。

観測できない隠れた「状態モデル」と観測した結果である「観測モデル」から、状態空間モデルは成り立ちます。
例えば、湖に魚がたくさん居るならば、今日はよく釣れるだろうといった関係性を把握し、将来の予測を行います。

状態方程式と観測方程式

状態空間モデルでは、状態方程式観測方程式という二つの式を使います。

湖の中にいる魚のという「見えない状態」を表すのが状態方程式です。
状態方程式に、観測誤差などが加わり、実際に観測できた魚の数を表すのが観測方程式です。

状態方程式は、t期の状態は「t-1期の状態」と「ある説明変数at」と「過程誤差ut」で表すことが可能です。
観測方程式は、t期の観測値は「t期の状態」と「ある説明変数bt」と「観測ノイズwt」で表すことが可能です。

状態方程式と観測方程式
状態方程式と観測方程式

カルマンフィルタの流れ

状態方程式と観測方程式は、カルマンフィルタと呼ばれる考え方で、求めることが可能です。
カルマンフィルタとは、目に見えない「状態」を効率よく推定するためのアルゴリズムです。

このコラムでは、湖の中の魚の個体数が「状態」、その湖で釣りをした結果が「観測値」という例を使用して、説明します。

Step①では、未来の状態を推定し、その状態から未来の観測値を推定します。
例えば、先月における湖の魚の数から今月における湖の魚の数を推定することが、未来の状態を推定に当たります。
この推定では、ARモデルのように一期前と今期のデータは似ているはずという仮定を置いて求めます。
また、今月における湖の魚の数から、今月どれだけの魚が釣れるのかを推定します。

カルマンフィルタ Step①
カルマンフィルタ Step①

Step②では、フィルタリングを行います。
フィルタリングとは、手に入った実際の観測値を用いて、予測した状態の値を補正することです。
補正する大きさを表す値を「カルマンゲイン」と呼び、補正の式は下記になります。
補正後の状態 = 補正前の状態+カルマンゲイン×(本物の観測値-予測された観測値)
状態を補正することによって、来月の予測はより精度が良くなることが見込まれます。

例えば、今月、実際に釣りをした場合に魚が全然つれなかったとします。
ある程度の釣れなかったくらいならば、観測誤差として考えますが、1匹も釣れないなど大きな誤差ならば、予測した「状態」が間違っていたのだろう考えるため、フィルタリングを行います。

カルマンフィルタ Step②
カルマンフィルタ Step②

これまで紹介してきた2つのStepをStep① ⇒ Step② ⇒ Step①(③)のように繰り返し、将来の予測を出していくモデルが状態空間モデルです。

カルマンフィルタ Step③
カルマンフィルタ Step③

状態空間モデルの特長

  • AR/MA/ARMA/ARIMAと比較し、より複雑な時系列モデルを構成することが可能
  • カルマンフィルターをはじめとした、様々なモデルとそれに対応した数値計算アルゴリズムが知られており、多くの分野に応用されている
  • 時系列予測をさまざまな要因分解の結果として行なえるため、時変パラメータの解釈や可視化が容易で、売上に対する広告影響の構造把握などが可能
  • 欠損値にも対応可能

まとめ

  • 状態空間モデル
    • 時系列データに適用する分析手法
    • 他の時系列モデルを数多く表現できる
    • 汎用性の高い時系列分析のモデル
    • 観測できない隠れた「状態モデル」と観測した結果である「観測モデル」から成り立つ
  • 状態方程式
    • 湖の中にいる魚のという「見えない状態」を表す
    • t期の状態は「t-1期の状態」と「ある説明変数at」と「過程誤差ut」で表すことが可能
  • 観測方程式
    • 状態方程式に、観測誤差などが加わり、実際に観測できた魚の数を表す
    • t期の観測値は「t期の状態」と「ある説明変数bt」と「観測ノイズwt」で表すことが可能
  • カルマンフィルタ
    • 状態方程式と観測方程式を求める考え方
    • 目に見えない「状態」を効率よく推定するためのアルゴリズム
    • Step①:未来の状態を推定し、その状態から未来の観測値を推定する
    • Step②:フィルタリングを行
  • フィルタリング
    • 手に入った実際の観測値を用いて、予測した状態の値を補正すること

参考書籍