Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

Machine Learning Tasks/Time Series

Parameter Estimation, Model Redundancy, Prediction

반응형

Parameter estimation

이 장에서는 ARMA 모델의 파라미터를 추측하는 일반적인 방법에 대해 설명하고자 합니다. 지금까지 살펴봤던 방법으로는 ordinary least square (OLS) 를 이용한 회귀 분석이나 correlation 을 이용한 Yule-Walker equation 이 있습니다. 각 모델마다 일일히 구하는 것 대신 보다 일반적인 방법은 없을까요?

Conditional minimization

이 방법은 error 를 최소화하는 방향으로 파라미터를 찾는 방법입니다. 에러를 최소화한다는 것은 에러가 white noise 로 가정한 정규 분포에 대한 우도가 최대화하는 것과 같은 말이라 생각할 수 있습니다.

MA(1) (Xt=atθat1) 에 대해 살펴보겠습니다. 이를 B를 이용해 표현하면 at=(1θB)1Xt가 되고 |θ|<1과 무한등비급수를 이용하면 at=Xt+θXt1+θ2Xt2+... 로 나타낼 수 있습니다.

Causal 한 시스템을 생각했을 때, ˜a1=X1, ˜a2=X2+θX1 와 같이 적을 수 있습니다. 이때, ˜a는 추정한 모델에 대한 잔차이므로 ˜a2를 최소화하는 θ를 찾으면 파라미터를 찾을 수 있습니다.

ARMA(1,1) 모델에 (Xt=ϕXt1+atθat1) 대해서는 어떨까요? 이것도 위와 마찬가지로 at에 대해 정리하면 at = XtϕXt1+θat1와 같고 이를 이용하면 ˜a2=X2ϕX1, ˜a3=X3ϕX2+θ˜a2 식으로 정리됩니다. 위와 마찬가지로 ˜a2를 최소화하는 θ,ϕ를 찾으면 해당 모델의 파라미터를 추정할 수 있습니다. 이때의 최소화는 최적화 문제로 Neuton-Rhapson 같은 수치해석 방법을 통해 답을 찾을 수 있습니다. 

 

Model redundancy

우리가 살펴본 여러 검증 방법에 대해서 보통 모델이 정확히 딱 하나로 정해지지는 않습니다. 이때 활용할 수 있는 다른 가이드라인 하나는 모델의 redundancy를 확인해보는 작업입니다. Redundancy 로부터 유추할 수 있듯이 표현력이 비슷한 모델들이 있다면 굳이 더 복잡한 모델을 쓸 필요가 없겠죠.

예를 들어 Xt=1/2Xt1+at의 AR(1) 모델이 있다고 생각해봅시다. 이것은 (10.5B)Xt=at가 되는데, 양변에 임의의 값 10.4B을 곱하면 Xt=0.9Xt10.2Xt2+at0.4at1이 되어 ARMA(2,1) 모델이 되버립니다. 두개의  모델이 데이터를 잘 표현한다면 AR(1) 과 같이 더 단순한 모델을 사용하는 것이 낫습니다.

만약 ARMA(2,1) 모델을 사용하면 어떻게 될까요? 이것은 모델에 redundant 한 파라미터가 있기 때문에 (10.4B 일 수도 있고 10.2B 일 수도 있습니다) 수치해석적으로 해가 유일하게 정해지지 않고 예측치의 분산이 커지게 됩니다. 또한, 예측치의 분산이 커지므로 t 분포의 t 값이 작아지고 이것의 p-value 또한 커지게 됩니다. 

이를 해결하기 위해서는 각 계수를 예측한 이후에 계수의 p-value를 추정하고 p-value가 크다면 다항식을 구성하여 공통된 인수를 찾는 방법이 있습니다. 이러한 방법으로 redundant한 모델을 tight하게 만들 수 있습니다.

 

Prediction

