시계열 자료는 시간의 순서대로 관측된 데이터의 계열을 의미한다. 예시로 주식가격, 일일 평균기온 등을 들 수 있다.
시계열 분석의 목적은 관측된 시계열 자료를 이용하여 미래를 예측하는 데 있다.
시계열 모형 학습을 위한 전제조건은 관측치의 분포(평균, 분산 등)가 시간에 따라 변하지 않고 일정해야 한다. 이를 만족하는 데이터를 정상성(stationary) 시계열 데이터 라고 한다.
시계열의 구성요소는 다음과 같다.
- level: 일정 시간 구간에서의 시계열의 평균
- trend: 시계열의 전반적인 증가 및 감소 추세
- seasonality: 시계열의 반복 주기
- noise: 설명 가능한 noise와 설명 불가능한 noise (white noise: 평균이 0인 i.i.d한 확률변수) 로 구성.
level, trend, seasonality 모두 시간에 의존하여 변하므로, 이를 분해하거나 제거하여 정상성 시계열을 만들 수 있다.
시계열 분석에는 크게 3가지 방법이 있다.
- 통계적 시계열
- 혼합시계열 모형
- 딥러닝 시계열 모형
정상성 시계열에 대한 논의는 1,2에만 해당된다.
딥러닝 시계열 모형에서는 은닉층이 스스로 이 문제를 해결할 뿐 아니라, instance normalization으로 시계열의 평균과 분산이 시간에 의존하여 변화하는 distribution shift 문제를 해결할 수 있기 때문에 정상성 과정을 전제 조건으로 요구하지 않는다.
$ y_{1}, y_{2}, ... , y_{T} $ 를 통해 $ y_{T+1}, y_{T+2}, ... , y_{T+H} $ 를 예측하는 것이 시계열 분석의 목적이다.
$ H = 1 $ 이면 one-step ahead forecast라고 하며, $ H > 1 $ 이면 multi-step ahead forecast라고 한다.
one-step ahead forecast를 반복 적용할 시 미래로 갈 수록 신뢰도가 급격하게 하락한다.
전통적인 통계적 시계열 모형은 모두 one-step ahead forecast 이며 딥러닝 기반의 최근 시계열 모형은 모두 multi-step ahead forecast 모형이다.
시점 $ t $에서 관측된 시계열 $ y_{t} $의 dimension이 1이면 이를 univariate 시계열 이라고 하며, dimension이 2 이상이면 multivariate 시계열 이라고 한다.
다변량 시계열 데이터에서 $ N $개의 시계열이 있을 때, 시계열마다 각각의 모형을 적합하고 예측치를 출력할 시, 각각의 모형을 local 모형이라고 한다.
$ N $ 개의 시계열 각각을 예측하는데 나머지 $ N-1 $개의 시계열 정보가 예측성능을 향상시킬 경우, N개의 시계열에 오직 하나의 시계열 모형을 적용하고 $ N $ 개의 예측치를 출력하는 하나의 모형을 global 모형이라고 한다.
딥러닝을 이용한 시계열 모형의 구조는 LLM의 구조와 이론적으로 동일하기 때문에, LLM 모형의 진화와 동일한 궤적을 가지고 있다. LLM이 zero-shot으로 AGI를 지향하듯, 최근 발표된 TimeGPT, MOMENT, Lag-Llama 등 최근 발표된 시계열 모형들도 zero-shot 이다. 이러한 시계열 모형을 foundation time series model 이라고 하며, 특정 LLM 모형과 거의 동일한 구조를 가지고 있다.
시계열은 시간 순서가 중요 정보이므로 train/valid/test split은 시간 순서에 따라 이루어진다.
look-back period의 길이는 forecast period 길이의 2배~10배이며, 시계열분석 목적에 따라 결정해야 하는 hyperparameter이다.
cross-validation은 아래와 같이 할 수 있다.