시계열분석에서의 변환

시계열분석에서의 변환

Transformation

빌드업

시계열에서 변환이 필요한 이유는 시간이 흐를수록 분산이 커지는 경우 그에 따른 ‘패널티’를 줘서 분산을 일정하게 하고 정상성을 얻기 위함이다. 루트 $\sqrt{}$ 나 로그 $\log$ 는 값이 클수록 줄어드는 양이 많기 때문에 자주 사용된다. 당연하지만 분산이 줄어드는 경우에는 데이터의 추이가 어떤 점으로 수렴한다는 의미가 되므로 변환 이전에 시계열 분석조차 필요 없다.

테스트 1

박스-칵스 변환: $$g(x) := \begin{cases} \displaystyle {{ x^{\lambda} - 1 } \over { \lambda }} & , \lambda \ne 0 \\ \log x & , \lambda = 0 \end{cases}$$

눈대중만으로 변환을 취하는 게 맞는지, 어떤 변환을 취하는 게 적절한지 확신이 서지 않을 땐 보통 박스-칵스 변환의 가설검정을 이용하며, 거꾸로 왜 변환을 더 이상 취할 필요가 없는지를 정당화하는데도 쓸 수 있다.

실습

내장데이터 UKgas를 불러와보자.

20190303\_121926.png

UKgas.png

UKgas는 영국에서 가스의 소비량을 분기별로 기록한 데이터로써, 보다시피 해가 가면서 변동이 더욱 심해지는 것을 알 수 있다. 이렇듯 분산이 일정하지 않은 경우엔 원활한 분석이 어렵다. 따라서 로그와 같은 변환을 해줌으로써 데이터를 다루기 편하게 만들어주어야한다.

20190303\_121915.png

logUKgas.png

변환을 취하자 완벽하지는 않지만 눈에 띄게 분산이 일정해진 것을 알 수 있다.

코드

아래는 예제 코드다.

UKgas
win.graph(4,4); plot(UKgas,main='UKgas')
log(UKgas)
win.graph(4,4); plot(log(UKgas),main='log(UKgas)')

같이보기


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

댓글