2019/09/23
2020/05/27
時系列データを解析するための様々なモデル
この記事では、時系列データを解析するためのSARIMAモデル以外の様々なモデルについて説明します。分析したいデータに適用できそうなモデルがあれば、他の文献をあたるなどして理解を深めるとよいでしょう。
平均・分散、正規分布などの統計学の初歩の知識を前提とした初心者向け入門記事です。Pythonで時系列解析・分析に興味がある方は、後学のために参考にしてみてください。
目次
ボラティリティ変動モデル
こちらの記事で説明したARモデルからSARIMAモデルで、誤差項 \(εt\) は独立かつ同一の分布に従うとしていました。 しかし、特に金融分野の時系列では、大きな変動が局所的に現れる現象(ボラティリティ・クラスタリング)がしばしば観測されます。 たとえば、ある銘柄の価格にショックが起こった後に売り買いが激しくなり大きな変動が続く、という現象は想像に易いでしょう。 このような現象を説明するために、誤差項 \(εt\) の分散 \(σ2ε\) に時系列構造を導入するモデルがボラティリティ変動モデルです。
もっとも単純なARCH( \(m\) )モデル (AR Conditional Heteroscedasticity model) は次式で表されます。
$$
y_t = \mu_t + u_t = \mu_t + \sqrt{\sigma_t^2}\varepsilon_t, ~ \varepsilon_t\sim N(0, 1),\\
\sigma_t^2 = \gamma_0+\sum_{i=1}^m\gamma_iu_{t-i}^2.
$$
つまり、ARCH( \(m\) )モデルは誤差項の二乗 \(u2t\) が自己回帰するモデルと解釈することができます。 ARCH型モデルは平均について何も記述していないので、予測という観点ではメリットを感じないかもしれません。 しかし、誤差の分散をモデリングしているため、区間予測をより正確に行うことができることや、金融分野では分散そのものがリスクとして重要視されていることなど、様々な利点があります。
ARCHモデルの他にも、より少ないパラメータで長期的なボラティリティの持続を表現するGARCHモデル (Generalized ARCH model) や、 \(σ2t\) そのものが確率的ショックを受ける確率的ボラティリティモデル、正のショックよりも負のショックがより大きな影響をもつことを表現したGJRモデルなど、様々なモデリングが提案されています。 ARCHモデルやGARCHモデルはarchモジュールで実装されています。
多変量時系列モデル
ベクトルAR (Vector AR: VAR) モデルはARモデルを多変量に拡張したモデルで、複数の定常時系列の関係を説明することができます。 最も単純な二変量VAR( \(p=1\) )モデルは次式で表されます。
$$
\begin{cases}
y_{1,t} = c_1 + \phi_{1,1}y_{1,t-1} + \phi_{1,2}y_{2,t-1} + \varepsilon_{1,t}\\
y_{2,t} = c_2 + \phi_{2,1}y_{1,t-1} + \phi_{2,2}y_{2,t-1} + \varepsilon_{2,t}
\end{cases}
$$
系列 \(y1\) と \(y2\) は1時点前の自身でだけでなく、1時点前のお互いでも回帰されていることがわかるでしょう。 このように、VARモデルは複数の時系列間の関係性を表現することができます。 ARモデルがARMAモデル・ARIMAモデルへと拡張されるように、VARモデルもVARMAモデルやVARIMAモデルへと拡張することができますが、推定が難しいことなどからVARモデルが使われることが多いようです。
また、VARモデルを利用するメリットの一つに、時系列間の関係を見ることがあります。 ある時系列が他の時系列に与える影響を見る枠組みの一つにグレンジャー因果 (Granger causality) があります。 VAR( \(p=1\) )モデルで説明すると、「 \(y1,t−1\) だけに基づいた \(y1,t\) の予測」と「 \(y1,t−1,y2,t−1 \)に基づいた \(y1,t\) の予測」とを比較し、後者の精度が有意に良い場合には「 \(y1\) から \(y2\) へのグレンジャー因果性がある」といいます。 さらに影響を定量化する手法にインパルス応答 (Impulse response) があります。インパルス応答では、ある変数にショックがあるとき、その変数や他の変数に及ぼす影響をみています。
Pythonでは、statsmodelsのvector_ar()でVARモデルが実装されています。
レジームスイッチングモデル (Regime switching model)
時系列の裏側に離散的な状態が存在し、その状態(レジーム)によってモデルが変化するようなモデルをレジームスイッチングモデルといいます。 たとえば株価の値動きを考えたとき、好景気時は時系列があるモデルに従っているが、不況時には別のモデルに従っている、というような現象を考えます。 実際には状態は観測できないので値動きのデータしか手に入りませんが、レジームスイッチングモデルを利用すればどの状態が背後にあるのかの推定ができるだけでなく、それぞれの状態がどのような特徴を持っているのかを知ることができます。
状態がある一定の確率に従って遷移する2状態レジームスイッチングモデルを例に考えてみましょう。 それぞれの状態を (\(r1,r2\)) とし、 \(r1\) から \(r2\) に移る確率を \(p1,2\) とすると、 \(r1\) に留まり続ける確率は \(1−p1,2\) となります。 \(r2\) から \(r1\) への推移確率 \(p2,1\) についても同様に考えることができます。 \(r1\) でも \(r2\) でも時系列がAR( \(p\) )モデルに従うことを仮定すると、そのようなモデルは2状態レジームスイッチングAR( \(p\) )モデルとよばれます。 ARモデルに対してだけでなく、MA, ARMA, ARIMA, ARCHなどをベースとするモデルも考えることができます
Pythonでは、レジームスイッチングARモデルがstatsmodelsのMarkovAutoregression()で実装されています。
時系列クラスタリング
クラスタリングとは、似たものをグループとしてまとめるタスクです。 ここでは、たくさんの時系列データを複数のグループに分けることを考えます。 売上の時系列をもとにたくさんの店舗をグループ分けしたり、値動きをもとに市場の株式をグループ分けするような状況です。
時系列クラスタリングの最も単純なアプローチは、時系列どうしがどのぐらい似ていないか(距離・非類似度)をもとに、k-means法や階層的クラスタリングなど、通常のクラスタリングの手法を適用することです。 非類似度の計算は大きく次の二つに分けられます。
- 同時点を比較する非類似度
- 時系列に特化した非類似度
同時点を比較する非類似度
最もよく使われるユークリッド距離 (Euclidean distance) など、通常の距離尺度も時系列に対して考えることができます。 ユークリッド距離は全要素についての差の二乗を足し合わせ、その平方根をとるものです。 時系列 \(x,y\) のユークリッド距離\( deuclid(x,y) \)は次で与えられます。
$$
d_{euclid}(x, y) = \sqrt{\sum_{t=1}^T (x_t – y_t)^2}
$$
時系列に特化した非類似度
時系列に特化した非類似度にDynamic Time Warping (DTW) があります。 長さの異なる時系列間の非類似度は、どの時点どうしで差をとれば良いかわからないため、ユークリッド距離などで求めることができません。 その代わりに、長さの違う要素から最適なマッピングを見つけることができる、より柔軟な方法が必要になります。 ユークリッド距離は同時点どうしの差を求めているので、対角線のマッピングをしていることになります。
一方DTWでは次図のようなマッピングを許し、それが最小になるようなマッピングにおける距離が非類似度として出力されます。
長さの違う系列どうしを比較できるだけでなく、波形が似ているがそのタイミングが若干異なるような場合にも有用です。たとえば、1日を通した売上の推移が非常によく似ているのに、そのピーク時間が若干異なる場合などが考えられます。
Pythonでは、DTWの算出はfastdtwモジュールで実装されています。
まとめ
時系列データを解析するためのSARIMAモデル以外の様々なモデルについて説明しました。
分析したいデータに応じて、使い分けてみてください。
最新投稿記事
-
AIプロジェクトの企画と失敗しない進め方を解説 2021年1月19日
-
AVILEN人材育成コース受講体験談:山田裕之さん「E資格の”その先”を目指して」 2021年1月8日
-
AI導入とは?RPAとの関係、プロセス、事例、メリット、費用を詳細に解説 2020年12月7日
-
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
-
AI人材を育成できる研修プログラムを一挙紹介! 2020年10月20日
-
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
-
JDLAとは?G検定、E資格の認定プログラム、合格者の会など紹介! 2020年10月14日
-
G検定(2020#3)受験申し込み開始、11月7日(土)実施-JDLA 2020年10月1日
-
【独占】コロナ禍で人材登録急増、アノテーション単月売上高は4倍超-パソナJOB HUB 2020年10月1日
-
E資格を転職に活用!評判とデータを徹底調査! 2020年9月29日
週間ランキング
【2021年版】コスパ重視のG検定対策!おすすめの本・講座・教材を一挙紹介! 2020年6月6日
G検定に短期間・独学で合格した勉強法を解説! 2020年8月3日
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
G検定は難しい?難易度・合格ライン・問題を徹底解説! 2020年6月19日
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
G検定に落ちた人、合格した人。勉強法の違いはどこにある? 2020年6月25日
最弱オセロを初めて攻略した天才オセロ高校生。負け方を解説! 2020年7月31日
E資格の難易度を、合格率と問題から徹底分析! 2020年8月11日
【2021年版】E資格とは?大注目のディープラーニングの資格を解説! 2020年9月29日
E資格を転職に活用!評判とデータを徹底調査! 2020年9月29日
