아리마 모형에서의 드리프트

아리마 모형에서의 드리프트

Drift in arima model

설명

시계열 분석을 하다보면 종종 다음과 같이 드리프트Drift라는 계수를 보게 된다.

20190716\_155512.png

물론 위의 경우 표준오차에 비해서 계수의 크기가 너무 작기 때문에 무시해도 상관 없다. 그러나 실제로 유의한 계수인 동시에 수식으로도 써야할 일이 있다면 드리프트가 무엇인지 알아야한다. 아쉽게도 국내에는 드리프트가 도대체 무엇인지에 대한 좋은 설명이 없으며, 수식을 동원하지 않고서는 ‘상수항 비슷한 것’이라는 설명밖에 할 수 없다.

수식을 읽을 생각이 없고 분석에 마땅히 중요한 것도 아니며 그래서 궁금하지도 않다면 그냥 상수항, 평균정도로 알고 넘어가도 상관 없다. 아래에 등장할 두 번째 분석만 보면 된다. 물론 전공자라면 적어도 한 번은 수식 전개를 따라가보는 것을 강력하게 권장한다.

수식적인 설명

아리마 모형 $$ \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} $$ 에서 시작해보자. 아니, 차분이 없어서 그보다 단순한 아르마 모형에서 시작해보자. $$ \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} $$ 간략하게 나타내기 위해 백쉬프트 $B$ 를 쓴 다음의 표현을 사용해보자. $$ \phi(B) := \left( 1 - \phi_{1} B \cdots - \phi_{p} B^{p} \right) $$

$$ \theta(B) := \left( 1 - \theta_{1} B \cdots - \phi_{q} B^{q} \right) $$ 이 표현을 $(1)$ 에 적용시키면 $$ \phi(B) Y_{t} = \theta(B) e_{t} $$ 이것이 바로 아르마 모형의 또다른 표현인데, 여기서 상수항 $c$ 를 다음과 같이 추가해보자. $$ \phi(B) \left( Y_{t} - c \right) = \theta(B) e_{t} $$ 식 $(1)$ 의 $c$ 가 다름아닌 드리프트 다. 수식을 보면 드리프트를 왜 ‘상수항’ 혹은 ‘평균’으로 설명하는지 납득이 갈 것이다. 물론 이것은 아르마 모형이고, 차분이 포함된 아리마 모형에 대해서는 다른 모습으로 나타난다. 편의를 위해 차분은 $d=1$ 번만 취하는 $ARIMA(p,1,q)$ 를 생각해보자. $$ \begin{align} \phi(B) \nabla \left( Y_{t} - a - b t \right) = \theta(B) e_{t} \end{align} $$ 식 $(2)$ 에서 $a$ 를 절편Intercept , $b$ 를 드리프트Drift라 부른다. 차분을 풀어헤쳐보면 $$ \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*} $$

결국 $b$ 는 $(1)$ 에서의 $c$ 와 같은 역할이 되므로 드리프트라고 부르는 것이 타당함을 알 수 있다. 물론 차분이 두 번 이상 필요한 분석은 거의 없지만, 이와 같은 방법으로 자연수 $d$ 에 대해서도 일반화 할 수 있다. [ NOTE: 수학적인 감각에 익숙한 사람이라면 $(2)$ 에서 상수항 $a$ 에 차분을 취하면 없어지는 현상에서 미분을 떠올릴 수 있을 것이다. ]

실습

20190716\_155837.png 다시 분석으로 돌아와보자. 보다시피, 아니 보나마나 그냥 데이터의 $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)
댓글