11.2 벡터 자기회귀

지금까지 다룬 모델의 한 가지 한계는 단 방향 관계(unidirectional relationship)만 있다는 것입니다. 즉, 목적 예상변수(forecast variable)는 예측변수(predictor variable)의 영향을 받지만, 반대의 경우는 영향을 받지 않습니다. 하지만, 반대 경우도 허용해야만 하는 많은 경우가 있습니다. 이러한 경우에는 모든 변수가 서로 영향을 미칩니다. 9.2 절에서 개인 소비 지출의 변화(\(C_t\))는 개인 가처분 소득의 변화(\(I_t\))에 기초하는 예측값이었습니다. 하지만, 이 경우에 양 방향 관계(bi-directional relationship)가 더 적절할 수 있습니다. \(I_t\)의 증가가 \(C_t\)의 증가로 이어질 수 있고 반대로도 가능합니다.

2008년부터 2009년 세계 경제 위기 기간 동안에 호주에서 이러한 상황이 일어났습니다. 호주 정부는 2008년 12월 크리스마스 기간의 일시적인 소비를 위해 현금 지불을 포함하는 경기 부양책을 발표했습니다. 결과적으로, 소매 업체는 판매량이 늘어나서 경제가 활성화되었습니다. 결과적으로 소득이 증가했습니다.

이러한 되먹임 관계(feedback relationship)는 벡터 자기회귀(VAR) 체계에서 허용됩니다. 이 체계에서는, 모든 변수를 대칭적으로 다룹니다. 마치 이러한 값이 서로에게 똑같이 영향을 주는 것처럼 이러한 값 모두를 모델링합니다. 더욱 형식적인 전문용어로는, 모든 변수를 이제 “내생적(endogenous)”으로 다룬다고 합니다. 이것을 나타내기 위해, 표기법을 바꿔서 모든 변수를 \(y\)로 씁니다. \(y_{1,t}\)는 변수 \(y_1\)\(t\)번째 관측값, \(y_{2,t}\)는 변수 \(y_2\)\(t\)번째 관측값, 나머지도 마찬가지입니다.

VAR 모델은 시계열의 벡터를 예측하는 단변량(univariate) 자기회귀 모델의 일반적인 형태입니다22 시스템에서 고려하는 변수 당 하나의 식을 포함합니다. 각 식의 우변은 상수와 시스템의 모든 변수의 시차(lag)를 포함합니다. 단순하게 두기 위해, 하나의 시차가 있는 두 변수 VAR을 다룰 것입니다. 2차원 VAR(1)은 다음과 같이 씁니다. \[\begin{align} y_{1,t} &= c_1+\phi _{11,1}y_{1,t-1}+\phi _{12,1}y_{2,t-1}+e_{1,t} \tag{11.1}\\ y_{2,t} &= c_2+\phi _{21,1}y_{1,t-1}+\phi _{22,1}y_{2,t-1}+e_{2,t}, \tag{11.2} \end{align}\] 여기에서 \(e_{1,t}\)\(e_{2,t}\)은 동시에 상관관계를 가질 수 있는 백색잡음(white noise) 과정입니다. 계수 \(\phi_{ij,\ell}\)\(y_i\)에 대한 변수 \(y_j\)\(\ell\)번째 시차의 영향을 잡아내고, 계수 \(\phi_{ii,\ell}\)는 변수 \(y_i\)\(\ell\)번째 시차의 영향을 잡아냅니다.

모델링한 시계열이 정상성(stationarity)을 나타내면, VAR로 직접 데이터를 맞춰서 예측합니다(“수준의 VAR”로 알려진). 시계열이 정상성을 나타내지 않으면, 정상성을 나타내도록 데이터에서 차분(difference)을 구하고, VAR 모델을 맞춥니다(차분의 VAR로 알려진). 두 경우 모두, 최소 제곱 원리(least square principle)를 이용하는 식으로 모델을 추정합니다. 각 식에서 \(e_{i,t}\) 값의 합을 최소화하여 매개변수를 추정합니다.

