본문 바로가기
시계열 자료분석/시계열 회귀모형

ARIMA 오차 회귀모형

by be-favorite 2021. 3. 5.

 

❗️블로그 옮김:  https://www.taemobang.com

 

방태모

안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계

www.taemobang.com

❗ prerequisite

ARIMA 모형

허구적 회귀

❓ More to read

Tutorials on regression with ARIMA errors in R: Still in Progress😓

 

이번에는 두 개 이상의 시계열에 대한 분석 방법 중 하나인 ARIMA 오차를 갖는 회귀모형에 대해 소개하려고 합니다. ARIMA 모형과 허구적 회귀에 대한 정리가 안되어있다면, 이 글을 읽기 전 꼭 prerequisite을 참고해주세요.말 그대로 일반적인 선형 회귀모형에서 오차항에 일반적으로 정규분포를 가정하듯이 오차항에 ARIMA 구조를 가정하는 것이죠. 즉, 회귀분석을 통해 반응변수에 대한 모델링을 수행할 때, 간혹 오차에 자기상관 구조가 존재하는 경우가 있는데 이때 ARIMA 오차를 갖는 회귀모형은 근본적인 해결책이 될 수 있습니다. 이를 통해 우리는 시계열 자료를 반응변수 $y$로 하여 동 시차의 여러 개의 독립변수 시계열로 모형화 할 수 있습니다. 다만, 오차항을 ARIMA 구조로 가정하는 것은 서로 연관된 것으로 간주한다는 말이므로, 회귀계수의 추정에 OLS[각주:1](또는 WLS[각주:2])방법을 사용할 수 없습니다. 따라서, 오차항에 대해 보다 일반적 구조를 허용하는 GLS[각주:3] 추정이 필요로 됩니다. 따라서, 이번 글에서는 ARIMA 오차를 갖는 회귀모형의 적합에 쓰이는 GLS에 대해 먼저 간단하게 소개한 뒤에 ARIMA 오차를 갖는 회귀모형에 대해 얘기할려고 해요, 바로 들어가보시죠.🏃

 

1. GLS 회귀

GLS 회귀는 상관된 오차(correlated errors)를 갖는 회귀모형을 적합하는데 유용해요. 즉, 오차항이 ARMA 과정을 따르는 경우의 회귀를 수행할 때 또는 비정상성(non-stationary)의 평균을 갖는 시계열 자료에 대해 회귀를 수행할 때 유용하다고 할 수 있겠죠. OLS의 경우 오차의 자기상관을 허용하지 않으므로, 오차항의 분산을 $\sigma^2 {\boldsymbol{I}}$ 형태로 가정합니다. GLS는 이와는 달리 오차항에 대해 공분산 행렬 $\sum$을 가정합니다. 만약 $\sum$이 알려져 있다면, 회귀모형의 양변에 $\sum^{-1/2}$를 곱해주면 OLS를 적용할 수 있는 구조로 쉽게 변형됩니다. 다음과 같은 GLS 회귀를 고려한다고 해보겠습니다:

 

\begin{equation} y_t = x_{1,t} + x_{2,t} + \epsilon_t, \ \epsilon_t \sim N(0, \sum) \end{equation}

 

여기서 오차항 $\epsilon$의 분산은 $\sum$에 해당하며 이때 양변에 $\sum^{-1/2}$를 곱하게 되면 오차항은 $\sum^{-1/2} \epsilon$이 됩니다. 이에 따라 오차항의 분산은 $Var( \sum^{-1/2} \epsilon) = \sum^{-1}Var(\epsilon) = {\boldsymbol{I}}$로 OLS 추정을 수행할 수 있게 되죠. 만약 $\sum$을 모르는 경우라면 다음과 같은 과정을 따라야 합니다:

 

(i) OLS로 회귀계수 추정

(ii) 잔차를 이용해 $\sum$ 추정

(iii) (i)과 (ii)를 반복하면 오차에 대한 정규분포 가정하에 수렴된 값은 MLE[각주:4]가 됨.

 

