작성자 : 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
ARIMA는 ARMA(Autoregressive Moving Average)모델을 확장한 것이다.
AR, MA, ARMA는 이전 포스팅에서 다루었다.
시계열 통계모델 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)로 표기되는데 각각의 의미는 다음과 같다.
수식은 다음과 같다. 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의 매개변수 조합에 따라 다음의 모델링이 가능하다.
다음부터는 ARIMA 모델을 구현과 그 설계 과정을 알아보자.
ARIMA 모델 구축을 위해 쓰이는 대표적인 방식이 Box - Jenkins ARIMA Procedure이다.
다음과 같은 과정으로 진행된다.
위 과정을 예시로 통해 확인해보면 다음과 같이 진행된다.
< Raw Data Plotting >
시각화하여 확인해본다. 정상성이 의심되는 지점이 있지만 정상성 여부를 확실히 알 수 없기에 다음의 과정을 진행한다.
< 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)$
각각의 인자는 다음을 의미한다.
위 구성요소를 통해 알 수 있듯 AIC는
가능도를 최대화하며 동시에 간단한 모형을 찾는 지표임을 알 수 있다.
이 AIC 지표를 통해 각 모형의 성능을 파악하고 이 AIC를 최소화하는 모델을 선택한다.
< Diagnosis - Performance Evaluation >
위에서 정한 모델을 통해 예측을 진행하고 이 예측값과 실제값을 비교해 residual을 계산하다.
이 residual로 다시 ACF를 그려 확인해 본다.
이 때 residual에 대한 3 sigma bound (대표적인 방법)를 그리고 대부분의 residual이 bound 내에 위치할 경우 해당 모델로 진행해도 된다고 최종 판단한다.
반대로 그렇지 않을 경우 다시 2번 과정으로 돌아간다.
이전까지 학습한 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차 계절성 차분은 인근한 두 계절 값의 차이를 산출하는 것을 의미하고 수식으로는 다음과 같다.
$Z_{t}$ - $Z_{t-s}$ = $(1-B^{s})Z_{t}$
SARIMA 모형을 설계하는 과정은 다음과 같다.
위 단계에서 시각적으로 확인하는 단계별 예시는 다음과 같다.
Ref
시계열 스터디 3주차(조성윤): 비정상성, ARIMA, SARIMA (0) | 2023.03.23 |
---|---|
[시계열 스터디 3주차(엄기영)] (0) | 2023.03.22 |
시계열 스터디 2주차(김희준) (0) | 2023.03.17 |
시계열 스터디 2주차 (신윤) (0) | 2023.03.16 |
[시계열 스터디 2주차(엄기영)] (0) | 2023.03.16 |
댓글 영역