본문 바로가기

Data Science/시계열(Time-Series) 분석

ARMIA and SARIMA Models

반응형

이번 포스팅에서는 저번에 알아보았던 AR, MA, ARMA에 이어 차분을 추가한 ARIMA 모델계절적 AIRMA 모델인 SARIMA 모델에 대해 알아보려고 한다.(여기서 S는 Seasonal을 의미한다.) 목차는 다음과 같다.

 

1. ARIMA 모델

2. SARIMA 모델

3. 시계열 데이터의 예측력 검정방법

1. ARIMA 모델

ARIMA 모델은 기존에 배웠던 ARMA(AR+MA)모델에 차분을 추가해준 모델을 의미한다. 여기서 차분을 해주는 이유가 무엇일까? 바로 비정상성의 데이터를 정상화 시켜주기 위함이다. ARIMA 모델의 수학적 수식은 다음과 같다.

 

ARIMA 모델의 수학적 수식

 

위 수식에서 C라는 상수값이 존재하는데, 이는 차분(d)의 값에 따라 C값이 달라지게 된다.

 

  • d = 0 (차분을 하지 않을 때), 단순히 평균(mean)값을 C값으로 추정

  • d > 0 (차분을 할 때), C값을 0으로 추정

ARIMA 모델에서도 AR, 차분(I), MA의 차수를 정해주기 위해서 ACF, PACF 함수 그래프를 보면서 판단할 수 있다. 주어진 데이터에 차분이 선행되어야 하므로 원 데이터에서 차분이 적용된 후 데이터의 ACF, PACF 함수를 살펴본다. 이 때부터는 ARMA 모델에서 AR, MA의 차수를 결정하는 방식과 동일해진다. ARMA 모델에서의 차수 결정방법은 하단의 링크를 참고하자. 또한 다시 기억을 상기시키기 위해 Correlogram을 한번 더 살펴보자.

# https://techblog-history-younghunjo1.tistory.com/97

 

ARIMA 자기상관성도표(Correlogram)

 

2. SARIMA 모델

SARIMA 모델은 ARIMA 모델에 계절적 성분이 S(Seasonal)를 추가된 모델이다. 계절적 성분이기 때문에 주어진 데이터의 주기(m값)를 설정해줌으로써 원하는 SARIMA 모델을 적합시킬 수 있다. SARIMA 모델에서 계절적 성분의 AR, MA, 차분 차수를 결정해주는 방법이 있다. 일반적인 Non-seasonal ARIMA 모델과 비슷하지만 x축이 주기(m값)값에 따라 막대 그래프가 그려지는 것을 볼 수 있다. 아래 필기그림을 보면서 SARIMA 모델일 때는 어떻게 차수를 결정해주는지 살펴보자.

 

그림은 주기(m)가 12인 월별 데이터일 때를 예시로 다루었다.

 

SARIMA 차수를 결정하는 방법

 

SARIMA 모델에서 차분 횟수를 결정하기 위해서는 Non-seasonal ARIMA 모델과는 다른 함수를 사용해야 한다.(R 코드상에서) 보통 일반적인 ARIMA 모델에서는 diff 함수에 추가 인자를 사용하지 않고 그냥 원 데이터의 차분 1회를 수행해주지만 SARIMA 모델에서는 diff 함수에 lag인자를 추가해주어 계절적 차분을 수행한다. 이 때 lag값에는 원 데이터의 주기(m)값이 들어간다. 

 

3. 시계열 데이터의 예측력 검정방법 

시계열 데이터는 시계열이 없는 일반적인 데이터일 때 예측력을 검정하는 K-fold cross validation과 같은 기법을 사용해선 안 된다. 왜냐하면 시계열이라는 순서가 예측력에 지대한 영향을 미칠 수 있기 때문이다. 따라서 시계열 데이터를 위한 예측력 검정방법이 따로 존재한다. 종류는 2가지인데, 하나는 고전적인 방법이라고 불리우고 하나는 학습구간을 이동하는 Sliding 기법이다.

 

3-1. 고전적인 방법

첫 시작점을 고정시켜 Test 데이터의 모든 구간을 Train 데이터의 마지막 데이터로만 예측을 하는 방법이다. 따라서 Test 데이터 구간에서 마지막 시계열에 있는 데이터들에게도 영향을 미치기 때문에 예측력이 좋지 않게 나온다. 밑의 그림을 보면서 이해해보자. 해당 검정방법을 코드 상에서 이용하기 위해서는  R에서 tsCV 함수로 제공하고 있다.

 

고전적인 예측력 검정방법

 

3-2. Sliding 기법

학습 구간을 이동시켜서 검정하는 방법이다. 시계열 데이터 특성상 미래의 데이터는 직전의 데이터에 영향을 미친다는 점에 잘 착안해서 고안된 방법이다. 슬라이딩 기법은 R코드 상에서는 자체적으로 제공되지 않기 때문에 보통 사용자가 직접 정의해서 사용을 하게 된다. 그림을 통해 이해한다면 다음 그림과 같다.

 

슬라이딩 예측력 검정방법

 

반응형