본문 바로가기

김성범 교수님 유튜브 강의/파이썬 시계열 분석

ARIMA 모델 개요 - Part 2

728x90

 1. ARIMA model Procedure

1. 먼저 전처리를 한다(로그변환, 차분 등)
2. test용 모델을 만들어본다.
3. 파라미터를 예측한다.
4. check
5. 사용

 뒤에 예시에서 이런 순서를 통해 모델을 구축하고 예측해보겠다.

2. 예시

1) Preprocessing(차분)

(1) 원본 데이터

(2) ACF(for checking stationary)

  • ACF 를 확인할 때, lag가 0이면 자기 자신과의 correlation 이므로 당연히 1.
  • 따라서 lag가 1일 때부터 보면 된다.
  • ACF 그래프가 서서히 작아진다면 이는 non-stationary 일 가능성이 높고, 급격히 작아지거나 일정한 패턴이 없는 경우는 stationary 일 가능성이 높다. 
  • 예시의 경우 비정상성이라고 판단할 수 있으므로 차분을 해본다.

  • 위와 같이 차분을 하였고, ACF 그래프를 보니 stationary 임을 확인할 수 있다.

2) Identification ARIMA model : 일단 한번 모델 만들어보기

(1) Graphical method : MA, AR, ARMA 중 무엇으로 할지, p나 q는 무엇으로 할지 정해보자.

  • 판단은 ACF와 PACF 를 보고 하는데, 각각의 조건들을 만족할 경우 MA, AR, ARMA 중 채택한다.
  • 근데 굉장히 주관적임.

  • 첫번재는 cut-off, 나머지는 dying out 이라고 보면 됨.

  • ACF가 lag1~2 에서 급감하고, PACF 가 지수적으로 감소하는 것으로 보아 MA 모델이 적합하며 p는 1로 하는 것이 바람직하다. 
  • 우선 MA(1) 로 모델을 만들어본다.

3) Estimate parameters

  • MA(1) 이고 차분을 한번 했으므로, ARIMA(0,1,1) 이다. 
  • 파라미터가 하나이며, 0.85534 로 추정했다. 추정방법은 나중에.
  • AIC 는 모델의 정확도를 측정하는 metric이며 작을 수록 좋다.
  • 그리고 ARIMA(0,1,2) 도 한번 추정해봤더니 AIC 가 줄었다.

  • 그 근방으로 몇개 해보니까 ARIMA(0,1,3) 이 제일 성능이 좋네.
  • 물론 이것도 최종 모델이 아니라 임시적인 모델이며 검증 단계가 필요하다. 

4) Diagnosis(검증)

  • 모델의 적정성을 평가해야 한다. 어떻게?
  • 우선 만든 모델로 전체 훈련 데이터에 대해 예측값을 구하고, residual(잔차: y_pred - y) 에 대한 ACF 그래프를 그려본다. 
  • 40 lag 까지의 그래프에서 bound(표준편차 x3 범위)를 2~3개 정도만 넘어가면 오케이.

  • 예시에서는 2개 정도 넘어가니까 okay

5) Forcast

 

# ARIMA의 p, d, q 설정

 Graphical Method 방식도 나쁘지는 않지만 요새는 컴퓨터 연산능력이 좋아서 그냥 for loop으로 무식하게 grid search 하면 됨. 

3. Seasonal ARIMA model

 

 

  • 이건 파라미터가 7개임.
  • 자세한건 나중에 알려줌.

질문과 비판은 언제나 환영입니다. 많이 꾸짖어주세요.

 

 

728x90