본문 바로가기
딥러닝

자동 회귀 모델 | Autoregressive model

by 객잔주인 2023. 11. 23.

이 글은 제 스스로의 공부를 위해 작성된 글이므로 일부 틀린 내용이 있을 수 있으며  논리적 비약과 생략이 다량 포함되어있습니다!

 

Autoregressive model 혹은 AR model은 과거의 데이터를 이용해서 미래를 예측하는데에 유용한 모델입니다. 예를 들어, NLP 분야라면 이어지는 단어나 문장을 예측하는데에 사용될 수 있습니다. 요즘 세계적으로 유명하고 많은 사람들이 유용하게 사용하는 GPT가 이에 해당합니다.

 

Autoregressive model은 AR(p)로 표현되고 (p는 order of model이라고 해서 얼마나 먼 과거까지 모델에 포함시키는지 설정하는 값) 아래와 같은 수식으로 표현됩니다

 

$$y_{t} = c + \phi_{1}y_{t-1} + \phi_{2}y_{t-2} + ... + \phi_{p}y_{t-p} + \epsilon_{t}$$

 

$$Where: \ \ c, \phi_{1}, \phi_{2}, \phi_{3}, ..., \phi_{p}: parameters$$

$$y_{t-1}, y_{t-2}, ..., y_{t-p}: datas$$

$$\epsilon_{t}: noise$$

 

$\phi$의 경우에는 -1이상 1이하의 값입니다. 왜냐하면 위 식에서 $y_{t-1}, y_{t-2}, ..., y_{t-p}$ 모두 자세히 들여다보면 전개했을 때 위 식처럼 $\phi$가 곱해진 $y$ 값들의 합으로 표현되기 때문에 $\phi$가 거듭제곱이 되게 됩니다. 그래서 $\phi$ 값이 1을 초과하거나 -1 미만이면 절대값이 매~우 커지게 되어 현재 ($y_{t}$)에 큰 영향을 미치는 변수가 되기 때문에 이를 방지하기 위해 $-1\leq\phi\leq 1$로 제한을 둡니다.

 

$y_{t}$는 예측하고자 하는 값을 의미하고 여기서 t는 예측하고자 하는 시점을 의미합니다. 따라서 t-1은 t보다 한 단위 전, t-p는 t보다 p 단위 만큼 이전의 시점을 의미합니다. 여기서 '단위'라고 한 것은 기준을 어떻게 잡느냐에 따라 다르기 때문입니다. 예를 들어 t가 이번 주를 의미한다면 t-1은 지난 주를 가리킬것이고, t가 올해를 의미한다면 t-1은 지난해를 의미합니다.

 

다시말해서 올해의 코스피 지수를 AR(6) 모델로 예측을 하려고 한다면 6년치 과거의 코스피 지수의 변동을 분석하겠다는 뜻이 됩니다. 여기서 p값을 lag이라고도 하는데 얼마나 이전의 데이터까지 봐야하느냐를 의미합니다. lag을 얼마나 취해야하는지는 분야마다 다릅니다. 하루 전의 데이터만으로 다음 날을 예측할 수 있다면 AR(1) 모델을 사용하면 되고, 일주일 정도의 데이터를 봐야한다면 AR(7) 모델을 사용합니다.

 

lag을 결정하는 또 다른 방법은  PACF function (partial autocorrelation function)을 이용하는 것입니다. 여기서 autocorrelation (자기상관)이라는 것은 시계열에서 과거의 데이터가 현재의 데이터를 얼만큼 설명할 수 있는지를 나타냅니다. partial autocorrelation function은 중간의 다른 시점을 모두 제외하고 과거의 한 점이 현재에 영향을 얼마나 미쳤는지를 나타내주는 함수입니다. 이 함수를 사용하면 -1 이상 1 이하의 값으로 과거의 한 시점이 현재에 미치는 영향을 수치화해서 볼 수 있습니다. 아래 그림은 예시입니다:

 

출처: https://medium.com/@adityaghoshsbg/intro-to-the-autoregressive-model-3c4efd4b6559

위 그림에서는 lag 0(현재)와 lag 1에서 높은 값이 나왔고 그 이후로는 0에 가깝기 때문에 AR(1) 모델을 사용한다는 판단을 내릴 수 있을 것 같습니다. (이 계산은 statsmodels라는 모듈을 이용해 구할 수 있는데 더 공부하고 나중에 따로 포스팅하겠습니다)