Processing math: 100%

금융/시계열

[시계열] 벡터자기회귀모델 (Vector Auto-Regressive Model)

xeskin 2020. 8. 29. 15:31
반응형

벡터 자기회귀모델은 이전 포스팅에서 다루었던 자기회귀모델의 벡터꼴이다. 예시로 VAR(1)을 살펴보자.

[rtqt]=[abcd][rt1qt1]+[ϵr,tϵq,t]

xt=Axt1+ϵt

이전 포스팅에서 AR(1)=MA()로 쓸 수 있던 것처럼 벡터꼴의 자기회귀모델 또한 VAR(1)VMA()로 쓸 수 있다. 이는 다음과 같다.

xt=Axt1+ϵtϵt=xt+Axt1ϵt=xtALxtϵt=(IAL)xtxt=(IAL)1ϵtxt=(I+AL+A2L2+)ϵt=VMA()

 

VAR을 사용하지, VARMA는 쓰지 않는다. VARMA는 추정하기 어렵기 때문인데, VAR 모델의 경우에는 과거의 데이터만 필요하기 때문에 파라미터를 추정하는 데 있어 OLS(Ordianry Least Square)를 돌리면 된다. (MLE를 사용해도 되지만 OLS가 많은 경우 쉽고 편하다.) 하지만, MA 모델은 인풋에 대한 에러텀을 요구하는데, 이는 관찰을 할 수 없기 때문에 OLS를 사용하는 것이 바람직하지 않다. 그래서 MLE를 사용하는데, 에러텀의 lag가 많아질수록 MLE 계산이 복잡해진다.

 

Converting Into VAR(1)

다행히, 우리는 모든 시계열을 VAR(1)로 변환해줄 수 있다. 이는 우리가 일반적으로 VAR(1)을 사용하는 이유가 된다.

 

우선 이 얘기를 하기 전, ARMA(p,q) 모델을 먼저 정의하자.

 

Def_ (자기회귀-이동평균 모델)

ARMA(p,q)=AR(p)+MA(q)

 

Ex_

ARMA(2,1)을 생각해보자.

yt=ϕ1yt1+ϕ2yt2+ϵt+θ1ϵt1

이는 다음과 같이 바꿔 벡터꼴로 만들 수 있다.

where Var(ϵt)=σ2ϵI

 

종종 shock의 variance matrix를 단위행렬이 되도록 쓰는 것이 편리한데, 위의 행렬식을 바꿔 써보자.

 

 

Forecasting

이제 VAR(1) 모델을 이용하여 n-step forecasting을 해보자.

 

One Step Forecasting

E[xt+1|xt]=E[Axt+ϵt|xt]=Axt

Var[xt+1|xt]=Var[Axt|ϵt|xt]=Var(ϵt)

 

Two Step Forecasting

E[xt+1|xt]=E[Axt+1+ϵt+1|xt]=E[A(Axt+ϵt)+ϵt+1|xt]=E[A2xt+Aϵt+ϵt+1|xt]=A2xt

Var[xt+1|xt=Var[A2xt+Aϵt+ϵt+1|xt+1]=Var[Aϵt+ϵt+1|xt]=AVar(ϵt)At+Var(ϵt)

 

n Step Forecasting

E[xt+n|xt]=Anxt

Var[xt+n|xt]=AnVar(ϵt)[At]n++AVar(ϵt)At+Var(ϵt)

반응형