G検定

状態空間モデルとカルマンフィルターの強みを数学的に理解しよう

時系列データ(time series data)とは、 「時間の経過とともに変化するデータ」です。時系列データから、ある現象が時間的にどのように変動しているのかを解析し、その結果から将来の値や動向を予測することを時系列分析(時系列データ解析)といいます。時系列データから、測定対象の現象の規則性、傾向、特徴を抽出することで、将来の変動パターンを予測することが可能になります

以前、以下の記事では、MA、AR、ARMA、よく使われているARIMA、およびそれに季節要素を加えらSARIMAといった時系列分析モデルを解説しました。

自己相関に基づく時系列分析の手法(AR・MA・ARMA・ARIMA・SARIMA)前回の記事では、『時系列データとその成分(ノイズ、周期性、トレンド)』について紹介しました。 https://gri.jp/med...

今回の記事では、上記のモデルとは異なるアプローチを持つ柔軟性の高い時系列分析の手法である「状態空間モデル」を紹介します。

状態空間モデルの特徴

上記で例に挙げましたARIMAなどの時系列分析のモデルを一旦「従来のモデル」と呼びます。

従来のモデルは基本的に、観測される時系列データの前後の時刻の関係性を直接的に求めています。つまり、「観測値」にのみ着目し、現時刻での観測値は過去の時刻の観測値に依存する(自己相関がある)と仮定します。

これに対して、「状態空間モデル」の特徴は、データの生成過程を「状態」「観測値」という2種類の系列としてモデリングし、そして観測値を直接的に予測せずに「状態」に対して「観測値」を予測していることです。「状態」と「観測値」は、ともに時間とともに変化します。

  • 「状態」:直接観測できない潜在変数(確率変数)。状態空間モデルでは、現時刻の状態は「1つ前の時刻の状態」と「状態のノイズ」に依存する。
  • 「観測値」:直接観測されるデータ。状態空間モデルでは、現時刻の観測値は「同時刻の状態」と「観測ノイズ」に依存する。

確かに、最終的な目的が「将来の観測値を予測する」という点において、状態空間モデルと従来モデルで共通です。両者のアプローチの違いを簡単にまとめると以下の表と図1のようになります。

従来モデル(ARIMAなど) 現時刻の観測値は過去の時刻の観測値に依存すると仮定し、観測値を直接的に予測する。
状態空間モデル ある時刻の状態は、その前の時刻の状態に依存し、観測値はその時刻の状態にのみ依存する」と仮定する。観測値を直接的に予測せず、「状態」に対して、未来に「観測」される値を予測する。

 

上記のような性質を持つために、状態空間モデルは、「従来のモデル」に比べて柔軟性と汎用性が高く、複雑な時系列データであってもモデリングすることが可能です。この点については後ほど詳しく解説します。

図1:状態空間モデルとARIMAなどの従来の時系列分析モデルの比較をした模式図

 

状態空間モデルを数学的に理解する

以下では、単純な状態空間モデルについて、その数学的表現を理解してみましょう。状態と観測値は、式1、2のような方程式で表すことができます。

状態を表すモデル:st=ft(st-1, ut)  …式1

観測値を表すモデル:yt=gt(st, rt)     …式2

ここで、st は状態を表す変数(観測できない)、ytは実際に観測できるデータのことです。時刻tにおける状態 st は1時点前の状態状態 st-1 と状態ノイズutの関数として表されます。時刻tにおける観測値 ytは、同時刻の状態 st と観測されるノイズrtの関数として表されます。

上記のモデルでは、「観測値」を「状態」と 観測の誤差(ノイズ)の和として考えており「状態」を「以前状態」と状態の誤差(ノイズ)の和として考えています。ここでのノイズは、平均が0を中心とした正規分布に従うと考えることができます。同程度の確率で正の値または負の値になります。

このように、状態空間モデルでは、観測値の時系列的な変化に寄与する要因を切り分けて考えることができます。観測値が変化したのは、状態が変化したからなのか、それとも何らかの誤差やノイズによるものなのかを考えます。

■カルマンフィルター

観測値の時系列データが測定で得られれば、状態と観測値に関する方程式(式1、2)を用いて、観測値から状態を推定することができます。状態を効率的に推定するための手法として、代表的なものはカルマンフィルターです。

また、カルマンフィルターを使用するためには、いくつかのパラメータを求める必要があります。これには最尤法が使用されます。上記の単純なモデルにおいては、求める必要のあるパラメータは「観測のノイズ」と「状態のノイズ」です。

ちなみに、カルマンフィルターは自動運転やロボット制御に必要な「位置推定」によく使われています。1時刻前の状態にセンサー等の測定値を加味して現在の状態を推定します。これはまさに状態空間モデルです。ところが、1つのセンサーの測定値には誤差が含まれるので、その測定値だけをもとに推定しては、推定の精度が十分ではありません。そこで、複数のセンサーの測定値を、それぞれの誤差の特性を踏まえて重みづけすることで、測定精度を向上させるモデルが、カルマンフィルターです。

