logo

ARIMAモデルにおけるドリフト 📂統計的分析

ARIMAモデルにおけるドリフト

説明

時系列分析をしていると、ドリフトdriftという係数をよく見かける。

20190716\_155512.png

もちろん、上の場合、標準誤差に比べて係数の大きさがとても小さいから、無視しても問題ない。しかし、実際に有意な係数であり、式で書かなければならない場合は、ドリフトが何であるかを知る必要がある。残念ながら、国内にはドリフトが一体何なのかについての良い説明がなく、式を使わずに、‘定数項のようなもの’という説明しかできない。

式を読む気がなく、分析にそれほど重要でもなく、だから気にもならないなら、ただ定数項、平均程度と知っていれば問題ない。もし、その場合は以下の二番目の分析だけを見ればいい。もちろん、専門家なら、少なくとも一度は式の展開を追うことを強くお勧めする。

式的な説明

アリマモデル dYt:=i=1pϕidYti+eti=1qθieti \nabla^{d} Y_{t} := \sum_{i = 1}^{p} \phi_{i} \nabla^{d} Y_{t-i} + e_{t} - \sum_{i = 1}^{q} \theta_{i} e_{t-i} から始めよう。いや、差分がないので、もっと単純なアルマモデルから始めよう。 Yti=1pϕiYti=eti=1qθieti \begin{align} \displaystyle Y_{t} - \sum_{i = 1}^{p} \phi_{i} Y_{t-i} = e_{t} - \sum_{i = 1}^{q} \theta_{i} e_{t-i} \end{align} 簡単にするために、バックシフト BBを使った以下の表現を使ってみよう。 ϕ(B):=(1ϕ1BϕpBp) \phi (B) := \left( 1 - \phi_{1} B \cdots - \phi_{p} B^{p} \right)

θ(B):=(1θ1BϕqBq) \theta (B) := \left( 1 - \theta_{1} B \cdots - \phi_{q} B^{q} \right) この表現を(1)(1)に適用すると ϕ(B)Yt=θ(B)et \phi (B) Y_{t} = \theta (B) e_{t} これはアルマモデルの別の表現で、ここに定数項ccを以下のように追加してみよう。 ϕ(B)(Ytc)=θ(B)et \phi (B) \left( Y_{t} - c \right) = \theta (B) e_{t} (1)(1)ccがまさにドリフトだ。式を見れば、ドリフトをなぜ’定数項’あるいは’平均’と説明するか理解できるだろう。もちろんこれはアルマモデルであり、差分が含まれているアリマモデルでは異なる姿で現れる。便宜上、差分d=1d=1回だけとってみるARIMA(p,1,q)ARIMA(p,1,q)を考えてみよう。 ϕ(B)(Ytabt)=θ(B)et \begin{align} \phi (B) \nabla \left( Y_{t} - a - b t \right) = \theta (B) e_{t} \end{align} (2)(2)で、aa切片interceptbbドリフトdriftと呼ぶ。差分を解析すると ϕ(B)(1B)(Ytabt)=θ(B)et    ϕ(B)[(Ytabt)(Yt1ab(t1))]=θ(B)et    ϕ(B)[YtYt1a+abtb(t1)]=θ(B)et    ϕ(B)(Ytb)=θ(B)et \begin{align*} & \phi (B) (1 - B) \left( Y_{t} - a - b t \right) = \theta (B) e_{t} \\ \iff & \phi (B) \left[ \left( Y_{t} - a - b t \right) - \left( Y_{t-1} - a - b (t-1) \right) \right] = \theta (B) e_{t} \\ \iff & \phi (B) \left[ Y_{t} - Y_{t-1} - a + a - bt - b(t-1) \right] = \theta (B) e_{t} \\ \iff & \phi (B) \left( \nabla Y_{t} - b \right) = \theta (B) e_{t} \end{align*}

結局、bb(1)(1)ccと同じ役割をするため、ドリフトと呼ぶのが妥当だとわかる。もちろん、2回以上の差分が必要な分析はほとんどないが、この方法で自然数ddについても一般化できる。[ NOTE: 数学の直感に慣れている人なら、(2)(2)の定数項aaに差分を取ると消える現象から、微分を思い出すかもしれない。 ]

実習

20190716\_155837.png 分析に戻ろう。見ての通り、または予想通り、データのARIMA(1,1,2)ARIMA(1,1,2)差分を取ったデータのARIMA(1,0,2)ARIMA(1,0,2)は当然同じになる。ただ一つ変わったのは、ARIMA(1,1,2)ARIMA(1,1,2)driftと書かれていた係数の名前がARIMA(1,0,2)ARIMA(1,0,2)ではmeanに変わったことだ。式を理解したらもっと良いが、理解できなくても、ドリフトが’定数項、平均のようなもの’という程度は推測できるだろう。

コード

library(TSA)
data("oil.price")
out<-auto.arima(oil.price); summary(out)
out<-auto.arima(diff(oil.price)); summary(out)