상세 컨텐츠

본문 제목

시계열 스터디 3주차(김태영) : ARIMA / SARIMA

심화 스터디/시계열 분석 스터디 (feat.금융)

by needmorecaffeine 2023. 3. 20. 21:28

본문

작성자 : 14기 김태영

 


 

 

해당 포스팅은 "실전 시계열 분석" 교재와 실습코드 / 고려대학교 DMQA 강의와 강의자료 / K-Mooc 전치혁 교수님 강의를 기반으로 작성되었습니다.

 

https://www.youtube.com/watch?v=ma_L2YRWMHI&list=PLpIPLT0Pf7IqSuMx237SHRdLd5ZA4AQwd&index=9 

 

http://www.kmooc.kr/courses/course-v1:POSTECHk+IMEN677+2021_T2/about 

 

시계열분석 기법과 응용

시계열 데이터 분석을 통하여 시간에 따른 상관관계 등의 패턴 추출 및 이를 바탕으로 미래에 대한 예측을 위한 다양한 기법 학습 및 응용 능력을 배양한다.

www.kmooc.kr


1. ARIMA (Autoregressive Integrated Moving Average)

 

 ARIMA는 ARMA(Autoregressive Moving Average)모델을 확장한 것이다.

 

AR, MA, ARMA는 이전 포스팅에서 다루었다.

 

2023.03.13 - [Time Series Analysis] - 시계열 통계모델 1 [이론] - Exponential Smoothing / Holt-Winter / AR / MA

 

시계열 통계모델 1 [이론] - Exponential Smoothing / Holt-Winter / AR / MA

해당 포스팅은 "실전 시계열 분석" 교재와 실습코드 / 고려대학교 DMQA 강의와 강의자료를 기반으로 작성되었습니다. https://www.youtube.com/watch?v=ma_L2YRWMHI&list=PLpIPLT0Pf7IqSuMx237SHRdLd5ZA4AQwd&index=9 1. 시계

needmorecaffeine.tistory.com

 

ARMA와 ARIMA의 구성 요소 중 차이점은 I로 Integration, 즉 시계열 차분을 의미한다. (차분에 대한 내용도 이전 포스팅에서 다루었다.)

 

즉 차분을 통해서 비정상성을 띄던 데이터에서 정상성을 확보하며 시계열 모델링을 수행하는 것이다.

 

AR, MA, I 세가지 요소가 한번에 적합화되어 특정 시계열 데이터 특성에 맞는 모델링을 수행한다.

 

ARIMA는 그 모델링 방식에 따라 ARIMA(p,d,q)로 표기되는데 각각의 의미는 다음과 같다.

 

  • p : AR 모델을 구성하는 과거 시점 independent variable 갯수
  • d : 차분의 차수
  • q : AR 모델을 구성하는 과거 시점 independent variable 갯수

 

수식은 다음과 같다. AR, MA가 결합한 ARMA 모델에서 차분된 것을 알 수 있다.

 

$y_{t}^{'}$ = $c$ + $\phi_{1}y_{t-1}^{'}$ + $\phi_{2}y_{t-2}^{'}$ + $\cdots$ +$\phi_{p}y_{t-p}^{'}$ + $\theta_{1} \cdot \varepsilon_{t-1}$ + $\theta_{2} \cdot \varepsilon_{t-2}$ + $\cdots$ + $\theta_{q} \cdot \varepsilon_{t-q}$ + $\varepsilon_{t}$

 

p, d, q의 매개변수 조합에 따라 다음의 모델링이 가능하다.

 

  • (p,d,q) = (0,0,0) : 백색 노이즈
  • (0,1,0) : 랜덤 워크
  • (p,0,q) : ARMA(p,q)
  • (p,0,0) : AR(p)
  • (0,0,q) : MA(q)
  • (0,1,2) : 댐핑된 홀트 모델
  • (0,1,1) : SES 모델
  • (0,2,2) : 가산적 (additive) 오차를 가진 홀트 선형 모델

 

다음부터는 ARIMA 모델을 구현과 그 설계 과정을 알아보자.

 


 