ここで、センサーの測定値は、「観測値」であり、知りたがっている「位置」(状態に相当)そのものではないため、物体との距離などの位置を推定する手がかりにすぎません。カルマンフィルターのように、手掛かり(=観測値)をもとに、知りたい情報そのもの(=状態)を知ろうとする時系列分析を状態空間モデルといいます。

状態空間モデルの具体例

1つ具体例を考えてみましょう。みかんの糖度は寒暖差や降雨量といった総合的な「天候要因」によって影響されることが知られています。もちろん他にも要因がありますが、ここでは単純化のために「状態」を「天候の変化」とし、これを観測しにくいものとしましょう。また、「観測値」をみかんの糖度とします。

みかんの糖度は観測・測定することができます。一週目(t=1)に測定したら糖度が11.3、二週目(t=2)に測定したら13.2になったというふうに、観測値が時刻とともに変化します。日ごと、あるいは週ごとに糖度が時系列的に変化していく要因は何でしょうか。

状態空間モデルを用いた場合、その要因を「天候」と「観測の誤差」の二つに分けて考えます。仮に翌週の糖度が前の週の糖度より高くなったとすると、この要因は「本当に天候が変わったから糖度が上がったのか」、それとも「糖度の測定誤差により、上がったように見えているのか」を考える必要があります。

「天候」は観測から得られないけれど、農家にとっては知りたいものです。なぜなら天候の変化の知識があると、糖度を管理しやすくなるからです。そのため、前節で説明したように、状態空間モデルを利用して「状態」である天候について推定を行います。

状態空間モデルの強み

「従来のモデル」は、これまでに観測されている売上データを、なんらかの関数で表現し、その関数を用いて、将来の売上を予測しようとします。しかし、このようなモデルを使えない場合もあります。そんな時に、状態空間モデルが強みを発揮します。

以下は、状態空間モデルの最大な強みは柔軟性と汎用性です。以下のような項目に、細かく分けることができます。

  1. 非定常なデータを扱える
  2. 欠損値を含むデータも扱える
  3. 観測値の変化の要因を説明できる

実際、状態空間モデルは、欠損が入ったデータ、非定常なデータ、周期が変動するデータなど、さまざまなデータに適用可能であり、そして、状態空間モデルを用いて、ARMAやARIMAなどの従来的なモデルを表すことができます。

① 非定常なデータを扱える

状態空間モデルは、非定常な時系列データをそのまま扱うことができます。従来モデルのARIMAの場合、非定常なデータに対して、差分を取ってから回帰で計算を行います。状態空間モデルの場合、このような差分を取る操作を行わなくても計算ができます。

また、従来モデルでは「モデルの次数」を固定しなければいけないのに対して、状態空間モデルを採用すれば、周期を固定せずにモデリングすることが可能です。次数を固定するということは、どれくらい遡って以前のデータを参照するのかを指定することであり、これはデータの周期を固定することと等価です。実務で得られるデータのうち、周期が一定ではないこともあり、その場合は従来のモデルの適用が難しくなります。状態空間モデルを採用すれば、周期を固定せずにモデリングすることが可能です。

②欠損値を含むデータも扱える

「従来のモデル」は1つ前の時刻の値を用いて現在の時刻の値を予測しているので、途中の時刻が抜けている場合、その後の予測が成り立たなくなります。しかし、途中でデータが抜け落ちている状況は実務のデータにおいてよく発生しています。このような場合でも、将来を予測するのに使えるのが、状態空間モデルです。

状態空間モデルでは、直接的に観測値を推定しないため、観測された時系列データに欠損値がある場合にも使用することが可能です。

③ 観測値の変化の要因を説明できる

状態空間モデルでは様々な要因を分解して時系列予測を行い、観測値の変化を引き起こしている要因を説明することを目指しています。要因(状態)を推定できることで、意思決定に繋がります。

実際、状態空間モデルは「測定可能なデータとその変化をもたらしている測定不可能な要因」の関係性を捉えるために、例えば、設備の制御、株価の予測、マーケティング分析などに使いやすい手法です。

例えば、将来の売り上げを予測する時系列モデルを構築したい場合、売り上げには「季節の影響」「気温の影響」「曜日の影響」「広告の効果」「キャペーンの効果」「世界情勢」など様々要因が影響を及ぼしています。これらの要因を推定するために、状態空間モデルを立てて、必要なパラメータ(各種ノイズなど)の値が求められ、得られた観測値(この場合は売り上げ)とカルマンフィルターなどを用いて計算が行われます。

執筆担当者:ヤン ジャクリン (GRI分析官・講師)

yan
データ分析官・データサイエンス講座の講師