動的回帰モデル
モデル
動的回帰モデルとは、簡単に言えば、アリマモデルと回帰モデルを組み合わせたモデルのことだ。
説明
アリマ以外の独立変数 $X$ を加えるという意味で、アリマックス $ARIMAX$ とも呼ばれる。プログラミングで実装された場合、特に以下の実践で説明されているように、Rでは xreg
のように $X$ が強調される。
実際、この段階になると、言葉よりも数式の方が楽だ。従属変数として分析する時系列データが $\left\{ y_{t} \right\}$ だとし、このデータを説明する独立変数として別の時系列データ $\left\{ x_{t} \right\}$ があると考えてみよう。
$x_{t}$ が $y_{t}$ をうまく説明できれば、それだけで時系列回帰分析が可能であり、それだけでは説明されない部分も時系列分析を行えばより良い。例えば、$\left\{ y_{t} \right\}$ が アルマモデル $ARMA(1,1)$ に従っている場合、次のような数式を考えることができる。 $$ \begin{align} y_{t} = y_{t-1} + e_{t} - \theta e_{t-1} + \beta x_{t} \end{align} $$ ただの式の組み合わせに見えるかもしれないが、実際にそうだ。回帰分析と時系列分析の両方を理解していれば、動的回帰モデルは全く難しくない概念である。名前に動的dynamicという言葉がついている理由は、回帰モデルから時系列分析モデルに進むと、もう少し理解しやすいからだ。理工学全般で、動的という言葉はシステムの状態がその前の状態で表すことができるという意味を持つ。その観点から見れば、数式 $(1)$ は、回帰分析を行いながら、その前のデータも参考にしているということだ。
実践
Rでは、このような動的回帰モデルが arima()
関数のオプションとして実装されている。動的回帰モデルを使用できれば、アリマモデルに基づく時系列分析をほぼ理解したと言っても良く、次のようなチートシートを参考にすると良い:
- (1)
x
: 分析する時系列データ $\left\{ y_{t} \right\}$ が入る。 - (2)
order
: アリマモデル $ARIMA(p,d,q)$ であれば、order=c(p,d,q)
として入れる。 - (3)
seasonal
: 季節性アリマモデル $ARIMA(p,d,q) \times (P,D,Q)_{s}$ であれば、seasonal=list(order=c(P,D,Q), period=s)
として入れる。リストとして入れる必要があることに注意。 - (4)
xreg
: 独立変数になる時系列データ $\left\{ x_{t} \right\}$ が入る。アディティブアウトライヤの場合も、同様にダミーデータを入れて処理する。 - (5)
io
: イノベイティブアウトライヤが入り、38番、96番のデータが問題であれば、io=c(38,96)
として入れる。
一緒に見る
ユニバーサルクリギング
空間データ分析には、同様に回帰分析をオーディナリクリギングに組み合わせたユニバーサルクリギングがある。