실제 자료에서는 대부분 $\sum$이 알려져있지 않기 때문에, 후자에 설명한 방법이 필요로 될 것입니다. R에서는 gls{nlme}로 GLS 회귀를 수행할 수 있고, 자세한 과정은 글 상단의 More to read을 참고해주세요.

 

2. ARIMA 오차 회귀모형

GLS 회귀에 대한 간단한 소개가 끝났으니, 이제 본 글의 주제라 할 수 있는 ARIMA 오차 회귀모형에 대해 소개하겠습니다. ARIMA 오차 회귀모형은 시계열 변수에 대해 회귀를 수행할 때 필요로 되는 GLS를 이용한 회귀계수 추정의 하나의 예라고 할 수 있습니다. 오차항을 AR[각주:5] 구조로 갖는 경우가 있으며, 또는 더 일반화된 ARIMA 구조로 갖는 경우가 있습니다. 차례대로 소개하겠습니다.

2.1 AR 오차를 갖는 회귀모형

설명의 편의를 위해 단순선형회귀로 설명하겠습니다. 시계열 변수 $y_t$, $x_t$에 대해 자기회귀 오차를 갖는 단순선형회귀모형은 다음과 같이 표현됩니다.

 

\begin{equation} y_t = \beta_0 + \beta_1 x_t + \epsilon_t, \\ \epsilon_t = \phi_1 \epsilon_{t-1} + \phi_2 \epsilon_{t-2} + \cdots + w_t,\ w_t \sim i.i.d. N(0, \sigma^2) \end{equation}

 

여기서 우리가 후향 연산자(backshift operator) $B$를 도입하여 $\phi (B) = 1-\phi_1 B-\phi B^2 - \cdots$를 정의하면, AR 구조를 갖는 오차항을 좀 더 간단하게 표현할 수 있습니다:

 

\begin{equation} \phi(B) \epsilon_t = w_t. \end{equation}

 

만약 역연산자 $\phi^{-1}(B)$이 존재한다면, $\epsilon_t = \phi^{-1}(B)w_t$로 표현할 수 있고, AR 오차를 갖는 회귀모형은 다음과 같이 간단하게 표기할 수 있습니다.

 

\begin{equation} y_t = \beta_0 + \beta_1 x_t + \phi^{-1}(B)w_t, \end{equation}

 

여기서 $w_t$는 백색잡음(whtie noise) 계열입니다. 설명의 편의를 위해 단순선형회귀를 가정했으나, 해당 모형은 예측 시계열이 여러 개인 다중선형회귀로 자연스럽게 확장됩니다. 아울러, 시간 $t$에 따라 선형적 추세가 있는 경우 $t$ 자체를 하나의 독립 시계열로 모형에 포함시킬 수 있습니다(e.g. $y_t = \beta_0 +\beta_1t+\beta_2x_t + \epsilon_t$). R에서 시간 $t$ 변수를 예측변수로 포함시키고자 할 때는 time() 함수에 원하는 예측변수를 넣어 모형식에 반영하면 됩니다. 자세한 과정은 More to read에 소개되어있습니다.

2.2 ARIMA 오차를 갖는 회귀모형

ARIMA 오차를 갖는 회귀모형 식은 오차항이 ARIMA 구조를 갖는다는 것을 제외하면 AR 오차를 갖는 회귀모형과 동일합니다. 편의상 차분이 필요없는 정상시계열(stationary timeseries)이라 가정하겠습니다.

 

\begin{equation} y_t = \beta_0 + \beta_1 x_t + \epsilon_t, \\ \epsilon_t = \phi_1 \epsilon_{t-1} + \phi_2 \epsilon_{t-2} + \cdots + w_t + \theta_1w_{t-1} + \theta_2w_{t-2} +\cdots,\ w_t \sim i.i.d. N(0, \sigma^2) \end{equation}

 

다음의 함수들을 정의하면 AR 구조를 갖는 오차항과 마찬가지로 간단하게 나타낼 수 있습니다:

 

