본문 바로가기

Study/수학과통계

자기회귀누적이동평균 ARIMA Model

지난번 시계열 데이터에 이어, 오늘은 ARIMA Model에 대해 포스트 한다.

정의

"ARIMA model is transformed into stationary time series through the difference and fitting as ARMA model."

ARiMA 모델은 ARMA 모델로, 차분과 fitting(훈련)을 통해 stationary(정상성) 시계열 데이터로 변환된다.

ARIMA 모델을 ARMA 모델의 일반화로, 시계열 데이터를 예측 할때 사용이된다. (위키백과)

여기서 I 는 stationary time series로 바꿔주는 차분 값이다.

 

결국 ARMA 모델을 이해해야하고, 하나씩 공부하다보면 감이 온다.

Models

AR(p) = ARIMA(p,0,0)

MA(q) = ARIMA(0,0,q)

ARI(p,d) = ARIMA(p,d,0)

IMA(d,q) = ARIMA(0,d,q)

ARMA(p,q) = ARIMA(p,0,q)

 

ARIMA 모델 자체는 $ARIMA(p,d,q)(P,D,Q)_{s}$로 표현 될 수 있다. 이때, 마지막 s는 계절 단위가 되며 (P,D,Q)는 계절성이 존재할때만 표기한다. 즉 D는 계절성을 제거하고 stationary하게 만드는 값이고, d는 계절성이 아닌 성분을 제거하여 stationary하게 만드는 값이다.

 

d와 D를 통해 stationary를 얻어 냈다면 다시 위 식과 같이 AR(p)와 MA(q)로 표기될 수 있다. 오늘 포스트는 AR과 MA모델의 내용만 담고 있다.

AR Model

AR Model은 Auto Regressive모델로 자기상관을 의미한다. $Y_{t-1} \Rightarrow Y_{t}$로, 두 시점의 '상관'을 나타낸다. AR 모델은 다음과 같이 표기할 수 있다.

 

$$AR(1) : Y_{t} = \phi Y_{t-1} + \epsilon_{t} , \quad \epsilon_{t} \sim N( 0, \sigma^{2} )$$

$$AR(2) : Y_{t} = \phi_{1} Y_{t-1} + \phi_{2} Y_{t-2} + \epsilon_{t}$$

$$AR(p) : Y_{t} = \phi_{1} Y_{t-1} + \phi_{2} Y_{t-2} + \cdots + \phi_{p} Y_{t-p} + \epsilon_{t}$$

 

AR(1)을 보면 현재 $Y_{t}$값은 이전시점인 $Y_{t-1}$값에 임의의 $\phi$ 만큼 영향을 받는 것을 알 수 있다.

AR(2)는 현재인 $Y_{t}$ 값은 (t-1) (t-2)시점에서 각각 $\phi_{1}, \ \phi_{2}$만큼 영향을 받는 것을 알 수 있다.

다시말해 어떤시점 p까지의 비교 하고자 한다면, (t-1)시점부터 (t-p)시점까지 각각 임의의 숫자를 곱한 값의 덧셈이다. 

생각해보면 회귀식과 표현이 같고, 단지 시간적 개념이 들어가는 차이만 있다. ARIMA가 자기 '회귀' 누적 이동평균이니까 당연할것이다.

 

이때, 시계열 데이터는 정상성을 지닌 상태에서 분석이 가능하기 때문에 $\epsilon_{t}$는 pure random한 백색잡음(white noise)여야 한다. 

만약 $\epsilon_{t}$가 pure random하지 않고 규칙성이 존재한다면, MA Model을 사용해야 한다.

MA Model

MA Model 은 Moving Average 모델로 AR 모델 등으로 예측을 수행한 후 오차가 Pure random하지 않은 상황을 보정하는 모형이다. MA Model은 다음과 같이 표현할 수 있다.

 

$$MA(1) : Y_{t} = \theta_{1} \epsilon_{t-1} + \epsilon_{t}$$

$$MA(2) : Y_{t} = \theta_{1} \epsilon_{t-1} + \theta_{2} \epsilon_{t-2} + \epsilon_{t}$$

$$MA(q) : Y_{t} = \theta_{1} \epsilon_{t-1} + \theta_{2} \epsilon_{t-2} + \cdots + \theta_{q} \epsilon_{t-q} + \epsilon_{t}$$

 

이때 오차 $\epsilon$ 값은 t시점의 오차를 제외하고 모두 규칙성을 갖는다. 따라서 $\theta$ 계수로 규칙성을 고정하고, 새로 발생하는 t시점에서의 오차는 완벽히 임의인, 백색 잡음이라고 가정한다.

 

정리하면, $\hat{Y_{t}} = ARIMA(p,d,q)$로 t시점의 값을 예측 할 수 있다. 그리고 오차는 $\hat{\epsilon_{t}} = Y_{t} - \hat{Y_{t}}$가 된다. 이때 오차가 무작위 난수인 백색잡음과 비슷하다면 제대로 수행된 예측이라고 생각 할 수 있고, 규칙성을 보인다면 MA Model로 오차를 백색 잡음처럼 만들고자 하는 것이다.

ARMA Model

ARMA 모델은 ARMA(p,q) = AR(p) + MA(q)로 표현 할 수 있다.

예를들어 ARMA(2,1) = AR(2) + MA(1)

 

$$Y_{t} = \phi_{1} Y_{t-1} + \phi_{2} Y_{t-2} + \theta_{t-1} \epsilon_{t-1} + \epsilon_{t}$$

$$Y_{t} - \phi_{1} Y_{t-1} - \phi_{2} Y_{t-2} = \theta_{t-1} \epsilon_{t-1} + \epsilon_{t}$$

 

로 정리할 수 있다. 다시 일반화 하면

 

$$Y_{t} - \phi_{1} Y_{t-1} - \cdots - \phi_{p} Y_{t-p} = \theta_{1} \epsilon_{t-1} + \cdots + \theta_{q} \epsilon_{t-q} + \epsilon_{t}$$

$$\hat{Y_{t}} = \phi_{1} Y_{t-1} + \cdots + \phi_{p} Y_{t-p} + \theta_{1} \epsilon_{t-1} + \cdots + \theta_{q} \epsilon_{t-q}$$

 

이때, $Y_{t-k}, \ \epsilon_{t-k}$값은 데이터로부터 확인할 수 있고, 계수값 $\phi_{k}, \ \theta_{k}$을 계산하면 시계열 예측을 수행할 수 있다.

 

정리하자면, ARIMA(p,d,q)(P,D,Q)에서 seasonal difference로 d와 D를 없어지고, ARMA(p,q)(P,Q)로 표현할 수 있는 것이다.

 

+) 위의 일반화 식은 다음과 같이 표현되기도 한다.

$$\phi_{1} L ( Y_{t} - \mu ) = \phi_{1} Y_{t-1} - \mu$$

$$(1-\phi_{1} L - \phi_{2} L^{2} - \cdots - \phi_{p} L^{p} )(Y_{t} - \mu ) = (1 - \theta_{1} L - \theta_{2} L^{2} - \cdots - \theta_{q} L^{q} ) \epsilon_{t}$$

 

파이썬 실습예제는 다음에...