時系列データに対する状態空間モデルの例~ローカルレベルモデル・構造時系列モデル~

 2019/09/23    時系列分析    


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

ローカルレベルモデルとは

最もシンプルな状態空間モデルの例として、ローカルレベルモデルを紹介します。 ローカルレベルモデルは次式で表されます。 \(yt\) は観測値で、 \(αt\) は一変数の状態です。 観測方程式では状態 \(αt\) にホワイトノイズ \(εt\) が加算されることで \(yt\) が得られることが表され、状態方程式では状態 \(αt\) が時間とともに \(ξt\) の変動をともなって推移していくことが表されています。
$$
\begin{cases}
y_t = \alpha_t + \varepsilon_t,~ &\varepsilon_t\sim N(0, \sigma^2_\varepsilon),~ t=1,\dots,T\\
\alpha_t = \alpha_{t-1} + \xi_t,~ &\xi_t\sim N(0, \sigma^2_\xi),~ t=1,\dots,T
\end{cases}
$$
ここでパラメータが \(σ2ε\) と \(σ2ξ\) だけであることに着目すると、ローカルレベルモデルは「観測の誤差による変動の大きさと真の水準が推移する変動の大きさに分けるモデル」であると解釈できます。

たとえば、毎日体重を測定して得られたデータがあるとしましょう。 体重の真の水準(状態)は毎日の食事や運動などによって推移します。 一方で、体重計や身につけている衣服・気圧などに依存する測定の誤差も存在します。 ここでローカルレベルモデルを利用すれば真の体重の推移が推定でき、当てはまりが良くなるように真の体重推移の分散 \(σ2ε\) と測定誤差の分散 \(σ2ξ \)を推定できます。

ローカルレベルモデルの他にも、様々なトレンドに関するモデリングが提案されています。 たとえば、トレンドの傾きは直前の傾きと似ているはずだ、というアイデアを盛り込んだローカル線形トレンドモデルなどがあります。

構造時系列モデルとは

状態空間モデルの枠組みが活用される典型例に構造時系列モデルがあります。 構造時系列モデルは、注目している時系列を、直接解釈可能な複数の時系列の和で表すモデルで、任意の時系列の足し合わせであるため解釈性が高いというメリットがあります。 なかでも、基本的な構造時系列モデルは次の構造で表されます。
$$
時系列データ = トレンド + 周期成分 + ホワイトノイズ
$$
構造時系列モデルを状態空間モデルの枠組みで扱う際は、トレンドや周期の各要素それぞれが状態方程式に従うとし、その状態 \(α(1)t,α(2)t,…,α(n)t \)を観測方程式において足し合わせます。 トレンドの状態方程式にはローカルレベルモデルやローカル線形トレンドモデルなど、様々なトレンドモデルを用いることができます。

周期成分のモデリングでは、ダミー変数を使うものと三角関数を使うものが一般的です。

まずはダミー変数を使った周期のモデリングについて説明します。 例えば1週間の周期を考えた時、ダミー変数によるモデリングは次式のように行われます。 ここで、各\( β \)は回帰係数で、\( di(t) \)は \(t=i \)であるとき1、それ以外のとき\(0\)をとるダミー変数です。
$$
\alpha_{t}^{weekly} = \beta_{月}d_{月}(t) + \beta_{火}d_{火}(t) + \cdots+\beta_{土}d_{土}(t) +\varepsilon_t
$$
ここでは、日曜日を基準として他の曜日にダミー変数を用意しています。 そのため、同時に推定されるトレンド \(αtrendt \)は日曜日に対するもので、たとえば火曜日であれば対応する係数\( β\)火 が加算されます。

続いて、三角関数を使った周期のモデリングについて説明します。 余弦関数 \(cos(t) \)と正弦関数 \(sin(t) \)はどちらも周期 \(2π \)、振幅1です。 異なる周期と振幅を持つ複数の三角関数を足し合わせることで、複雑な周期を近似することができます。 三角関数を足し合わせた関数は滑らかであるため、非整数な周期のモデリングや一年間の周期のモデリングに適しています。 一年の周期でダミー変数を364個用意することは現実的でない他、うるう年を考慮した周期は365.25日になりダミー変数で表現することは困難です。

まとめ

いかがでしたか。状態空間モデルの例として、ローカルレベルモデルと構造時系列モデルについて紹介しました。

状態空間モデルの基礎知識はこちらの記事も参考にしてみてください。

  • 人気の投稿とページ

  • コメントを残す

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