\begin{equation} \phi(B)\epsilon_t = \theta(B)w_t,\\ where \ \ \phi (B) = 1-\phi_1 B-\phi B^2 - \cdots \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \theta(B) = 1+\theta_1B+\theta_2 B^2 +\cdots \end{equation}

 

단, 여기서 해당 오차항은 차분이 필요없는 정상 시계열에 대한 ARIMA 오차를 갖는 구조입니다. 차분이 필요한 비정상 시계열 대해서는 마찬가지로 후향 연산자 $B$를 이용하면 쉽게 일반화 시킬 수 있습니다:

 

\begin{equation} \phi(B)(1-B)^d\epsilon_t = \theta(B)w_t,\\ where \ \ \phi (B) = 1-\phi_1 B-\phi B^2 - \cdots \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \theta(B) = 1+\theta_1B+\theta_2 B^2 +\cdots \end{equation}

 

그리고, 2.1에서 했던 것 처럼 $\phi(B)$와 $(1-B)^d$의 역연산자를 정의하면 ARIMA 오차를 갖는 회귀모형을 식을 좀 더 간단히 표현해볼 수 있겠죠. 지금까지 과정을 잘 따라오셨다면 계절성을 모델링할 수 있는 SARIMA 오차를 갖는 회귀모형에 대한 식도 머릿 속에 떠올리실 수 있을겁니다. 혹시, ARIMA 모형에 대한 정리가 안되어있다면 prerequsite을 통해 한번 정리하시면 쉽게 이해가 가능하실 거에요. ARIMA 오차 회귀모형은 단지 일반적인 회귀모형 베이스에 오차항에 대한 가정을 ARIMA 모형 구조로 한 것에 불과하기 때문이니까요.😊

2.3 ARIMA 오차 회귀모형의 추정

2.3.1 Cochrane-Orcutt 절차

Cochrane-Orcutt 절차는 AR 오차를 갖는 회귀모형에 대한 적합을 수행할 때 사용할 수 있는 반복적인 추정 알고리즘입니다. 2.1에서 정리한 AR 오차 회귀모형 식 (4)의 양변에 $\phi(B)$를 곱하여 정리하면 다음과 같이 식을 변형할 수 있어요.

 

\begin{equation} \phi(B)y_t = \phi(B)\beta_0 + \beta_1\phi(B) x_t + w_t \\ \ \ \ \ \ \Leftrightarrow y_t^* = \beta_0^* +\beta_1x_t^*+w_t \end{equation}

 

여기서 $\beta_0$는 시간 $t$와 무관하기 때문에 후향연산자에 영향을 받지 않습니다. 즉, 변형된 식이라 할 수 있는 식 (8)의 오차항은 백색잡음 계열이므로 이제 통상적인 OLS 추정으로 모형을 적합할 수 있게 되고, 이를 통해 기존 모형식이라 할 수 있는 식 (4)의 회귀계수 추정치를 다음의 반복적인 방법으로 조정해나갑니다:

 

(i) 식 (8)로부터 추정된 $\hat{\beta}_1$은 기존 식 (4)의 기울기 모수에 대한 수정된 추정치가 됨(표준오차 역시 수정)

(ii) 식 (8)의 절편항의 추정치 조정은 $\beta_0^* = (1-\phi_1-\cdots-\phi_p)\beta_0$ 관계로부터 다음과 같이 수행됨(마찬가지로 표준오차 역시 수정):

 

\begin{equation} \hat{\beta}_0 = \frac{\hat{\beta}_0^*}{(1-\phi_1-\cdots-\phi_p)\beta_0} \\ s.e.(\hat{\beta}_0) = \frac{s.e.(\hat{\beta}_0^*)}{(1-\phi_1-\cdots-\phi_p)\beta_0}. \end{equation}

 

