R / Python で時系列データ解析

時系列データ解析

時系列データは、時間的順序を追って一定間隔ごとに観察されたデータである。このようなデータは、時刻とともに、その値が刻々と変化していく性質を持つ。時系列データの値の変化は、短期的な自己相関のほかに、傾向変動、周期変動や不規則変動などの複数の変動要因によって起こると考えられている。このような時系列データに対して解析を行うには、時系列データに適した手法を使うべきである。

時系列データ解析に適用できる代表的なモデルとして、自己回帰モデル、移動平均モデル、自己回帰移動平均モデルや自己回帰和分移動平均モデルなどがある。また、これらのモデルをベースとして拡張したモデルも多数ある。しかし、これらのモデルを使用するには、時系列データは定常性を持つことが必要とされる。定常性を持たない時系列データは、何らかの変換を行い、定常性を持たせるようにする必要がある。

定常性を持たない時系列データの解析は、定常性を持たせるように変換を行う方法の他に、状態空間モデルとよばれるモデルを使用して解析することも可能である。 状態空間モデルは様々な時系列データに適用できる柔軟なモデルである。状態空間モデルは、状態に関するモデル(システムモデル)と観測過程に関するモデル(観測モデル)の 2 つのモデルで構成され、状態の変動と観測過程で生じる誤差を区別して扱えるようにしたモデルである。観測データから観測誤差を取り除き、観測できない潜在的な時系列の変動要因を推定するのに有効である。

  1. 時系列データの特徴
  2. 基本モデル
  3. 状態空間モデル

※ 状態空間モデルのパラメーターを推定するには Stan などのベイズ推定用のパッケージを使用すると便利である。Stan の使い方のページに、Stan を用いたパラメーター推定の解析例がある。