時系列データ解析における状態空間モデルの枠組み

 2019/09/23    時系列分析    


この記事では、時系列データのモデリングで広く利用されている状態空間モデルの枠組みについて紹介します。状態空間モデルの枠組みではさらに複雑なモデリングか可能になります。
平均・分散、正規分布などの統計学の初歩の知識を前提とした初心者向け入門記事です。
Pythonで時系列解析・分析に興味がある方は、参考にしてみてください。

状態空間モデルの方程式

状態空間モデルといってもARMAモデルのような決まった形があるわけではなく、直接観測できない潜在的な状態の存在を仮定したモデルを状態空間モデルといいます。 状態空間モデルは、次式のように観測方程式状態方程式によって表されます。
$$
\begin{align}
&y_t = h({\bf \alpha}_{t}) + \varepsilon_t&{\text (観測方程式)}\\
&{\bf \alpha}_t =f({\bf \alpha}_{t-1}) + g({\bf \xi}_t) &{\text (状態方程式)}
\end{align}
$$
まずは観測方程式から見ていきます。 観測データ \(yt\) は、同時点の観測できない状態 \(αt\) の関数 \(h(αt)\) と観測ノイズ \(εt\) の加算で表されます。 状態 \(αt\) は任意次元のベクトルで、様々な要素を状態として考慮することができます。 次に状態方程式についてですが、 \(αt\) は1時点前の状態 \(αt−1 \)の関数 \(f(αt−1) \)に状態ノイズの関数 \(g(ξt) \)が加わる形で表されます。

つまり、状態 \(αt \)はそれ自体で時系列的に推移していくのに対し、観測 \(yt \)は状態の関数にノイズが加わることで得られると仮定しています。

関数 \(f,g,h \)に関しては何も記述していないため、使用するパラメータが推定しうるのであればどのようなものでも構いません。 設計者のアイデアや知見を柔軟に反映することができるため、様々なことができます。 一方で柔軟さの反面、パラメータが本当に推定しうるのか、モデルが妥当であるのか、推定法はどのようなものが良いか、などを把握しコントロールしなくてはならないという難点もあります。

目に見えない「状態」の存在を仮定し観測と分けることのメリットの例として、以下のような点があります

  • ●適切な状態空間モデルを用いることで、観測できないが本来知りたい状態を推定できる。また、これを用いた現場へのフィードバックが可能。
  • ●観測ノイズと状態ノイズを分離できる。つまり誤差のうちどの程度が観測によるものか、状態の推移によるものかを分けて考えることができる。
  • ●欠損値があっても、その時点での状態を推定することで補完ができるため、欠損値の処理に敏感にならなくて良い。

状態空間モデルの目的と推定法

状態空間モデルにおける重要な課題はデータから状態 \(αt \)を推定することです。 ここで \(αt \)の推定には、用いるデータ\( {y1,…,yn} \)との関係により以下の三種類があることを紹介しておきます。

  • \(n<t \):予測(最新のデータよりも先の状態を推定する問題)
  • \(n=t \):フィルタリング(最新のデータと同時点の状態を推定する問題)
  • \(n>t \):平滑化(最新のデータまでに基づいてそれ以前の状態を推定する問題)

将来予測はこれまでの内容と同様に重要な作業です。 フィルタリングは、予測の「ズレ」を最新のデータを使って修正する作業だといえます。次々と送られてくるデータからリアルタイムなに位置を推定することなどは、まさにフィルタリングであるといえます。 平滑化は、全てのデータを使った状態の修正であり、過去のデータのみを使うよりも正確な推定ができます。 キャンペーンの効果を振り返るときなど、フィードバックや知見獲得を目的として行われることが多い作業です。
では、これらの推定作業はどのような方法により行われるのでしょうか。 ここでは状態の推定方法として三種類の方法を紹介します。

カルマンフィルタ (Kalman filter)

観測ノイズ \(εt\) と状態ノイズ \(ξt\) に正規分布を仮定し、関数 \(f,g,h \)に線形関数を仮定した状態空間モデル(線形ガウス状態空間モデル)は、カルマンフィルタというアルゴリズムで効率的に推定することができます。 カルマンフィルタは逐次的なアルゴリズムで、 \(t\) 時点での状態 \(αt \)の推定に \(t−1\) までの値を使う一期先の予測と、 \(t\) の値も使って修正を行うフィルタリングを交互に繰り返し、最後に平滑化を行います。 正規性と線形性を仮定するのは、正規分布に従う確率変数同士の線型結合により与えられる変数もまた正規分布に従う、という性質を利用するからです。 平均と共分散さえ推定すれば同時分布が定まるので、計算効率が良くなります。 逆にとらえれば、予測値の分布(予測分布)もフィルタリングにより推定する状態の分布(フィルタ分布)も正規分布になることを仮定しています。

粒子フィルタ (Particle filter)

粒子フィルタは、カルマンフィルタよりも計算量が多くなるものの、正規性と線型性を仮定しなくても良い推定アルゴリズムです。 非正規性と非線型性を許すことで、複雑な予測分布やフィルタ分布を推定することができます。 粒子フィルタもカルマンフィルタと同様に予測とフィルタリングを繰り返す逐次的なアルゴリズムですが、複雑な分布を重み付きの乱数(粒子)で近似します。 このような近似をモンテカルロ近似といいます。

マルコフ連鎖モンテカルロ法 (Markov Chain Monte Carlo methods: MCMC)

MCMCは時系列モデルに限らず、複雑な統計モデルのパラメータ推定に用いられます。 粒子フィルタと同様、分布をたくさんの乱数で近似しますが、粒子フィルタが逐次的に予測 → フィルタリング を繰り返すのに対し、MCMCは初めから全時点のデータを使って分布を近似します。 そのため平滑化分布のみが計算され、予測分布を得るには追加の計算が必要になります。

まとめ

状態空間モデルの方程式と、観測できない状態の推定方法について解説しました。

状態空間モデルの例として、ローカルレベルモデルや構造時系列モデルについても別記事で解説していますので、参考にしてみてください。

  • 人気の投稿とページ

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です