위 과정을 추정치가 수렴할 때까지 반복하여 회귀계수와 표준오차에 대한 추정치를 얻게 됩니다. 다만, Cochrane-Orcutt 절차는 AR 오차를 갖는 회귀모형에만 적용될 뿐더러, 잔차제곱합이 항상 최소로 되지는 않는 잠재적 문제점을 갖습니다. 그래서, 일반적으로는 다음으로 소개할 일반화된 방법을 사용합니다. 사실 다음의 방법만 기억해도 문제 없습니다.

2.3.2 ARIMA 오차 회귀모형 추정의 일반화된 방법

일반화된 방법 역시 OLS 추정에 의한 회귀계수와 표준오차를 조정해나가는 과정이 Cochrane-Orcutt 절차와 유사합니다:

 

(i) 주어진 ARIMA 오차 회귀모형(e.g. $y_t = \beta_0 + \beta_1t+\beta_2x_t+\epsilon_t$)에 대해 OLS 추정 실시

(ii) 잔차에 대한 ACF, PACF 검토를 통한 ARIMA 구조 파악

(iii) 잔차가 ARIMA 구조를 가지면 잔차에 대해 ARIMA 추정 수행하고, 동시에 회귀모형을 MLE를 이용해 추정

(iv) (iii)에서 적합된 회귀모형에 대해 잔차 구조 파악 만약 모형의 잔차 구조가 백색잡음 계열이 만족된다면(즉, (iii) 단계에서 잔차에 대한 ARIMA 추정이 잘 이루어졌다면) 모형 적합을 끝내고, 그렇지 않으면 모형의 남은 잔차가 백색잡음 계열이 될 때까지 오차에 대해 ARIMA 적합을 통한 조정을 반복

 

R에서는 glm{nlme}와 arima() 또는 sarima{astsa} 함수를 이용해 ARIMA(또는 상관된) 오차를 갖는 회귀모형을 적합할 수 있습니다. 반면, Cochrane-Orcutt 절자를 제공하는 cochrane.orcutt{orcutt} 함수는 AR(1) 오차의 경우에 한해 Cochrane-Orcutt 절차를 수행합니다. R을 이용한 자세한 튜토리얼 과정은 More to read를 참고해주세요.

 

마지막으로 글을 마무리하기 전에 ARIMA 오차 회귀모형과 관련되어 약간의 혼란을 줄 수 있는 ARIMAX 모형과 전이함수모형을 소개하려고 합니다. 설명의 편의를 위해 계절성을 띠지않는 정상시계열 자료와 하나의 공변량(covariate)[각주:6]을 갖는다고 가정하겠습니다. 자연스럽게 계절성을 띠는 비정상 시계열 및 여러 개의 공변량이 필요한 상황으로 확장이 가능합니다.

 

ARIMAX 모형

먼저 ARIMAX 모형은 이름에서 어느정도 감이 옵니다. 아까 제가 ARIMA 오차 회귀모형을 설명하며 드렸던 말이 있습니다. ARIMA 오차 "회귀모형"은 단지 일반적인 회귀모형 베이스에 오차항에 대한 가정을 ARIMA 모형 구조로 한 것에 불과하다고 했었습니다. 이제 감이 오시죠? "ARIMAX" 모형은 반대로 ARIMA 모형 베이스에 반영하고자 하는 공변량을 더한 모형에 불과합니다. 즉, ARMA($p$,$q$) 모형에 공변량 하나를 더한 ARIMAX 모형은 다음과 같은 모형을 고려한다는 말이죠:

 

\begin{equation} y_t = \beta x_t + \phi_1 y_{t-1} + \cdots + \phi_p y_{t-p} + \theta \epsilon_{t} + \theta_1 \epsilon_{t-1} + \cdots +\theta_p \epsilon_{t-p} \end{equation}

 

