8.8 예측하기

점 예측치

예제에서 ARIMA 모델로부터 예측값을 계산하긴 했지만, 값을 어떻게 얻었는지는 아직 설명하지 않았습니다. 점 예측값은 다음과 같은 3가지 단계를 이용하여 계산할 수 있습니다.

  1. \(y_t\)가 좌변에 오고 다른 모든 항들이 우변에 오도록 ARIMA 식을 전개합니다.
  2. \(t\)\(T+h\)로 바꾸어 식을 다시 씁니다.
  3. 식의 우변에서, 미래 관측값을 예측값으로 바꾸고, 미래 오차값을 0으로 바꾸고, 과거 오차값을 해당 잔차로 바꿉니다.

\(h=1\)로 시작하여, 모든 예측값을 계산할 때까지 \(h=2,3,\dots\)에 대해 이러한 단계를 반복합니다.

이러한 과정은 예제로 가장 쉽게 이해할 수 있습니다. 이전 절에서 맞춘 ARIMA(3,1,1) 모델을 이용하여 이것을 설명할 것입니다. 모델은 다음과 같이 쓸 수 있습니다. \[ (1-\hat{\phi}_1B -\hat{\phi}_2B^2-\hat{\phi}_3B^3)(1-B) y_t = (1+\hat{\theta}_1B)\varepsilon_{t}, \] 여기에서 \(\hat{\phi}_1=0.0044\), \(\hat{\phi}_2=0.0916\), \(\hat{\phi}_3=0.3698\), \(\hat{\theta}_1=-0.3921\)입니다. 그리고 다음과 같은 식을 얻기 위해 좌변을 전개합니다. \[ \left[1-(1+\hat{\phi}_1)B +(\hat{\phi}_1-\hat{\phi}_2)B^2 + (\hat{\phi}_2-\hat{\phi}_3)B^3 +\hat{\phi}_3B^4\right] y_t = (1+\hat{\theta}_1B)\varepsilon_{t}, \] 그리고 후방이동(backshift) 연산자를 적용하면 다음과 같은 결과를 얻습니다. \[ y_t - (1+\hat{\phi}_1)y_{t-1} +(\hat{\phi}_1-\hat{\phi}_2)y_{t-2} + (\hat{\phi}_2-\hat{\phi}_3)y_{t-3} +\hat{\phi}_3y_{t-4} = \varepsilon_t+\hat{\theta}_1\varepsilon_{t-1}. \] 마지막으로, \(y_t\) 이외의 다른 항을 우변으로 옮깁니다: \[\begin{equation} \tag{8.6} y_t = (1+\hat{\phi}_1)y_{t-1} -(\hat{\phi}_1-\hat{\phi}_2)y_{t-2} - (\hat{\phi}_2-\hat{\phi}_3)y_{t-3} -\hat{\phi}_3y_{t-4} + \varepsilon_t+\hat{\theta}_1\varepsilon_{t-1}. \end{equation}\] 이렇게 첫 단계를 마쳤습니다. 이제 식이 ARIMA(4,0,1)처럼 보이지만, 여전히 시작했던 ARIMA(3,1,1)와 같습니다. 계수들이 정상성 조건을 만족하지 않기 때문에 ARIMA(4,0,1)로 생각할 수 없습니다.

두 번째 단계에서는, 식 (8.6)에서 \(t\)\(T+1\)로 바꿉니다: \[ y_{T+1} = (1+\hat{\phi}_1)y_{T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T-1} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-2} -\hat{\phi}_3y_{T-3} + \varepsilon_{T+1}+\hat{\theta}_1\varepsilon_{T}. \] 시간 \(T\)까지의 관측값을 가지고 있다고 가정하고, \(\varepsilon_{T+1}\)을 제외하고 우변의 모든 값을 알고 있습니다. 이 값을 0으로 두고, \(\varepsilon_T\)를 마지막 관측 잔차 \(e_T\)로 둡니다: \[ \hat{y}_{T+1|T} = (1+\hat{\phi}_1)y_{T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T-1} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-2} -\hat{\phi}_3y_{T-3} + \hat{\theta}_1e_{T}. \] (8.6)에서 \(t\)\(T+2\)로 두어 \(y_{T+2}\)의 예측값을 얻습니다. 시간 \(T\)에서 \(y_{T+1}\)을 제외한 우변의 모든 값을 알 수 있을 것이고, 이 값을 \(\hat{y}_{T+1|T}\)로 둡니다. 그리고 \(\varepsilon_{T+2}\)\(\varepsilon_{T+1}\) 둘 다 0으로 둡니다: \[ \hat{y}_{T+2|T} = (1+\hat{\phi}_1)\hat{y}_{T+1|T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-1} -\hat{\phi}_3y_{T-2}. \]