이 책에서 다루는 범위를 벗어나서 여기에서는 자세히 살펴보지는 않을 다른 가능성도 있습니다. 이 방법에서는 시계열이 정상성을 나타내지 않을 수 있지만, 서로 결합되어 있습니다. 이것은 정상성을 나타내는 선형 결합이 존재한다는 의미입니다. 이 경우에는 오차 보정 방법(부통 벡터 에러 보정 모델로 부르는)을 포함하는 VAR 기법이 들어가야만 하고 최소 제곱 추정 대신에 다른 추정 기법을 사용해야 합니다.23

반복적으로 VAR로부터 예측값을 얻습니다. VAR은 시스템에 있는 변수에 대한 예측값을 냅니다. 이 과정을 설명하기 위해, 식 (11.1)(11.2) 에서 설명한 시간 \(T\)까지의 모든 관측값에 대해 2차원 VAR(1)을 맞춘 것을 가정합니다. 그러면 다음의 식으로부터 한-단계-앞 예측값을 얻습니다. \[\begin{align*} \hat y_{1,T+1|T} &=\hat{c}_1+\hat\phi_{11,1}y_{1,T}+\hat\phi_{12,1}y_{2,T} \\ \hat y_{2,T+1|T} &=\hat{c}_2+\hat\phi _{21,1}y_{1,T}+\hat\phi_{22,1}y_{2,T}. \end{align*}\]

이것은 0으로 둔 오차와 매개변수를 추정값으로 바꾼 것을 제외하고는 (11.1)(11.2)와 같은 형태입니다. \(h=2\)에 대해, 다음의 식으로부터 예측값을 얻습니다. \[\begin{align*} \hat y_{1,T+2|T} &=\hat{c}_1+\hat\phi_{11,1}\hat y_{1,T+1}+\hat\phi_{12,1}\hat y_{2,T+1}\\ \hat y_{2,T+2|T}&=\hat{c}_2+\hat\phi_{21,1}\hat y_{1,T+1}+\hat\phi_{22,1}\hat y_{2,T+1}. \end{align*}\] 또 다시, 0으로 둔 오차, 매개변수를 추정값으로 바꾼 것, \(y_1\)\(y_2\)의 알려지지 않은 값을 제외하고는 (11.1)(11.2)와 같은 형태입니다. 이러한 방법으로 미래의 모든 시점에 대해 이 과정을 반복할 수 있습니다.

VAR을 이용하여 예측할 때 두 가지 판단을 해야합니다. (\(K\)로 쓰는) 얼마나 많은 변수와 (\(p\)로 쓰는) 얼마나 많은 시차값이 시스템에 있어야 하는지입니다. VAR에서 추정할 계수의 수는 \(K+pK^2\)와 같습니다(또는 식 하나 당 \(1+pK\)개). 예를 들면, \(K=5\) 변수와 \(p=3\) 시차값이 있는 VAR에 대해, 추정할 전체 80개의 계수에 대해 식 하나 당 16개의 계수가 있습니다. 추정할 계수가 많아지면, 예측에 들어오는 추정 오차가 커집니다.

실제로는 \(K\)를 작게 두고 서로 상관관계가 있는 (예측할 때 쓸모 있는) 변수만 포함합니다. 넣을 시차값(lag)의 수를 고를 때 흔히 정보기준(information criteria)을 사용합니다.

R의 vars 패키지에는 VAR 모델이 구현되어 있습니다. 이 패키지에는 4가지 서로 다른 정보 기준(AIC, HQ, SC, FPE)을 가지고 시차 \(p\) 값의 수를 고르기 위한 VARselect() 함수가 있습니다. AIC는 이전에 다루었고, SC는 단순히 BIC의 다른 이름입니다(SC는 이 방법을 제안한 기던 슈와르츠(Gideon Schwarz) 이후에 불렀던 슈와르츠 기준(Schwarz Criterion)의 약자입니다). HQ는 하난-퀸(Hannan-Quinn) 기준이고 FPE는 “최종 예측 오차(Final Prediction Error)”입니다.24 AIC를 이용할 때는 시차 값의 수가 크게 선택되는 경향이 있으니 조심해야합니다. 대신에 VAR 모델에 대해서 BIC를 사용하는 것을 추천합니다.

