AI/Time Series

시계열 데이터 분석하기 : 데이터의 정상성

방황하는 데이터불도저 2024. 3. 5. 01:36

시계열 데이터를 분석하는 목적은 아래와 같습니다.

  1. 시간에 따른 데이터의 패턴을 파악하기 위함. (ex. 계절성, 추세와 같은 변동성 + 자기상관성 등)
  2. 분석된 패턴에 기반한 예측 모형을 통해 Forcasting(시계열 예측)하기 위함.

시계열 분석은 쉽게 말하면 과거의 값의 패턴을 분석해서 미래의 값을 추정하기 위한 것입니다. 이를 위해 가장 기본적인 것은 시계열 데이터가 정상성을 유지해야한다는 것입니다.

 

Why? 왜 정상성을 유지해야하는가?? 왜 잡음만 있는 상태에서 시계열을 예측해야하는가?

 

먼저 이론적으로는 정상성을 띈다는 말은 시계열 데이터가 시점과 상관없이 일정한 평균과 분산을 가진다는 의미이다. 어떤 시점에 데이터를 측정해도 일정한 변동폭(정규분포를 따르는 잡음)을 가진다는 의미입니다. 이를 자기상관성이 없다고 표현할 수 있고, 결국엔 다른 시점간의 데이터끼리 i.i.d(independent and identically distributed)를 만족합니다. 

 

반대로 비정상성 시계열 데이터는 시점에 따라 평균과 분산이 다르고, 변동폭이 불규칙하기 때문에 과거 관측 데이터의 분석으로는 미래의 데이터를 예측을 하기가 어렵습니다. 

 

따라서, 정상성을 띄는 데이터여야지 t-10 ~ t-1 까지의 특징으로 t ~ t+10까지를 예측하는데 도움이 되기때문에 시계열 데이터가 정상성을 만족하도록 처리하는 과정이 필요하게됩니다.

 

데이터가 정상성을 띄도록 만들어주는 방법으로는 차분과 로그를 적용하는 것이 있습니다. 방법은 매우 간단합니다.

 * 관련용어 : 시차(lagged time, time lag)

 

차분이란, 영어로 differencing으로 말 그대로 일정 시차의 데이터끼리 차이를 계산하는 것입니다. 차분한 값은 시간에 따라 데이터 변화한 정도로 차분할 간격을 어느정도로 줄지가 hyperparameter로 결정되어야합니다. 데이터의 특성에 따라서 적당히 차분해준 후의 데이터 평균이 일정해집니다. 추가적으로 데이터에 로그나 제곱근과 같은 간단한 변환을 통해서는 데이터의 분산의 크기를 줄여, 분산을 일정하게 만들 수 있습니다. 

* 차분한 데이터를 다시 원래의 데이터로 돌려놓는 역차분(Inverse Difference)이라는 개념도 있습니다.

차분을 적용하기 전과 후

 

* 참고하기 좋은 자료 : https://otexts.com/fppkr/stationarity.html

 

8.1 정상성과 차분 | Forecasting: Principles and Practice

2nd edition

otexts.com

 

 

추가적으로 요소분해(decomposition)에 대해서 알아보겠습니다. 요소 분해는 비정상성을 띄는 데이터에서 어떤 변동 요소들이 있는지, 말그대로 각 요소를 분해하는 방법입니다. 분해의 종류로는 아래의 두가지가 있습니다.

 

* 비계절 데이터 분해

 

  • 추세만 있고, 패턴이 없는 불규칙적인 변동이 일어나는 경우 → 이를 제거하거나 완화하여 추세 패턴을 파악
  • smoothing > 단순이동평균를 주로 사용한다.

 

* 계절 데이터 분해

 

  • 추세, 계절성, 불규칙적변동를 각각 분해한다.
  • 가법 모형과 승법모형이 있다.
  • 덧셈 분해(가법모형, additive model)

     - 변동끼리 독립이다.
     - 변동폭이 불규칙적이다.
     - STL (Seasonal and Trend Decomposition using Loess) 함수를 사용하면 가법모델을 바탕으로 추세, 계절성, 불규칙변동으로 분해할 수 있다. 변동이 일어나는 기간의 폭에 따라서 window 크기를 설정해준다.

  • 곱셉 분해(승법모형, multiplicative model)

     - 데이터에 0이 있으면 안된다.
     - 변동간의 상관관계가 존재한다. (= 변동폭이 수준에 비례한 경우)
     - log를 취하여 가법모델로 변환이 가능하다. 가법모델로 변환한 후 STL함수를 사용하여 성분 분해를 진행한다. 분해한 뒤 exp를 적용하여 다시 값을 변환한다.

* 출처 : https://youtu.be/cUS2uISiwCA?si=c2adi75Mua8gdMhR

 


다음으로는 데이터의 정상성을 수치화된 지표로 알아볼 수 있는 방법(ACF, PACF 등)에 대해서 알아보고, 이와 관련하여 통계모형(AR, MA, ARMA, ARIMA)을 선택하는 방법 및 하이퍼파라미터 선정하는 방법 등에 대해서 알아보겠습니다.