금융 시계열 분석의 수학적 기초: 과거 데이터로 미래를 엿보다

금융 시계열 분석의 수학적 기초: 과거 데이터로 미래를 엿보다

“과거는 미래를 비추는 거울이다.”

금융 시장을 예측하는 것은 오랫동안 많은 사람들의 꿈이었습니다. 주식 가격이 내일 오를지, 환율이 다음 달에 어떻게 변할지 미리 알 수 있다면 얼마나 좋을까요? 안타깝게도 금융 시장은 복잡계 그 자체여서 완벽한 예측은 불가능에 가깝습니다. 하지만 그렇다고 해서 우리가 아무것도 할 수 없는 것은 아닙니다. 과거 데이터 속에 숨겨진 패턴을 찾아내 미래를 조금이나마 엿볼 수 있게 도와주는 강력한 도구가 있습니다. 바로 ‘시계열 분석’과 그 수학적 기초 모델들, 특히 AR, MA, ARIMA입니다. 오늘은 이 마법 같은 도구들의 세계로 쉽고 재미있게 떠나보겠습니다.

시계열 데이터의 특성과 자기상관: 시간 속에 숨겨진 기억

우리가 매일 접하는 주가, 환율, 금리, 경제 지표 등은 모두 시간에 따라 기록된 ‘시계열 데이터’입니다. 이미지나 설문조사 데이터와 달리, 시계열 데이터의 가장 중요한 특징은 ‘시간 의존성(Temporal Dependence)’입니다. 즉, 오늘의 데이터는 어제의 데이터와 무관하지 않다는 것이죠. 어제 주가가 올랐다면 오늘도 오를 가능성이 조금 더 높을 수 있고, 지난달 환율의 움직임은 이번 달 환율에도 영향을 미칩니다.

이처럼 시계열 데이터에서 현재 값이 과거 값과 가지는 관련성을 통계학에서는 ‘자기상관(Autocorrelation)’이라고 부릅니다. 마치 데이터가 과거를 ‘기억’하는 것과 같죠. 이 자기상관이야말로 시계열 분석의 핵심이자, 우리가 미래를 예측할 수 있는 실마리가 됩니다. 자기상관이 없다면 데이터는 그저 무작위적인 움직임(백색 잡음)일 뿐 예측 자체가 불가능합니다.

자기상관의 패턴을 시각적으로 보여주는 도구가 자기상관 함수(ACF, Autocorrelation Function)입니다. ACF 그래프를 보면 현재 값이 과거 몇 시점 전의 값과 얼마나 강한 상관관계를 가지는지 한눈에 파악할 수 있습니다. 이 패턴 분석은 뒤에서 소개할 모델들을 선택하는 데 중요한 역할을 합니다.

시계열 분석을 제대로 하려면 데이터가 ‘정상성(Stationarity)’을 만족하는지 확인하는 과정도 필요합니다. 정상성이란 시간의 흐름에 따라 데이터의 평균이나 분산 같은 통계적 특성이 변하지 않는 것을 의미합니다. 주가처럼 계속 추세를 가지고 변하는 데이터는 비정상 시계열인데, 이 경우 ‘차분(Differencing)’이라는 수학적 기법(현재 값에서 이전 값을 빼는 등)을 통해 정상성을 갖도록 변환해 줄 수 있습니다. 제 생각에, 이 과정은 마치 울퉁불퉁한 땅을 평평하게 고른 뒤 건물을 짓는 것과 같습니다. 안정적인 기반 위에서 더 정확한 분석이 가능해지는 것이죠.

기본적인 모형 소개 및 예측: 과거 패턴으로 미래 그리기

자기상관이라는 데이터의 ‘기억’ 패턴을 수학적으로 모델링하는 대표적인 방법이 바로 AR, MA, ARIMA 모델입니다.

1. AR (Autoregressive, 자기회귀) 모형: 이름 그대로 ‘자기 자신(Auto)’에게 ‘회귀(Regressive)’하는 모델입니다. 현재 시점의 값이 과거 일정 기간 동안의 값들에 의해 영향을 받는다는 가정에 기반합니다. 예를 들어, AR(1) 모델은 현재 값이 바로 직전 시점의 값에만 영향을 받는다고 봅니다. AR(p) 모델은 과거 p개 시점의 값이 현재 값에 영향을 준다고 가정합니다. 주식 시장의 ‘추세’나 ‘관성’을 생각하면 이해하기 쉽습니다. 어제까지 오르던 주식이 오늘도 그 힘을 받아 오르려는 경향을 보이는 것을 수학적으로 표현한 것이죠.