VAR 모델은 이론적이지 않다고 비판 받습니다. 즉, 이론적인 구조를 식에 반영하는 몇몇 경제학적 이론에 기초하여 세운 것이 아닙니다. 모든 변수는 시스템 안의 다른 모든 변수에 영향을 준다는 가정을 하기 때문에 추정한 계수를 해석하는 것이 어렵습니다. 그렇긴 하지만, VAR 모델은 여러 상황에서 유용합니다:

  1. 분명한 해석이 필요 없을 때 관련된 변수의 모임을 예측할 때;
  2. (그랑거(Granger) 인과율(causality) 검정에 기초하여) 한 변수가 다른 것을 예측 할 때 유용한지 판단할 때;
  3. 충격 반응 분석(impulse response analysis), 한 변수가 다른 한 변수의 갑작스럽지만 일시적인 변화에 반응하는 것을 분석할 때;
  4. 예측 분산 분해를 예측할 때, 다른 변수의 효과의 결과가 각 변수의 예측 분산의 비율이 될 때.

예제: 미국 소비 예측에 대한 VAR 모델

library(vars)
VARselect(uschange[,1:2], lag.max=8,
  type="const")[["selection"]]
#> AIC(n)  HQ(n)  SC(n) FPE(n) 
#>      5      1      1      5

출력 결과는 vars 패키지에서 이용할 있는 각 정보 기준으로 고른 시차 길이를 나타냅니다. AIC로 고른 VAR(5)와 BIC로 고른 VAR(1) 사이에 큰 차이가 있습니다. 이런 차이는 그렇게 특별한 것이 아닙니다. 결과적으로 BIC로 고른 VAR(1)을 먼저 맞춥니다.

var1 <- VAR(uschange[,1:2], p=1, type="const")
serial.test(var1, lags.pt=10, type="PT.asymptotic")
var2 <- VAR(uschange[,1:2], p=2, type="const")
serial.test(var2, lags.pt=10, type="PT.asymptotic")

단변수(univariate) ARIMA 기법과 비슷하게, 포트맨토(portmanteau) 검정25을 이용하여 잔차(residual)에 상관관계(correlation)가 없는지 확인합니다. VAR(1)과 VAR(2) 둘 다 약간의 잔차 계열상관(residual serial correlation)이 있습니다. 따라서 VAR(3)으로 맞춥니다.

var3 <- VAR(uschange[,1:2], p=3, type="const")
serial.test(var3, lags.pt=10, type="PT.asymptotic")
#> 
#> 	Portmanteau Test (asymptotic)
#> 
#> data:  Residuals of VAR object var3
#> Chi-squared = 34, df = 28, p-value = 0.2

이 모델에 대한 잔차(residual)는 계열상관에 대한 검증을 통과합니다. VAR(3)로 낸 예측값을 그림 11.10에 나타냈습니다.

forecast(var3) %>%
  autoplot() + xlab("연도")
VAR(3)으로 생성한 미국 소비와 소득에 대한 예측값.

Figure 11.10: VAR(3)으로 생성한 미국 소비와 소득에 대한 예측값.


  1. 더욱 유연한 일반화는 벡터 ARMA 과정이 될 것입니다. 하지만, VARs의 상대적인 단순함 때문에 예측할 때 인기가 있습니다. 관심 있는 분은 Athanasopoulos, Poskitt, & Vahid (2012) 을 참조하시길 바랍니다.↩︎

  2. 관심 있는 독자들은 Hamilton (1994)Lütkepohl (2007) 을 참조하시길 바랍니다.↩︎

  3. 이러한 기준을 자세하게 비교한 내용은 Lütkepohl (2005) 의 4장의 3절을 참조하시길 바랍니다.↩︎

  4. “vars” 패키지에서 계열상관(serial correlation)에 대한 검정은 3.3 절에서 다룬 검정의 다변수(multivariate)로의 일반화입니다.↩︎