logo

시계열분석에서의 차분 📂통계적분석

시계열분석에서의 차분

정의 1

  1. 오퍼레이터 $B$ 를 $B Y_{t} = Y_{t-1}$ 과 같이 정의하고, 백쉬프트backshift라 한다.
  2. 오퍼레이터 $\nabla$ 를 $\nabla := 1 - B$ 그리고 $\nabla^{r+1} = \nabla \left( \nabla^{r} Y_{t} \right)$ 와 같이 정의하고 차분 이라한다.

설명

차분의 정의에 따르면 $1$차 차분은 $$ \nabla Y_{t} = Y_{t} - Y_{t-1} $$ 와 같이 계산되며, $2$차 차분은 $$ \begin{align*} \nabla^2 Y_{t} =& \nabla \left( \nabla Y_{t} \right) \\ =& \nabla \left( Y_{t} - Y_{t-1} \right) \\ =& \nabla Y_{t} - \nabla Y_{t-1} \\ =& ( Y_{t} - Y_{t-1} ) - ( Y_{t-1} - Y_{t-2} ) \\ =& Y_{t} - 2 Y_{t-1} + Y_{t-2} \end{align*} $$ 와 같이 계산된다. 다시 말해 $Y_{t}$ 에 차분을 두 번 취했다고 해서 $Y_{t} - Y_{t-2}$ 가 되지는 않는다. 이렇게 길게 늘어지기만 하는 차분은 계절형 차분으로 따로 정의된다.

시계열에서 차분이 필요한 이유는 트렌드trend가 있는 데이터를 다룰 때 편리하기 때문이다. 시계열분석에서 트렌드란 ‘데이터의 값이 일정 기간동안 증가하거나 감소하는 경향’을 말하는데, 이 경우 정상성에 문제가 있다. 해서 적절하게 차분을 취해 데이터가 정상성을 갖도록 하는 전처리를 거치게 된다. 단순히 증가하거나 감소하는 정도라면 한 번으로 충분하며, 복잡합 모양을 갖추면 그만큼 차분을 많이 취해야 할 수도 있다.

눈대중만으로 차분을 취하는 게 맞는지, 얼마나 취하는 게 적절한지 확신이 서지 않을 땐 보통 디키-풀러 테스트를 사용하며, 거꾸로 왜 차분을 더 이상 취할 필요가 없는지를 정당화하는데도 쓸 수 있다.

실습

TSA 패키지의 oil.price 데이터를 살펴보자.

20190225\_105705.png

0.png

oil.price는 1986년부터 2005년까지의 원유 가격에 대한 데이터다. 뒤로 갈수록 급등세가 강하기 때문에 정상성이 결여되어있다고 할 수 있다. 이런 데이터는 분석이 곤란하기 때문에 차분을 취해줌으로써 트렌드를 제거한다.

R 에서 차분을 취하는 방법은 아주 쉽다. diff() 함수를 사용하면 첫번째 관측치를 탈락시키고 차분된 데이터를 리턴한다. 자주 쓸 일은 없지만 lag=n 라는 옵션을 줌으로써 $n$ 차 차분 역시 간단하게 할 수 있다.

20190225\_105734.png

D0.png

차분을 취한 결과 등락 자체는 여전히 거세지만 평균적으로는 $0$ 근처에서 움직임을 확인할 수 있다.

코드

아래는 R 예제 코드다.

library(TSA)
data(oil.price); oil.price
win.graph(4,4); plot(oil.price,main='oil.price\')
diff(oil.price)
win.graph(4,4); plot(diff(oil.price),main='∇oil.price\')
 
diff(oil.price,lag=2)

같이보기


  1. Cryer. (2008). Time Series Analysis: With Applications in R(2nd Edition): p90. ↩︎