2. MA (Moving Average, 이동평균) 모형: AR 모델과 조금 다릅니다. MA 모델은 현재 값이 과거의 값이 아니라, 과거의 ‘예측 오차(Error)’들에 의해 영향을 받는다고 가정합니다. 예측 오차란 모델이 예측한 값과 실제 값의 차이, 즉 ‘예상치 못한 충격(Shock)’을 의미합니다. MA(1) 모델은 현재 값이 바로 직전 시점의 예측 오차에 영향을 받는다고 봅니다. MA(q) 모델은 과거 q개 시점의 예측 오차가 현재 값에 영향을 준다고 가정합니다. 갑작스러운 뉴스나 사건으로 인해 시장이 예상과 다르게 움직였을 때, 그 충격의 여파가 다음 시점까지 이어지는 현상을 설명한다고 볼 수 있습니다. 참고로, 기술적 분석에서 사용하는 ‘단순 이동평균(Simple Moving Average, SMA)’과는 다른 개념입니다.

3. ARIMA (Autoregressive Integrated Moving Average) 모형: 이 모델은 AR과 MA 모형을 결합하고, 비정상 시계열 데이터를 다루기 위한 ‘차분(Integrated)’ 개념까지 포함한, 그야말로 시계열 분석의 만능 도구입니다. ARIMA(p, d, q) 형태로 표현되는데, p는 AR 부분의 차수, q는 MA 부분의 차수, 그리고 d는 정상성을 확보하기 위해 차분을 몇 번 수행했는지를 나타냅니다. 예를 들어, ARIMA(1, 1, 1) 모델은 데이터를 한 번 차분한 뒤, AR(1) 요소와 MA(1) 요소를 모두 고려하여 모델링한다는 의미입니다. ARIMA 모델은 그 유연성 덕분에 다양한 시계열 패턴을 잡아낼 수 있습니다.

제 생각에 이 모델들은 마치 과거의 대화를 분석하여 미래의 대화 내용을 예측하려는 시도와 같습니다. AR 모델은 상대방이 ‘과거에 했던 말’에 주목하고, MA 모델은 상대방이 했던 말 중 ‘예상치 못했던 부분(놀람, 실수 등)’에 주목합니다. ARIMA는 이 두 가지 정보를 모두 활용하고, 대화의 기본적인 분위기 변화(차분)까지 고려하는 종합적인 분석가라고 할 수 있겠네요.

금융 데이터 적용 사례: 주가, 환율 예측에 도전하다

ARIMA 모델은 그 유용성 덕분에 금융 분야에서 널리 활용됩니다. 대표적인 예가 주가 예측, 환율 예측, 금리 예측, GDP나 실업률 같은 경제 지표 예측 등입니다.

예를 들어, 특정 기업의 과거 주가 데이터를 이용하여 ARIMA 모델을 구축하고, 이를 통해 다음 달의 주가 움직임을 예측해 볼 수 있습니다. 마찬가지로, 과거 원/달러 환율 데이터를 분석하여 미래 환율 변동을 예측하고, 이를 통해 환리스크 관리나 환전 전략을 세울 수도 있습니다. 파이썬의 statsmodels와 같은 통계 라이브러리를 이용하면 비교적 쉽게 이러한 모델을 구현하고 예측을 수행할 수 있습니다.

하지만 여기서 중요한 점은, ARIMA 모델이 만능 예측 도구는 아니라는 것입니다. 특히 금융 시장 데이터는 예측 모델의 가정을 벗어나는 비선형적 패턴이나 갑작스러운 구조적 변화(예: 금융위기, 팬데믹)를 보이는 경우가 많습니다. 또한, 모델은 과거 데이터의 패턴만을 학습하므로, 미래에 발생할 예상치 못한 외부 충격(예: 정치적 사건, 기술 혁신)까지 예측할 수는 없습니다.

따라서 ARIMA 모델은 시장의 복잡한 움직임을 이해하고 단기적인 추세를 예측하는 데는 유용하지만3, 이를 ‘미래를 맞추는 수정 구슬’처럼 맹신해서는 안 됩니다. 제 경험상, 이 모델들은 미래를 정확히 예측하기보다는 과거 데이터의 동적인 특성을 파악하고, 가능한 미래 시나리오의 범위를 가늠하는 데 더 큰 가치가 있습니다.

