본문 바로가기
Data & Research

[Time Series] ARMA Forecast

by TrillionNT 2024. 11. 27.

 

저번 포스팅에서 시계열에서 최적(RMSE관점) 예측의 조건, 그 중에서도 선형 꼴 예측의 조건을 살펴봤습니다. 예고드린대로 이번에는 우리가 다루고 있었던 ARMA process에서의 예측을 다루어보도록 하겠습니다. (계산 상의 편의를 위해서 observation이 무한하다고 가정한 상황만 다루어 보겠습니다. 만일 유한한 관측에서의 forecasting을 알아보고 싶으시면 Hamilton 교재의 4장을 참고하세요)

 

1. 오차항의 Lag에 기반한 예측 (MA꼴에서 출발)

먼저 MA(\(\infty\)) 형태로 표현되는 process를 고려해볼까요?

\[ (Y_t - \mu) = \psi(L) \epsilon_t \]

where \(\epsilon_t\) is white noise and

\[ \psi(L) = \sum_{j=0}^{\infty} \psi_j L^j, \quad \psi_0 = 1, \quad \sum_{j=0}^\infty |\psi_j| < \infty \]

무한 개의 오차항 \(\epsilon\)의 observation \(\{\epsilon_t, \epsilon_{t-1}, \epsilon_{t-2}, \ldots\}\)과 \(\mu\) 및 \(\{\psi_1, \psi_2, \ldots\}\)의 값을 알고 있다고 가정하겠습니다. \(s\)기 이후의 \(Y\)의 값을 예측하고자 합니다. 그러면 위 식에 따라

\[ Y_{t+s} = \mu + \epsilon_{t+s} + \psi_1 \epsilon_{t+s-1} + \psi_2 \epsilon_{t+s-2} + \cdots \]

(우리가 앞선 포스팅에서 살펴본대로) 최적의 선형 예측은 다음과 같은 형태를 가집니다

\[ \hat{E}[Y_{t+s} | \epsilon_t, \epsilon_{t-1}, \ldots] = \mu + \psi_s \epsilon_t + \psi_{s+1} \epsilon_{t-1} + \psi_{s+2} \epsilon_{t-2} + \cdots \]

Forecast Error는 아래와 같이 정의할 수 있으므로

\[ Y_{t+s} - \hat{E}[Y_{t+s} | \epsilon_t, \epsilon_{t-1}, \ldots] = \epsilon_{t+s} + \psi_1 \epsilon_{t+s-1} + \cdots + \psi_{s-1} \epsilon_t. \]

평균 제곱 오차(MSE)는 다음과 같이 정의됩니다:

\[ E\left( Y_{t+s} - \hat{E}[Y_{t+s} | \epsilon_t, \epsilon_{t-1}, \ldots] \right)^2 = \left( 1 + \psi_1^2 + \psi_2^2 + \cdots + \psi_{s-1}^2 \right) \sigma^2 \]

 

더보기

예를 들어, MA(\(q\)) 과정의 경우,

\[ \psi(L) = 1 + \theta_1 L + \theta_2 L^2 + \cdots + \theta_q L^q, \]

최적의 선형 예측은 아래와 같습니다.

\[ \hat{E}[Y_{t+s} | \epsilon_t, \epsilon_{t-1}, \ldots] = \begin{cases} \mu + \theta_s \epsilon_t + \theta_{s+1} \epsilon_{t-1} + \cdots + \theta_q \epsilon_{t+q-s}, & \text{if } s = 1, 2, \ldots, q, \\ \mu, & \text{if } s = q+1, q+2, \ldots \end{cases} \]

평균 제곱 오차(MSE)는 아래와 같습니다.

\[ \text{MSE} = \begin{cases} \sigma^2, & \text{if } s = 1, \\ (1 + \theta_1^2 + \theta_2^2 + \cdots + \theta_{s-1}^2)\sigma^2, & \text{if } s = 2, 3, \ldots, q, \\ (1 + \theta_1^2 + \theta_2^2 + \cdots + \theta_q^2)\sigma^2, & \text{if } s = q+1, q+2, \ldots \end{cases} \]

 

그런데, 표기를 좀 더 간단하게 할 수 있는 notation을 도입해볼 수 있습니다. \(\psi(L)\)을 \(L^s\)로 나누면 아래와 같아집니다. 

\[ \frac{\psi(L)}{L^s} = L^{-s} + \psi_1 L^{-s+1} + \psi_2 L^{-s+2} + \cdots + \psi_s L^0 + \psi_{s+1} L^1 + \cdots. \]

소멸 연산자(annihilation operator, \([ \cdot ]_+\))는 \(L\)의 음의 지수를 0으로 대체한다는 뜻입니다. 

\[ \left[\frac{\psi(L)}{L^s}\right]_+ = \psi_s + \psi_{s+1} L^1 + \psi_{s+2} L^2 + \cdots. \]

우리가 앞서 살펴봤던 최적의 선형 예측은 이 annihilation operator로 다시 쓰면

\[ \hat{E}[Y_{t+s} | \epsilon_t, \epsilon_{t-1}, \ldots] = \mu + \left[\frac{\psi(L)}{L^s}\right]_+ \epsilon_t. \] 와 같이 나타낼 수 있습니다. 

 

2. 타겟변수의 Lag에 기반한 예측 (AR꼴에서 출발)

사실 그런데, 오차항을 관측한다는 것 자체가 좀 현실적이지 않죠? 오차항은 대개 관측하기 보다는 추정하는 값일 때가 많습니다. 보통 우리는 타겟변수를 관측하게됩니다. 이번에는 \(Y_t\)의 과정이 AR(\(\infty\)) 표현을 가진다고 가정하고 논지를 전개해봅시다. 