모델을 추정한 이후의 이후의 값 예측은 어떻게 할까요? 우리가 만든 예측 모델 h에 대해 과거값 X=x가 (확률 변수의 realization) 있다면 예측은 E[(yh(x)2|X=x]로 생각할 수 있고 이를 미분하여 정리하면 예측값 ˆyE[Y|X=x]로 생각할 수 있습니다. 

Case of AR

AR(1) 모델 (Xt=ϕXt1+at+μ) 에 대해서 예측을 해보고자 합니다. 먼저 t+1 시점의 예측값에 대해서는 ˆXt+1 = E[Xt+1|x1,x2,...,xt] 가 되고 이는 E[ϕXt+at+1|x1,x2,...,xt] = ϕxt+μ 로 표현할 수 있습니다.

t+2 시점의 예측값은 ˆXt+2 = E[Xt+2|x1,x2,...,xt] = E[ϕ(ϕxt+at+1+μ)+at+2|x1,x2,...,xt]가 됩니다. 이를 정리하면 ϕ2xt+ϕμ+μ=ϕˆXt+1+μ가 됩니다. 즉, 전 시점의 예측값에 ϕ를 곱해 다음 스텝의 값을 예측합니다. 이를 일반화해서 t 시점이 무한하게 된다면 어떻게 될까요? ˆX+1=ˆX+μ 가 되므로 결국 μ1ϕ로 수렴하게 됩니다.

AR(2) 에 대해서도 똑같이 적용해보면 ˆXt+1 = ϕ1xt+ϕ2xt1+μ, ˆXt+2 = ϕ1ˆXt+1+ϕ2xt+μ 와 같고 이것도 결국 예측치가 모델의 평균인 μ1ϕ1ϕ2로 수렴하게 됩니다.

Case of MA

MA(1) 의 t+1 시점에 대해 예측해보면 ˆXt+1 = E[Xt+1|x1,x2,...,xt] = E[at+1θat+μ|x1,x2,...,xt] 과 같이 됩니다. 이를 정리하면 ˆXt+1 = θE[at|x1,x2,...,xt]+μ 인데, E[at|x1,x2,...,xt]는 위에서 언급한 parameter estimation 의 conditional minimization 방법으로 구할 수 있습니다. (˜at)

t+2 시점에 대해서는 어떻게 될까요? ˆXt+2 = E[Xt+2|x1,x2,...,xt] = E[at+2θat+1+μ] = μ 가 됩니다. 즉, MA(1) 모형은 white noise가 한 스텝끼리 연결되어 있다고 가정하는 모델이니 두 스텝 이후부터는 그냥 모델의 평균을 예측하게 됩니다. 

Case of ARMA

다음과 같은 ARMA(2,3) 모델, Xt=Xt10.24Xt2+at+0.4at1+0.2at2+0.1at3 이 있다고 합시다. 이것의 ˆXt+1은 어떻게 될까요? 간단하게 ˆXt+1=xt0.24xt1+˜at+0.4˜at1+0.2˜at2+0.1˜at3 이 되겠죠. 그 이후 시점의 예측은 마찬가지로 관측값이 없을 경우 예측값을 넣어 계산해주면 됩니다. 결과적으로 시간이 지나면 MA로부터 오는 영향은 없어지고 AR로부터의 영향으로만 예측을 하게 됩니다.

이때, ˜at,˜at1,...를 어떻게 구할 수 있을까요? Conditional minimization에서 ˜a1=˜a2=0이라 가정하면 ˜a3=x3x2+0.24x1, ˜a4=x4x3+0.24x2+˜a3과 같이 순차적으로 구할 수 있습니다.

Error of prediction

예측값의 분산을 알아보기 위해 먼저 회귀 분석 시의 에러가 어떻게 분석되는지 알아보겠습니다.

y=β0+β1x+ϵ 에서 ˆβ0, ˆβ1를 추정하고 새로운 관측치는 ˆynew=ˆβ0+ˆβ1x로 추정합니다. (ϵ은 알 수가 없어 0으로 추정합니다) 그렇다면 ˆynew의 변동성은 1) ˆβ0, ˆβ1의 에러 (관측 데이터의 inherent noise) 와 2) ϵ으로부터 오는 에러일 겁니다. 실제 상황에서는 시계열 데이터의 개수가 (n) 많기 때문에 ϵ으로부터 오는 에러가 더 크다고 가정합니다. 

AR(2) 모형에 대해 생각해 보겠습니다. t+1 시점의 예측치는 ˆXt+1=ˆϕ1xt+ˆϕ2xt1+μ 로 구해집니다. n이 많아 추정한 ϕ가 실제값에 가깝다고 가정하면, Xt+1 ˆXt+1=at+1이 되고 이 값은 white noise가 됩니다. 그렇다면 Xt+1에 대한 100(1-α) 신뢰도 구간은 ˆXt+1±Zα/2σ2a가 됩니다. σ2a를 찾기 위해서 Var(Xt+1)과 Yule-Walker equation을 이용하거나 다음과 같은 방법이 이용됩니다.

일반적인 소프트웨어에서,

ˆσ2a=SSRn(p+q)

식을 이용해 σ2a를 구합니다. 여기서 SSR 는 Sum of Squared Residual 의 약자로 시계열 데이터에서 모델 추정값과 실제값의 차이의 제곱의 합입니다.

일반적인 ARMA(p,q) 모형에 대한 t+2 시점 이후의 예측은 어떨까요? 여기서 기존 AR, MA 모델에서 보았듯이 stationary 조건을 이용해 (무한등비급수, invert) Xt를 전 시점의 에러의 합으로 다음과 같이 나타냅니다.

Xt=at+ψ1at1+ψ2at2+...

Xt+1=at+1+ψ1at+ψ2at1+...

Xt+2=at+2+ψ1at+1+ψ2at+...

Xt+1ˆXt+1n이 많아 추정값이 정확하다고 가정하면 at+1과 근사하다고 가정할 수 있습니다. 한 스텝 더 나아가 ˆXt+2=0+0+ψ2at+...로 예측할 수 있고 Xt+2ˆXt+2=at+2+ψ1at+1이 됩니다. 그렇다면 Var[Xt+2ˆXt+2]=(1+ψ21)σ2a가 되게 됩니다. 이것을 생각해보면 t+1 시점은 하나의 에러항이 남고 t+2 시점은 두 시점의 에러항이 남는데 관련된 ψ가 따라 붙는 형태가 됩니다.

이를 일반화해서 먼 스텝까지 확장하면 Var[Xt+lˆXt+l]=(1+ψ21+...+ψ2l1)σ2a 로 표현할 수 있습니다. l라면 예측값의 분포는 어떻게 될까요? 먼저 Var[Xt+lˆXt+1]Var[Xt]로 수렴합니다. 즉, 긴 시점까지 예측하게 되면 예측치의 분산은 점점 커지게 되면서 (미래 예측치의 noise가 추가되므로) Var[Xt]로 수렴하게 됩니다. 예측값의 평균은 스텝을 계속 전진시키면 미래 시점의 white noise의 평균을 0으로 예측하기 때문에 E[Xt] 근사하게 됩니다. 

이를 통해 stationary 한 신호로만 먼 미래의 예측보다는 짧은 미래의 예측이 더 정당성이 높습니다. 먼 미래의 예측은 추세나 nonstationary한 부분을 반영해야 먼 미래를 더 잘 추정할 수 있습니다.

반응형