2. Box - Jenkins ARIMA Prodedure

 

 

 ARIMA 모델 구축을 위해 쓰이는 대표적인 방식이 Box - Jenkins ARIMA Procedure이다.

 

다음과 같은 과정으로 진행된다.

 

  1. Data Processing : transformation, differencing을 통해 모델의 정상성 확보

  2. Identify model to be tentatively entertained

  3. Estimate Parameters

  4. Diagnosis Check : 성능 확인

  5. 4번째 과정 확인 후 그 결과에 따라 2 ~ 4번을 다시 수행하거나 해당 모델을 예측에 최종 사용

 

위 과정을 예시로 통해 확인해보면 다음과 같이 진행된다.

 

 

< Raw Data Plotting >

 

DMQA ARIMA 강의자료 (이후 이미지 출처 동일)

 

 시각화하여 확인해본다. 정상성이 의심되는 지점이 있지만 정상성 여부를 확실히 알 수 없기에 다음의 과정을 진행한다.

 

 

< ACF function을 통한 정상성 확인 >

 

 

 

 ACF, PACF와 그 해석은 이전 포스팅에서 다루었다. 

 

lag가 0일 때는 자기상관계수가 1이 이므로 lag 1 부터의 시점을 보면 계수가 천천히 감소하고 있기에 비정상성을 띈다고 할 수 있다.

 

 

< Differencing & ACF >

 

 비정상성을 띄므로 정상성 확보를 위해 쓰이는 대표적인 방식인 차분을 진행한다.

 

차분 결과에 대해서도 다시 ACF를 통해 정상성을 확인하다.

 

 

 

차분된 결과의 ACF는 위와 같은데 이전과 달리 정상성이 확보되었음을 알 수 있다.

 

 

< Graphical Method >

 

 정상성이 확보되었기에 모델링을 진행한다.

 

2번 과정의 잠정적인 모델을 정하기 위해서 다음과 같은 휴리스틱한 방법으로 (p, d, q)를 결정한다.

 

해당 방법은 주관적일 수 있으나 rule of thumb로 이해하면 된다.

 

 

아래의 ACF 예시를 통해 살펴보자.

 

 

dying down은 die out과 같은 표현으로 확실하게 위 표대로 구분할 수 없는 경우도 있지만 현재의 과정은 잠정적인 모델을 정하기 위함이므로 위 규칙을 따른다.

 

 

 

지금까지 사용했던 예시 데이터를 통해 확인해보자.

 

ACF를 보면 lag 1부터 cut off가 있고 PACF의 경우 die out 되고 있으므로 MA(1)이 적절해 보이고 이 모델로 위 과정을 수행해본다.

 

 

< Parameter Estimation >

 

 이전의 과정을 통해 잠정적인 모델은 ARIMA(0,1,1)이다. 하지만 이것이 최선의 모델링이 아닐 수 있으므로 ARIMA(0,1,2)와 같은 다른 모델과의 비교도 필요하다.

 

이렇게 최종적인 파라미터를 설정을 위한 모델 간 비교를 위해서는 모델 성능 측정을 위한 지표가 필요하다.

 