모델 선택과 오버피팅 문제: 정교함과 함정 사이

ARIMA 모델을 사용하려면 (p, d, q)라는 세 개의 모수를 결정해야 합니다. 이 값들을 어떻게 정하느냐에 따라 모델의 성능이 크게 달라지는데, 보통 ACF와 PACF(Partial Autocorrelation Function) 그래프를 분석하거나, AIC(Akaike Information Criterion), BIC(Bayesian Information Criterion) 같은 통계적 기준을 사용하여 최적의 조합을 찾습니다.

그런데 여기서 주의해야 할 함정이 바로 ‘오버피팅(Overfitting)’입니다. 오버피팅은 모델이 학습 데이터에 너무 과도하게 맞춰져서, 데이터에 내재된 실제 패턴뿐만 아니라 우연히 발생한 잡음(Noise)까지 학습해버리는 현상을 말합니다15. 마치 시험공부를 할 때 문제집의 답만 달달 외워서 그 문제집으로는 100점을 받지만, 실제 시험에서는 처음 보는 문제에 당황하여 낮은 점수를 받는 것과 같습니다4.

금융 데이터는 노이즈가 많고 시장 상황이 계속 변하기 때문에 오버피팅이 발생하기 쉽습니다. 오버피팅된 모델은 과거 데이터(학습 데이터)에서는 예측 성능이 매우 뛰어나 보이지만, 새로운 데이터(테스트 데이터 또는 실제 시장)에서는 형편없는 결과를 내놓게 됩니다. 이는 많은 자동 매매 전략이 과거 데이터 테스트(백테스팅)에서는 높은 수익률을 보이다가 실제 투자에서는 손실을 보는 주요 원인 중 하나입니다.

오버피팅을 피하기 위한 방법은 여러 가지가 있습니다.

  • 모델 단순화: 너무 복잡한 모델(p, q 값이 너무 큰 경우)보다는 가능한 한 단순한 모델을 사용하는 것이 좋습니다.
  • 충분한 데이터 확보: 더 많은 데이터를 사용하면 모델이 데이터의 특이한 점보다는 일반적인 패턴을 학습하는 데 도움이 됩니다.
  • 데이터 분할 및 검증: 전체 데이터를 학습용, 검증용, 테스트용으로 나누어, 학습되지 않은 데이터로 모델 성능을 객관적으로 평가하는 것이 필수적입니다.
  • 정규화(Regularization): 모델의 복잡도에 페널티를 부과하여 과도하게 학습되는 것을 방지하는 기법도 있습니다.

제 의견으로는, 오버피팅은 알고리즘 트레이딩이나 금융 예측 모델 개발에서 가장 경계해야 할 ‘조용한 암살자’입니다. 화려한 백테스팅 결과에 현혹되지 않고, 모델의 견고함(Robustness)과 일반화 성능을 최우선으로 검증하는 자세가 무엇보다 중요합니다. 때로는 약간 덜 정교해 보이더라도 단순하고 안정적인 모델이 실제 시장에서는 더 나은 성과를 내는 경우가 많습니다.

마치며: 과거를 통해 배우고, 현재를 분석하다

금융 시계열 분석과 ARIMA 모델은 과거 데이터 속에 숨겨진 시간적 패턴, 즉 자기상관성을 수학적으로 포착하여 미래를 예측하려는 시도입니다. 주가, 환율 등 다양한 금융 데이터의 움직임을 이해하고 단기적인 예측을 하는 데 유용한 도구임에는 틀림없습니다.

하지만 금융 시장의 복잡성과 끊임없는 변화 앞에서 이 모델들의 한계 또한 명확합니다. 비선형성, 외부 충격, 그리고 오버피팅의 위험은 항상 존재합니다. 따라서 ARIMA와 같은 전통적인 통계 모델은 그 자체로 완결된 해답이라기보다는, 금융 데이터를 이해하는 기본적인 프레임워크이자, 더 나아가 머신러닝, 딥러닝과 같은 최신 기법들과 결합하여 활용될 수 있는 중요한 기초라고 생각해야 합니다.

결국, 금융 시장을 분석하고 예측하는 여정은 과거로부터 배우고, 현재를 냉철하게 분석하며, 미래의 불확실성에 겸손하게 대비하는 과정입니다. ARIMA 모델은 그 여정에서 우리에게 수학이라는 강력한 나침반을 제공해 주는 소중한 도구 중 하나일 것입니다.