データ分析関連のまとめ

データ分析・機械学習周りのもくもく会LTやイベント参加をまとめていきます

状態空間モデルの基礎①

ノイズがのっている時系列データの予測モデルを作りたいので、使えそうな状態空間モデルの基礎からまとめていきます。
何回かに分けて書きますが、原理の理解から最終的にモデルを作って評価をする所までを目標にしています。
(理解が間違っている点があったら指摘いただければ幸いです)

状態空間モデルとは?

  • システムモデルと観測モデルから構成される
  • 観測されるものと実際の状態が異なる場合に使われる
  • 利用例
    • 制御工学
    • 金融時系列分析(Volatility推定等)
    • 気象予測(気温、降水量等)
  • 事業会社で使われている事は聞いた事が無く、公的機関が使っているイメージがある(事業で使っている所があったら知りたい)

システムモデルと観測モデル

システムモデル

  • 時刻tの状態を表す変数ω(状態変数:確率密度関数)の時間発展を表す方程式(システムモデル)を下記のように表す
  • 状態空間モデルではこの状態変数の推定を行う事を目的とする。
{\omega}_t = f_t({\omega}_{t-1})+u_t
u_t:システムノイズとよばれ、{\omega}_tとは独立

観測モデル

観測モデルは下記のように表される

観測値y_tと状態変数{\omega}_tの関係性を表す観測演算子h_tとすると
y_t = h_t({\omega}_{t})+v_t
v_t:観測ノイズ

観測ノイズは観測と予測の差を示し、測定誤差および観測モデルは不完全であることに起因した誤差の両方が寄与する

一般化状態空間モデルとマルコフ性の仮定

  • システムモデルと観測モデルを一般的に下記のように書いた場合、一般状態空間モデルという
{\omega}_t \sim p({\omega}_t|{\omega}_{t-1})
y_t \sim p(y_t|{\omega}_t)

状態空間モデルでは下記のマルコフ性の仮定を用いている。
これにより時刻tの条件付確率が時刻t-1の状態のみに依存し、それ以前の状態には依存しないとしている

p({\omega}_t|{\omega}_{t-1},y_{1:t}) = p({\omega}_t|{\omega}_{t-1})
p(y_t|{\omega}_{1:t},y_{1:t-1}) = p(y_t|{\omega}_t)
x_{1:t}=x_1,x_2,...,x_t

予測、フィルタ、平滑化

  • 時刻sまでの観測データから時刻tにおける状態変数を推定するとした場合、sとtの関係性から下記の3つに分けられる
    • t>sの時、予測(prediction)
    • t=sの時、フィルタ
    • t<sの時、平滑化(smoothing)
      f:id:yhiss:20190928154813p:plain

      予測(prediction)

  • これは機械学習やその他の統計モデルの認識に近いので、想像しやすいと思われる
  • 特にs=t-1の場合:一期先予測という 一期先予測の確率密度関数は、下記周辺化式とマルコフ性の仮定式を用いると
周辺化式
p(y) = \int p(x,y)dx = \int p(y|x)p(x)dx =\int p(y|x)p(y)dx
p(y|z) = \int p(x,y|z)dx = \int p(y|x,z)p(x|z)dx =\int p(x|y,z)p(y|z)dx
p({\omega}_t|y_{1:t-1})
 = \int p({\omega}_t|{\omega}_{t-1},y_{1:t-1})p({\omega}{t-1}|y_{1:t-1})d{\omega}_{t-1} (周辺化式より)
 = \int p({\omega}_t|{\omega}_{t-1})p({\omega}{t-1}|y_{1:t-1})d{\omega}_{t-1}(マルコフ性の仮定より)

フィルタ

ベイズの定理
p(x|y,z) = \frac{p(y|x,z)p(x|z)}{p(y|z)}
p({\omega}_t|y_{1:t})=\frac{p(y_t|{\omega}_t,y_{1:t})p({\omega}_t|y_{1:t})}{p(y_t|{\omega}_t,y_{1:t})}
=\frac{p(y_t|{\omega}_{t})p({\omega}_{t}|y_{1:t-1})}{\int p(y_t|{\omega}_{t})p({\omega}_{t}|y_{1:t-1})d{\omega}_t}

スムージング

  • スムージングには3種類存在し、そのそれぞれに有効な場合がある
    • 固定点(fixed-point)スムージング:初期状態をデータから推定するのに有効
    • 固定ラグ(fixed-lag)スムージング:一定時間の遅れを伴う場合に有効
    • 固定区間(fixed-interval)スムージング:過去に起こった事をデータから分析する場合に有効

予測、フィルタ、スムージングの関係性

  • 一期先予測式にはシステムモデルの確率密度関数、時刻t-1のフィルタ分布の確率密度関数が含まれる
    →時刻t-1のフィルタ分布よりシステムモデルを用いて時刻tの一期先予測の確率密度関数がもとめられる
  • フィルタの式には観測モデルの確率密度関数と時刻t-1の一期先の確率密度関数が含まれる
    →時刻t-1の一期先予測分布より観測モデルを用いて時刻tのフィルタの確率密度関数がもとめられる

  • ある時刻の状態変数の分布が分かっている場合、予測、フィルタ、平滑化を繰り返す事であらゆる時刻の確率分布が得られる。これを逐次ベイズフィルタという

  • 一期先予測とフィルタを繰り返す事で現在の時刻の状態変数を推定する手法の一つ:気象予測等で用いられるカルマンフィルタ

まとめ

  • 今回は状態空間モデルの構成式や推定の種類・関係性についてまとめました
  • 次回はカルマンフィルタについてまとめていこうと思っています

参考文献

谷崎 久志:非線形・非正規状態空間モデルの推定について
http://www.lib.kobe-u.ac.jp/repository/00056064.pdf
気象庁予報部:ガイダンスの解説
https://www.jma.go.jp/jma/kishou/books/nwpreport/64/No64_all.pdf
佐藤整尚:状態空間モデルを用いた金融時系列分析
https://www.carf.e.u-tokyo.ac.jp/old/research/archive/-2014aug/20110926sato.pdf