時系列データを解析するための様々なモデル2019/09/232020/05/27時系列データを解析するための様々なモデル時系列分析ライター:古澤嘉啓TwitterFacebookこの記事では、時系列データを解析するためのSARIMAモデル以外の様々なモデルについて説明します。統計学の初歩の知識を前提とした初心者向け入門記事です。Pythonで時系列解析・分析に興味がある方は、後学のために参考にしてみてください。独立かつ同一の分布に従うとしていました。金融分野の時系列では、大きな変動が局所的に現れる現象(ボラティリティ・クラスタリング)がしばしば観測されます。ある銘柄の価格にショックが起こった後に売り買いが激しくなり大きな変動が続く、という現象は想像に易いでしょう。時系列構造を導入するモデルがボラティリティ変動モデルです。自己回帰するモデルと解釈することができます。ARCH型モデルは平均について何も記述していないので、予測という観点ではメリットを感じないかもしれません。誤差の分散をモデリングしているため、区間予測をより正確に行うことができることや、金融分野では分散そのものがリスクとして重要視されていることなど、様々な利点があります。そのものが確率的ショックを受ける確率的ボラティリティモデル、正のショックよりも負のショックがより大きな影響をもつことを表現したGJRモデルなど、様々なモデリングが提案されています。ARCHモデルやGARCHモデルはarchモジュールで実装されています。モデルはARモデルを多変量に拡張したモデルで、複数の定常時系列の関係を説明することができます。)モデルは次式で表されます。1時点前の自身でだけでなく、1時点前のお互いでも回帰されていることがわかるでしょう。このように、VARモデルは複数の時系列間の関係性を表現することができます。ARモデルがARMAモデル・ARIMAモデルへと拡張されるように、VARモデルもVARMAモデルやVARIMAモデルへと拡張することができますが、推定が難しいことなどからVARモデルが使われることが多いようです。VARモデルを利用するメリットの一つに、時系列間の関係を見ることがあります。グレンジャー因果性がある」といいます。インパルス応答では、ある変数にショックがあるとき、その変数や他の変数に及ぼす影響をみています。Pythonでは、statsmodelsのvector_ar()でVARモデルが実装されています。model)時系列の裏側に離散的な状態が存在し、その状態(レジーム)によってモデルが変化するようなモデルをレジームスイッチングモデルといいます。株価の値動きを考えたとき、好景気時は時系列があるモデルに従っているが、不況時には別のモデルに従っている、というような現象を考えます。実際には状態は観測できないので値動きのデータしか手に入りませんが、レジームスイッチングモデルを利用すればどの状態が背後にあるのかの推定ができるだけでなく、それぞれの状態がどのような特徴を持っているのかを知ることができます。状態がある一定の確率に従って遷移する2状態レジームスイッチングモデルを例に考えてみましょう。ついても同様に考えることができます。)モデルとよばれます。ARCHなどをベースとするモデルも考えることができますPythonでは、レジームスイッチングARモデルがstatsmodelsのMarkovAutoregression()で実装されています。時系列クラスタリングクラスタリングとは、似たものをグループとしてまとめるタスクです。ここでは、たくさんの時系列データを複数のグループに分けることを考えます。売上の時系列をもとにたくさんの店舗をグループ分けしたり、値動きをもとに市場の株式をグループ分けするような状況です。時系列クラスタリングの最も単純なアプローチは、時系列どうしがどのぐらい似ていないか(距離・非類似度)をもとに、k-means法や階層的クラスタリングなど、通常のクラスタリングの手法を適用することです。非類似度の計算は大きく次の二つに分けられます。通常の距離尺度も時系列に対して考えることができます。ユークリッド距離は全要素についての差の二乗を足し合わせ、その平方根をとるものです。\)は次で与えられます。長さの異なる時系列間の非類似度は、どの時点どうしで差をとれば良いかわからないため、ユークリッド距離などで求めることができません。その代わりに、長さの違う要素から最適なマッピングを見つけることができる、より柔軟な方法が必要になります。ユークリッド距離は同時点どうしの差を求めているので、対角線のマッピングをしていることになります。DTWでは次図のようなマッピングを許し、それが最小になるようなマッピングにおける距離が非類似度として出力されます。長さの違う系列どうしを比較できるだけでなく、波形が似ているがそのタイミングが若干異なるような場合にも有用です。1日を通した売上の推移が非常によく似ているのに、そのピーク時間が若干異なる場合などが考えられます。Pythonでは、DTWの算出はfastdtwモジュールで実装されています。まとめ時系列データを解析するためのSARIMAモデル以外の様々なモデルについて説明しました。分析したいデータに応じて、使い分けてみてください。G検定を取得するメリットを解説!最弱オセロを初めて攻略した天才オセロ高校生。TrendCOMMENTコメントを残すコメントをキャンセルメールアドレスが公開されることはありません。コメント*お名前*メールアドレス*プライバシーポリシーはこちら上に表示された文字を入力してください。