\[ \eta(L)(Y_t - \mu) = \epsilon_t \]

여기서, \(\eta(L) = \sum_{j=0}^\infty \eta_j L^j\), \(\eta_0 = 1\), \(\sum_{j=0}^\infty |\eta_j| < \infty\)입니다. 여기서 AR 다항식 \(\eta(L)\)과 MA 다항식 \(\psi(L)\)는 다음 관계를 가진다고 가정해볼까요?

\[ \eta(L) = [\psi(L)]^{-1} \]

 

그러면 타겟변수 Y로부터 , \(\{Y_t, Y_{t-1}, \ldots\}\)로부터 \(\{\epsilon_t, \epsilon_{t-1}, \ldots\}\)를 생성할 수 있습니다.


더보기

예를 들어 AR(1) process에서 다음과 같은 식을 만족하고

\[ (1 - \phi L)(Y_t - \mu) = \epsilon_t \]

이를 통해 \(Y_t\)와 \(Y_{t-1}\)의 관측값으로부터 \(\epsilon_t\)를 다음과 같이 계산할 수 있습니다:

\[ \epsilon_t = (Y_t - \mu) - \phi (Y_{t-1} - \mu) \]

 

MA(1) process에서는 

\[ \epsilon_t = (Y_t - \mu) - \theta (Y_{t-1} - \mu) \]


 

\( \eta(L)(Y_t - \mu) = \epsilon_t \) 을 \( \hat{E}[Y_{t+s} | \epsilon_t, \epsilon_{t-1}, \ldots] = \mu + \left[\frac{\psi(L)}{L^s}\right]_+ \epsilon_t. \)  에 대입하면 \(Y_t\)의 lag을 사용하여 \(Y_{t+s}\)를 다음과 같이 예측할 수 있습니다

\[ \hat{E}[Y_{t+s} | Y_t, Y_{t-1}, \ldots] = \mu + \left[\frac{\psi(L)}{L^s}\right]_+ \eta(L)(Y_t - \mu) \]

또는, \( \eta(L) = [\psi(L)]^{-1} \)을 사용하여 다음과 같이 나타낼 수 있습니다:

\[ \hat{E}[Y_{t+s} | Y_t, Y_{t-1}, \ldots] = \mu + \left[\frac{\psi(L)}{L^s}\right]_+ \frac{1}{\psi(L)} (Y_t - \mu) \]

이 식은 Wiener-Kolmogorov prediction 공식으로 알려져 있습니다.

 

자 이제 기본준비가.. (쿨럭) 다 됐으니 AR, MA, ARMA에 적용을 드디어 해볼까요?

Forecasting an AR(1) process

\[ \psi(L) = \frac{1}{(1 - \phi L)} = 1 + \phi L + \phi^2 L^2 + \cdots \]

\[ \left[\frac{\psi(L)}{L^s}\right]_+ = \phi^s + \phi^{s+1} L^1 + \phi^{s+2} L^2 + \cdots \]

위 식을 이용하여 최적의 \(s\) 기간 후 예측값은 다음과 같습니다:

\[ \hat{E}[Y_{t+s} | Y_t, Y_{t-1}, \ldots] = \mu + \frac{\phi^s}{1 - \phi L}(Y_t - \mu) \]

예측은 \(s\)가 증가함에 따라 기하급수적으로 \(\mu\)로 수렴합니다. 평균 제곱 오차(MSE)는 다음과 같습니다:

\[ \text{MSE} = [1 + \phi^2 + \phi^4 + \cdots + \phi^{2(s-1)}]\sigma^2 \]

Forecasting an MA(1) process

MA(1)은 아래와 같은 식이죠? \[ Y_t - \mu = (1 + \theta L)\epsilon_t \] Wiener-Kolmogorov 공식에 넣어봅시다. \[ Y_{t+s|t} = \mu + \left[\frac{1 + \theta L}{L^s}\right]_+ (Y_t - \mu) \] 1-step ahead forecast를 생각해볼까요? \[ \left[\frac{1 + \theta L}{L^1}\right]_+ = \theta \] \[ \hat{Y}_{t+1|t} = \mu + \theta (Y_t - \mu) - \theta^2 (Y_{t-1} - \mu) + \dots \] 

Forecasting an ARMA(1) process

ARMA(1, 1)은 아래와 같은 식입니다. 

\[ (1 - \phi L)(Y_t - \mu) = (1 + \theta L)\epsilon_t, \] where \(|\phi| < 1\) and \(|\theta| < 1\)

역시 같은 방식으로 대입하면

\[ Y_{t+s|t} = \mu + \left[\frac{1 + \theta L}{(1 - \phi L)L^s}\right]_+ (Y_t - \mu) \]

여기서

\[ \left[\frac{1 + \theta L}{(1 - \phi L)L^s}\right]_+ = \frac{\phi^s + \theta \phi^{s-1}}{1 - \phi L}, \]

이므로 이것을 대입하면

\[ Y_{t+s|t} = \mu + \frac{\phi^s + \theta \phi^{s-1}}{1 + \theta L}(Y_t - \mu) \]

따라서, 1-step ahead forecast는 아래와 같고 \[ Y_{t+1|t} = \mu + \frac{\theta}{1 + \theta}(Y_t - \mu) \] 재귀식 \[ (Y_{t+s|t} - \mu) = \phi(Y_{t+s-1|t} - \mu) \]를 활용하여 2, 3 .. -step ahead forecast를 할 수 있습니다.