ARIMAモデルにおけるドリフト
📂統計的分析ARIMAモデルにおけるドリフト
説明
時系列分析をしていると、ドリフトdriftという係数をよく見かける。

もちろん、上の場合、標準誤差に比べて係数の大きさがとても小さいから、無視しても問題ない。しかし、実際に有意な係数であり、式で書かなければならない場合は、ドリフトが何であるかを知る必要がある。残念ながら、国内にはドリフトが一体何なのかについての良い説明がなく、式を使わずに、‘定数項のようなもの’という説明しかできない。
式を読む気がなく、分析にそれほど重要でもなく、だから気にもならないなら、ただ定数項、平均程度と知っていれば問題ない。もし、その場合は以下の二番目の分析だけを見ればいい。もちろん、専門家なら、少なくとも一度は式の展開を追うことを強くお勧めする。
式的な説明
アリマモデル
∇dYt:=i=1∑pϕi∇dYt−i+et−i=1∑qθiet−i
から始めよう。いや、差分がないので、もっと単純なアルマモデルから始めよう。
Yt−i=1∑pϕiYt−i=et−i=1∑qθiet−i
簡単にするために、バックシフト Bを使った以下の表現を使ってみよう。
ϕ(B):=(1−ϕ1B⋯−ϕpBp)
θ(B):=(1−θ1B⋯−ϕqBq)
この表現を(1)に適用すると
ϕ(B)Yt=θ(B)et
これはアルマモデルの別の表現で、ここに定数項cを以下のように追加してみよう。
ϕ(B)(Yt−c)=θ(B)et
式(1)のcがまさにドリフトだ。式を見れば、ドリフトをなぜ’定数項’あるいは’平均’と説明するか理解できるだろう。もちろんこれはアルマモデルであり、差分が含まれているアリマモデルでは異なる姿で現れる。便宜上、差分はd=1回だけとってみるARIMA(p,1,q)を考えてみよう。
ϕ(B)∇(Yt−a−bt)=θ(B)et
式(2)で、aを切片intercept、bをドリフトdriftと呼ぶ。差分を解析すると
⟺⟺⟺ϕ(B)(1−B)(Yt−a−bt)=θ(B)etϕ(B)[(Yt−a−bt)−(Yt−1−a−b(t−1))]=θ(B)etϕ(B)[Yt−Yt−1−a+a−bt−b(t−1)]=θ(B)etϕ(B)(∇Yt−b)=θ(B)et
結局、bは(1)のcと同じ役割をするため、ドリフトと呼ぶのが妥当だとわかる。もちろん、2回以上の差分が必要な分析はほとんどないが、この方法で自然数dについても一般化できる。[ NOTE: 数学の直感に慣れている人なら、(2)の定数項aに差分を取ると消える現象から、微分を思い出すかもしれない。 ]
実習
分析に戻ろう。見ての通り、または予想通り、データのARIMA(1,1,2)と差分を取ったデータのARIMA(1,0,2)は当然同じになる。ただ一つ変わったのは、ARIMA(1,1,2)でdrift
と書かれていた係数の名前が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)