운동하는 공대생
Time Series Analysis(시계열 분석) 본문
1. 정의
시계열이란 이름 그대로 시간의 흐름에 따라 기록 또는 저장되어있는 데이터를 분석하는 것이다. 예로 들자면 보통 기상분석 데이터, 주식, 금융 등 다양하게 활용되고 있다.
예측 모델에서는 시간을 독립변수로 생각하고 종속변수인 데이터를 예측하는 방식으로 데이터를 예측한다.
2. 시계열 데이터 정상성(Stationary)
-정상 시계열
정상 시계열이란 위 그림처럼 시간에 따른 시계열의 평균과 그리고 데이터의 분산들이 일정하고 변화되는 추세가 없어야한다. 한마디로 정의하자면 시간에 종속되지 않고 추세가 없는 데이터형이다.
3. ARIMA
ARIMA모델은 정상 시계열 데이터가 아닌 비정상 시계열( 변화의 추세를 보이는 데이터를 말한다. )를 예측하는 방식이다.
그러나 이 “자동”이라는 단어 때문에 단순하게 데이터를 적합만 하면 된다라고 생각할 수 있지만, 흘러가는대로 적합하다보면 엉뚱한 예측 결과 (ex. 시간에 따라 예측값이 선형으로 증가하거나 일직선)를 얻곤 합니다.
이를 통합했을 때, 전체적인 ARIMA 적합 및 예측 과정은 다음과 같습니다.
- 시각화: 시계열 자료를 시각화해서 추세, 계절성, 주기가 있는지 파악합니다. 혹은 데이터를 변환해줄 필요가 있는지 파악합니다.
- 추세가 있다면 정상성을 만족하지 않기 때문에 몇 차 차분이 적당할지 단위근 검정을 해야 합니다. 이는 pmdarima.arima의 ndiffs 함수로 쉽게 구할 수 있습니다.
- 계절성이 있다면 비계절성 ARIMA 대신 계절성 ARIMA (SARIMA)를 따르므로, auto_arima 함수의 seasonal = True로 지정해주어야 합니다.
- 주기가 있다면 auto_arima 함수의 m의 인자에 넣어주어야 합니다. 이는 계절적 주기에 얼마나 많은 관측치가 있는지를 명시하는 파라미터이고, 데이터 분석가가 개입해서 넣어줘야 하는 값 (apriori)입니다. 예를 들어 m = 7이면 일별 (daily), m = 52이면 주별 (weekly)1년에 52주가 있기 때문에 52의 주기를 가집니다!, m = 12이면 월별 (monthly) 데이터입니다. 기본값은 m = 1로, 비계절성 데이터를 의미합니다.
- 데이터 변환은 과거와 현재, 미래 데이터를 봤을 때 분산의 차이가 크다면 로그 변환이나 Box-Cox 변환을 고려해볼 수 있습니다.
- 모형 적합: auto_arima를 통해 적당한 p,d,q를 추정하고, 계수들을 추정합니다.
- 잔차 검정: 잔차가 백색잡음 과정인지 (=정상성을 만족하는지), 정규성 및 등분산성을 만족하는지 파악합니다.
- summary 결과에서 Ljung-Box (Q) / Heteroskedasticity (H) / Jarque-Bera (JB) 검정 만족 여부를 파악하실 수 있습니다.
- plot_diagnostics 잔차 그래프로도 정상성과 정규성을 만족하는지 파악하실 수 있습니다.
- 모형 refresh 및 예측: 모형이 잘 적합되었으면 모형을 refresh하면서 미래 관측치를 예측합니다. NEW!! 지난 번 설명에서 업데이트되는 부분! 주의할 점은 한번에 테스트 데이터를 예측하는 것이 아니라, 하나씩 예측하고 관측치를 업데이트해주는 과정이 필요하다는 점입니다. 이 부분이 바로 “모형을 refresh”하는 과정입니다.
- 모형 평가: MAPE로 잔차가 실제 값에서 얼마나 벗어나 있는지 파악합니다.
4번에서, 예측을 할 때 왜 모형을 refresh 해줘야 할까요? “refresh”는 말 그대로 “새롭게 하다”라는 의미를 갖고 있는데요.
ARIMA 모형을 refresh하지 않으면, 시간이 지나도 계속 과거 데이터로 구축한 모형으로 먼 미래를 예측하는 꼴이기 때문에 정확하게 예측하기 어렵습니다. 예컨대 4년 전 데이터로 ARIMA 모형을 구축해놓고 모형의 업데이트 없이 오늘의 데이터를 예측한다면, 좋은 예측 결과를 내기 어렵겠죠? 그 대신 가장 최신의 데이터들로 모형을 적합해야 미래의 값들을 예측하기 가장 좋을 것입니다.
출처: https://assaeunji.github.io/statistics/2021-09-08-arimapdq/
4. 결론
ARIMA 모델은 결국에는 데이터를 시각화하여 데이터의 추세와 계절성, 시간의 종속성등을 판단하여 모델을 사용할지 판단하고 그 후 파라미터를 설정하여 모델을 사용한다.
'Machine Learning' 카테고리의 다른 글
MLOps 이란? (0) | 2022.10.26 |
---|---|
Synthetic Data(합성 데이터) (0) | 2022.10.14 |
LightGBM Theory (0) | 2022.09.22 |
XGBoost Theory (0) | 2022.08.20 |
K-Mean Clustering ( K- 평균 군집화) (0) | 2022.08.16 |