R Time Series Analysis 時系列解析(15) ここまでのまとめ

これまで勉強した時系列解析の手法・考え方をまとめる。確信は無い。実際に使う中で随時追記していく予定。

  1. データを読み込んで、ts()で時系列に変換。
  2. 時系列を図示、自己相関係数(acf)→ trend, seasonalの存在、分散の一様性を目視で確認。
  3. seasonalが存在する場合、SARIMAを使う。2の結果で次数p,d,q,k,l,mの推定を,する(←これが直感的に出来ると良いのだが…)。
  4. urcaパッケージのur.df()関数で単位根検定。やさしいモデルの形から検定を始めて、検定→単位根あり→差分をとった系列を作成→検定→単位根あり→…→単位根なし、となるまで検定を繰り返す。
  5. 単位根が無くなるまでに何度差分をとったかを確認することで、SARIMAまたはARIMAの次数が決定するので、arima()関数でモデルの推定をする。SARIMAの場合はseasonal=list(order(k,l,m),frequency=周期)を与える。
  6. 5で推定したパラメータの有意性をチェックする。(arima()の結果から表示される標準誤差を用いてt値を計算し、t検定)
  7. 推定したモデルについて、定常性の条件が満たされているか、polyroot()関数で確認する。
  8. モデルの残差がホワイト・ノイズと見なせるかをtsdiag()関数で確認する。(Ljung-Box検定)
  9. 6-8をパスしたモデルのうち、AICを最小とするモデルを選択する。
  10. predict(arimaモデル, n.ahead=予測期間)を用いて予測を行う。

とりあえず、ARIMA関連はこれで一段落。次からは状態空間モデル、正規分布を仮定しない場合のモデル(MCMCなどで作っていくモデル)、変化点検出などを勉強していきたい。