대표적인 지표로는 AIC(Akaike's Information Criteria) 가 있다.

 

ARIMA 수식을 구성하는 다양한 계수들을 잘 추정하는 것이 목적인데 AIC를 최소화 하는 것이 좋은 모형이다.

 

ARIMA의 AIC 수식부터 살펴 보면 다음과 같다.

 

$AIC = - 2 log(L) + 2 (p+q+k+1)$

 

각각의 인자는 다음을 의미한다.

 

  • p, q : ARIMA의 p, q 파라미터
  • k : ARIMA 모델의 상수항 c, c가 있으면 k = 1, 없으면 0
  • log(L) : 로그 가능도로 여러 후보 모형에 대해 각각 실제 관측데이터가 그 모형을 따를 확률 / 즉, 데이터가 잘 적합될 가능도

 

위 구성요소를 통해 알 수 있듯 AIC는

 

  • -2 log(L) : 가능도가 높을수록 AIC가 낮아짐
  • 2 (p+q+k+1) : 모형의 복잡도로 이 복잡도가 커질수록 AIC가 높아짐

 

가능도를 최대화하며 동시에 간단한 모형을 찾는 지표임을 알 수 있다.

 

이 AIC 지표를 통해 각 모형의 성능을 파악하고 이 AIC를 최소화하는 모델을 선택한다.

 

 

< Diagnosis - Performance Evaluation >

 

위에서 정한 모델을 통해 예측을 진행하고 이 예측값과 실제값을 비교해 residual을 계산하다.

 

이 residual로 다시 ACF를 그려 확인해 본다.

 

이 때 residual에 대한 3 sigma bound (대표적인 방법)를 그리고 대부분의 residual이 bound 내에 위치할 경우 해당 모델로 진행해도 된다고 최종 판단한다.

 

반대로 그렇지 않을 경우 다시 2번 과정으로 돌아간다.

 


 

3. SARIMA (Seasonal ARIMA)

이전까지 학습한 ARIMA는 비계절성, 즉 시계열에 계절성이 존재하지 않을 때 사용하기 적절한 모형이다.

 

시계열의 구성 요소 중 하나인 trend는 차분으로 제거될 수 있으나 seasonality는 차분으로 제거되지 않는다.

 

여기서 trend와 seasonality를 제거하는 이유는 정상성을 띈 시계열로 모델링을 하기 위함이다.

 

SARIMA는 기존 ARIMA 모델에 seasonality 변동을 반영한 모델이다.

 

SARIMA는 각 season에 따른 독립적인 ARIMA 모델이 합쳐져 있으며 seasonal 주기를 나타내는 s 차수가 추가되어 다음과 같이 표기된다.

 

$ARIMA(p,d,q)(P,D,Q)_{s}$

 

이 때 s는 월별 계절성은 12, 분기별 계절성은 4 등으로 그 주기에 따라 정해진다.

 

 

 

B는 Backshift Operator로 설정된 차수의 다항식을 나타내는 notation이다.

 

SARIMA(1,0,2)(2,0,1)5는 다음과 같다.

 

 

SARIMA를 유도하는 과정은 다음과 같다. (주기 s = 12를 갖는 추세없는 월별 시계열을 고려)

 

  • 매년 1월 데이터 >> MA(1) 모형을 따름 >> $Z_{t}$ = $(1-\theta B^{12})\alpha_{t}$
  • 매년 1월의 오차항 $\alpha_{t}$들, 즉 $\alpha_{t}$, $\alpha_{t-12}$, $\alpha_{t-24}$들은 서로 상관관계가 없다.
  • 하지만 MA(1) 모형을 따르는 2월 데이터는 1월 데이터와 오차항 간에는 상관관계가 있음
  • 새로운 모형 : $Z_{t}$ = $(1-\theta B)(1-\theta B^{12})a_{t}$ ($a_{t}$는 white noise)
  • 이를 ARIMA(0,0,1) x (0,0,1)12 라고 함.

 

계절성을 없애기 위해 계절성 차분을 적용할 수 있다.

 

1차 계절성 차분은 인근한 두 계절 값의 차이를 산출하는 것을 의미하고 수식으로는 다음과 같다.

 

$Z_{t}$ - $Z_{t-s}$ = $(1-B^{s})Z_{t}$

 

 

SARIMA 모형을 설계하는 과정은 다음과 같다.

 

  • 시계열 plot을 보고 추세 및 계절성 존재 여부를 판단
  • 아래 사항대로 차분 실시
    • 추세 X / 계절성 O : 해당 주기에 맞추어 차분 실시
    • 추세 O / 계절성 X : 선형 추세 > 1차 차분 / 곡선 형태 추세 > 함수 변환
    • 추세 O / 계절성 O : 계절성 차분을 한 후 추세를 다시 검토, 추세가 남아있는 경우 1차 차분 실시
  • ACF와 PACF로 p, q, P, Q 결정
    • p, q : ARIMA 모형과 동일
    • P, Q : 주시의 배수에서 나타나는 ACF, PACF로 결정
  • 성능 기준 최종 파라미터 추정
  • 잔차 검정

 

위 단계에서 시각적으로 확인하는 단계별 예시는 다음과 같다.

 

최초 데이터

 

계절성 차분 결과

 

 


Ref

관련글 더보기

댓글 영역