이러한 방식으로 모든 미래 시점에 대해 과정을 계속합니다. 이러한 방법으로, 어떠한 개수의 점 예측값을 얻을 수 있습니다.

예측 구간

ARIMA 예측 구간(prediction interval)을 계산하는 것은 더 어렵고, 자세한 내용은 이 책의 범위를 훨씬 넘어서는 것입니다. 여기에서는 몇 가지 간단한 예제만 살펴볼 것입니다.

첫 번째 예측 구간은 계산하기 쉽습니다. \(\hat{\sigma}\)가 잔차의 표준 편차이면, 95% 예측 구간은 \(\hat{y}_{T+1|T} \pm 1.96\hat{\sigma}\)로 주어집니다. 이 결과는 매개변수와 차수에 상관없이 모든 ARIMA 모델에 대해 참입니다.

ARIMA(0,0,\(q\)) 모델에 대한 다-단계 예측 구간은 비교적 계산하기 쉽습니다. 모델을 다음과 같이 쓸 수 있습니다. \[ y_t = \varepsilon_t + \sum_{i=1}^q \theta_i \varepsilon_{t-i}. \] 그러면, 추정한 예측 분산을 다음과 같이 쓸 수 있습니다. \[ \hat\sigma_h = \hat{\sigma}^2 \left[ 1 + \sum_{i=1}^{h-1} \hat{\theta}_i^2\right], \qquad\text{for $h=2,3,\dots$,} \] 그리고 95% 예측 구간은 다음과 같이 \(\hat{y}_{T+h|T} \pm 1.96\sqrt{\hat\sigma_h}\)로 주어집니다.

8.4 절에서 AR(1) 모델을 MA(\(\infty\))로 쓸 수 있다는 것을 보였습니다. 이러한 관계를 이용하여 MA(\(q\)) 모델에 대한 위의 결과를 AR(1) 모델에 대한 예측 구간을 얻기 위해 사용할 수 있습니다.

ARIMA(\(p\),\(d\),\(q\)) 모델에 대한 다-단계 예측 구간의 다른 특수한 경우들과 더 일반적인 결과는 Brockwell & Davis (2016) 와 같이 더 수준이 높은 교과서에 있습니다.

ARIMA 모델에 대한 예측 구간은 잔차에 상관관계가 없고 잔차가 정규분포를 따른다는 가정에 기초합니다. 이러한 가정 중에서 하나라도 만족하지 않으면, 예측구간이 정확하지 않을 수 있습니다. 이러한 이유로, 예측 구간을 내기 전에 가정을 확인하기 위해 항상 ACF와 잔차의 히스토그램을 그리길 바랍니다.

일반적으로, 예측 수평선이 증가할 수록 ARIMA 모델로 얻은 예측구간은 증가합니다. 정상성을 나타내는 모델(즉, \(d=0\)인)의 경우에는 긴 수평선에 대해 예측구간이 실제적으로 모두 같도록 예측구간이 수렴할 것입니다. \(d\ge1\)인 경우에는, 예측 구간이 시간이 지날 수록 계속 증가할 것입니다.

대부분의 예측 구간 계산에서처럼, ARIMA 기반의 구간은 너무 좁게 나타나는 경향이 있습니다. 오차값에서 분산만 고려했기 때문에 그렇습니다. 계산에 포함되지 않은 매개변수값과 모델 차수의 변동도 있습니다. 또한, 계산할 때 모델링한 과거 패턴이 예측 기간에서 계속될 것이라고 가정합니다.

참고 문헌

Brockwell, P. J., & Davis, R. A. (2016). Introduction to time series and forecasting (3rd ed). New York, USA: Springer. [Amazon]