時系列データ分析の方法

時系列データ分析(データサイエンティストのための基礎知識)

時系列分析を実際に使う視点から書かれており、初めて時系列データを扱う人にはいい本だと思う。株価の事例で、系列データの定常性、ARモデル、ARCHモデル、GARCHモデルについて説明しており、単純なARモデルから、うまくフィッティングできない場合は、より一般的なARCH、GARCHモデルを使用していき、実際にデータ分析を体験できるように書かれており、わかりやすい。体系的に学ぶには理論的なことがまとめられている書籍を勉強すれば、さらに理解が深まると思う。

本書を参考に時系列データの解析の流れをまとめた。


時系列データの分析方法

時系列データの取り扱いの難しさ

  • 連続時間の関数の形が不明
  • 関数の形が時間の経過とともに変化する可能性がある。
  • 観測データにノイズがあるので関数のパラメータの正確な推定は容易ではない

時系列データを単純に扱う為以下のように離散化と仮定

  • 連続時間 => 離散化
    • 例として株価の連続データを離散化し、前後の時間データにおける株価から収益率を算出
  • 離散化したデータが、同一の確率分布、.独立に抽出された標本という2つの仮定し(例えば正規分布)、収益率の平均値および標準偏差(ボラリティ)を比較評価する。
    • 正規分布であるかどうかの統計的仮説検定(Shapiro-Wilkの検定)
  • 規則性があるかないか(独立に抽出されているか)の統計的仮説検定(2値データに対する:連の検定 library(tseries))~ 時間依存性があるかどうか
    • 独立に抽出されていない場合:偏った抽出-> 時間依存性がある
    • 時間依存性はデータの抽出順序に関連する為、平均値・標準偏差・ヒストグラムでは評価できない。

時系列モデル

時間依存性をどう取り入れるか

  1. 現在のデータの値が、過去のデータの値に依存する
  2. 試行ごとにばらつきが異なる(毎回異なる確率分布から抽出される)

過去データに依存するかどうかを確かめる。

  • 「時間差を考慮した自分自身のデータとの相関係数」の算出とコレログラム
    • 自己相関係数(acf)
    • 偏自己相関係数(acf(type="partial"))
  • 統計的仮説検定:Ljung-Box検定、帰無仮説は「自己相関関係を有していない」(Box.test(type="Ljung-Box"))

定常性
時系列データが、ある確率変数列{R_1, R_2, R_3, ... , R_n }において次の3つの条件を満たす時、定常性を持つと定義する。

E(R_t)=a 平均が一定
Var(R_t) = gamma_0 分散が一定
Cov(R_t, R_{t-h}) = gamma_h 自己共分散がラグhのみに依存

なお、以下の特殊な場合は白色雑音(ホワイトノイズ)である。

E(R_t) = 0
Var(R_t) = sigma^2
Cov(R_t, R_{t-h}) = 0

自己回帰モデルを導入

  • AR(1)モデル(ar(data, aic=F, order.max=1))
    • 上記残差がホワイトノイズの仮定を満たしているか?
    • 残差に対してafcを適用し、自己相関がないか確認する
  • 分散不均一性がある場合、次のAR(1) + ARCH or AR(1) + GARCHを適用する。
    • 残差が標準正規分布にしたがっているか確認する。(QQプロット、Shapiro-Wilk検定(sharpiro.test)
  • 標準か残差の分布が標準正規分布での当てはまりが悪い場合、skew normal分布を使用してみる。
    • 残差がskew normal分布にしたがっているか確認する。(qqmath、Kolmogorov-Smirnov検定(ks.test)

シミュレーションによる予測

Fittingで得られた時系列モデルを使用し、モンテカルロ法により将来の時系列データをシミュレートする。

コメントを残す

Scroll to top