여기서 $x_t$는 시간 $t$에서의 공변량입니다. 이러한 ARIMAX 모형에서 단점으로 꼽을 수 있는 것은 공변량 계수 $\beta$에 대한 해석이 어렵다는 점입니다. 그 이유는 $y_t$를 모델링하는 모형 내에서 $\beta$는 반응변수의 동시차가 아닌 전시차가 주어진 조건하에서 주어지는 효과이기 때문입니다. 해당 모형은 후향연산자를 이용하면 다음과 같이 간편하게 표현할 수 있습니다:

 

\begin{equation} \phi(B)y_t = \beta x_t + \theta(B)\epsilon_t \end{equation}

 

여기서 양변을 $\phi(B)$로 나누면 다음과 같이 표현도 할 수 있습니다:

\begin{equation} y_t = \frac{\beta}{\phi(B)} x_t + \frac{\theta(B)}{\phi(B)}\epsilon_t. \end{equation}

 

위 식의 꼴을 잘 기억해주시기 바랍니다!😊

 

ARMA 오차를 갖는 회귀모형

ARMA 오차를 갖는 회귀모형은 다음과 같이 표현됩니다:

 

\begin{equation} y_t = \beta x_t + \epsilon_t, \\ \epsilon_t = \phi_1 \epsilon_{t-1} + \cdots + \phi_2 \epsilon_{t-p} + \cdots + w_t + \theta_1w_{t-1} + \cdots + \theta_2p_{t-q}. \end{equation}

 

편의상 절편은 고려하지 않았습니다. 이러한 방식으로 모델링을 했을 때 장점은 회귀계수를 해석하기 편하다는 점입니다. 즉, 예측 성능의 비교를 떠나서 모형 해석적 측면에서 ARIMAX 모형보다 더 매력적인 모형이라 할 수 있습니다. 이 모형도 후향연산자를 이용하여 표현하면 다음과 같이 간단하게 표현이 가능합니다.

 

\begin{equation} y_t = \beta x_t + \frac{\theta(B)}{\phi(B)}\epsilon_t \end{equation}

 

전이함수 모형

사실 앞서 소개한 두 모형은 전이함수 모형(transfer function models)의 특별한 경우라 할 수 있습니다. Box와 Jenkins가 제시한 전이함수 모형은 다음과 같습니다.

 

\begin{equation} y_t = \frac{\beta(B)}{\nu (B)}x_t + \frac{\theta(B)}{\phi(B)}\epsilon_t. \end{equation}

 

전이함수 모형은 $\beta(B)$를 통해 공변량의 시차효과(lagged effects)를 허용하며, 아울러 $\nu (B)$를 통해 공변량의 감쇠 효과(damped effects)까지 허용합니다. 식 (15)에서 공변량의 시차효과를 허용하지 않는 경우 ARIMAX 모형식(see 식 (12))이 되며, 공변량의 감쇠 효과를 허용하지 않는 경우 ARMA 오차를 갖는 회귀모형의 식이 됩니다(see 식 (14)). 이 전이함수모형은 간혹 동적회귀모형(dynamic regression model)[각주:7]이라 불리기도 합니다.

 

📝 참고 문헌

나종화, R 응용 시계열분석, 자유아카데미(2020)


  1. Ordinary least sqaures [본문으로]
  2. Weighted least sqaures [본문으로]
  3. Generalized least sqaures [본문으로]
  4. Maximum likelihood estimator, 최대가능도추정량 [본문으로]
  5. Auto regressive, 자기회귀 [본문으로]
  6. 모델링에 반영하려는 예측변수로 이해하면 됨 [본문으로]
  7. 반응변수를 동시차 또는 선행시차의 예측변수(공변량)와 동시차 또는 선행시차의 반응변수로 모형화하는 것. 추후 해당 게시판에 기술 예정. [본문으로]

'시계열 자료분석 > 시계열 회귀모형' 카테고리의 다른 글

[FPP3] 7.4 시계열 회귀모형의 유용한 예측변수  (0) 2021.08.25
Distributed lag non-linear models  (0) 2021.04.02
Distributed lag models  (0) 2021.03.05
허구적 회귀  (0) 2021.03.05
Prophet 모형  (0) 2020.07.06

댓글