본문 바로가기
경제 금융 포털사이트 경제 금융 포털사이트

미국채 10년물 금리 변동성 분석부터 딥러닝 예측까지

금알남 읽는 시간 약 13분
ebafb8eab5adecb184 10eb8584ebacbc eab888eba6ac ebb380eb8f99ec84b1 ebb684ec849debb680ed84b0 eb94a5eb9faceb8b9d ec9888ecb8a1eab98ceca780 1789197801

미국채 10년물 금리는 글로벌 금융시장의 흐름을 살펴볼 때 자주 활용되는 대표적인 장기금리 지표입니다. 이 글에서는 미국채 금리 데이터를 활용해 변동성을 계산하고, 시계열 분석에 필요한 데이터 전처리 과정을 정리했습니다. 또한 LSTM 딥러닝 모델을 이용해 과거 금리 흐름과 변동성 패턴을 학습하는 기본 구조를 살펴봤습니다. 다만 금융시장은 다양한 경제 변수와 돌발 변수의 영향을 받기 때문에 딥러닝만으로 미래 금리를 정확하게 예측하기는 어렵습니다. 중요한 것은 예측값 자체보다 데이터 구성, 검증 방법, 기준 모델과의 비교를 통해 모델의 실질적인 활용 가능성을 판단하는 것입니다.

미국 금융시장을 살펴볼 때 자주 등장하는 지표가 미국채 10년물 금리입니다. 주식시장이 크게 움직이는 날이나 미국 연방준비제도(Fed)의 통화정책 방향이 바뀔 가능성이 제기될 때도 미국채 10년물 금리가 함께 언급되는 경우가 많습니다.

그렇다면 여기서 한 가지 궁금증이 생깁니다.

과거 미국채 금리 데이터를 이용해 앞으로의 금리 변동성을 예측할 수 있을까요?

최근에는 전통적인 통계 모델뿐만 아니라 LSTM과 같은 딥러닝 모델을 금융 시계열 분석에 활용하는 방법도 연구되고 있습니다.

이번 글에서는 미국채 10년물 금리가 무엇인지부터 시작해 데이터를 어떻게 가공하고, 변동성을 어떻게 정의하며, 딥러닝 모델에는 어떤 방식으로 입력할 수 있는지 순서대로 살펴보겠습니다.

이 글의 목적은 미래 금리를 정확하게 맞히는 것이 아닙니다. 금융 데이터를 이용한 시계열 예측 모델이 어떤 구조로 만들어지는지를 이해하는 데 초점을 맞춥니다.

image 12

미국채 10년물 금리는 왜 중요한가

미국채 10년물 금리는 미국 정부가 발행하는 장기 국채 시장의 대표적인 금리 지표 가운데 하나입니다.

단순히 미국 국채 투자자들만 보는 지표라고 생각하기 쉽지만 실제 금융시장에서는 훨씬 폭넓게 활용됩니다.

미국채 장기 금리에는 현재의 기준금리뿐만 아니라 앞으로의 경기, 물가, 통화정책에 대한 시장의 기대가 복합적으로 반영될 수 있기 때문입니다.

미 연방준비제도 자료를 제공하는 FRED에서는 DGS10이라는 코드로 미국 10년 만기 Treasury Constant Maturity Rate의 일별 데이터를 제공하고 있습니다. 해당 자료의 원천은 미국 연방준비제도이며 단위는 연율 기준 퍼센트입니다. FRED에서는 이 계열의 장기간 일별 데이터를 확인할 수 있습니다.

미국 재무부 역시 1개월부터 장기 만기까지 Daily Treasury Par Yield Curve Rates를 공개하고 있어 만기별 금리 구조를 분석할 때 활용할 수 있습니다.

여기서 한 가지 주의할 점이 있습니다.

FRED의 DGS10과 미국 재무부가 제공하는 일별 수익률 곡선 데이터는 이름이 비슷하지만 데이터의 정의와 산출 방식까지 완전히 동일하다고 가정해서는 안 됩니다.

따라서 분석을 시작하기 전에 어떤 데이터 계열을 사용했는지 명확하게 기록하는 것이 중요합니다.

금리 수준보다 먼저 봐야 할 것은 변동성이다

딥러닝 모델을 만들기 전에 가장 먼저 결정해야 하는 것은 무엇을 예측할 것인가입니다.

예를 들어 오늘 미국채 10년물 금리가 4%라고 가정했을 때 내일 금리가 몇 %가 될지를 예측하는 것과 앞으로 며칠 동안 금리가 얼마나 크게 움직일지를 예측하는 것은 서로 다른 문제입니다.

후자가 바로 변동성 예측에 가깝습니다.

금리 변동성을 분석할 때는 금리 수준 자체보다 일별 변화량을 먼저 계산할 수 있습니다.

예를 들어

금리 변화량 = 오늘 10년물 금리 – 전일 10년물 금리

와 같은 방식입니다.

이 변화량을 이용해 최근 20거래일의 표준편차를 계산하면 간단한 형태의 실현 변동성 지표를 만들 수 있습니다.

파이썬에서는 다음과 같이 표현할 수 있습니다.

df["change"] = df["DGS10"].diff()
df["volatility_20"] = df["change"].rolling(20).std()

change는 하루 동안 금리가 얼마나 움직였는지를 나타내고, volatility_20은 최근 20개 관측치에서 변화량이 얼마나 크게 흔들렸는지를 보여줍니다.

여기서 중요한 것은 금리가 높다고 해서 반드시 변동성이 높은 것은 아니라는 점입니다.

금리가 비교적 높은 수준에서 일정하게 움직인다면 변동성은 낮을 수 있습니다. 반대로 금리 수준이 낮더라도 하루하루 변화 폭이 커지면 변동성은 높아질 수 있습니다.

따라서 딥러닝 모델을 만들 때도 단순히 DGS10 값만 넣기보다 금리 변화량과 금리차, 최근 변동성 등을 함께 살펴볼 필요가 있습니다.

딥러닝을 위한 미국채 데이터는 어떻게 준비할까

가장 단순한 모델에서는 미국채 10년물 금리 하나만 사용할 수도 있습니다.

하지만 금융시장에서 장기 금리가 독립적으로 움직이는 경우만 있는 것은 아닙니다.

모델의 입력 변수 후보로는 다음과 같은 데이터를 생각할 수 있습니다.

  1. 미국채 10년물 금리
  2. 미국채 2년물 금리
  3. 장단기 금리차
  4. 전일 대비 10년물 금리 변화량
  5. 일정 기간 이동평균
  6. 일정 기간 금리 변화의 표준편차
  7. 정책금리 관련 데이터
  8. 물가 또는 경기 관련 지표

다만 변수를 많이 넣는다고 모델의 예측력이 자동으로 좋아지는 것은 아닙니다.

특히 금융 데이터에서는 발표 시점이 서로 다른 자료를 사용할 때 미래 정보를 실수로 과거 데이터에 포함시키는 데이터 누수가 발생하기 쉽습니다.

예를 들어 실제로는 한 달 뒤 발표된 경제지표를 이전 날짜의 학습 데이터에 넣는다면 과거 시점에서는 알 수 없었던 정보를 모델이 사용하게 됩니다.

백테스트 결과는 좋아 보일 수 있지만 실제 예측에서는 같은 성능을 기대하기 어렵습니다.

또 하나 중요한 것이 학습 데이터와 테스트 데이터의 분리입니다.

일반적인 머신러닝 데이터처럼 무작위로 데이터를 섞어 80%를 학습 데이터로 사용하는 방식은 시계열 데이터에서는 주의해야 합니다.

과거 데이터로 학습하고 이후 시점의 데이터로 성능을 평가하는 시간 순서 분할이 기본입니다.

예를 들면 다음과 같습니다.

과거 구간 → 학습

그 이후 구간 → 검증

가장 최근 구간 → 최종 테스트

이렇게 해야 실제 투자자가 과거 정보만 가지고 미래를 예측하는 상황과 조금 더 비슷한 환경을 만들 수 있습니다.

LSTM으로 금리 변동성을 예측하는 기본 구조

금융 데이터처럼 시간 순서가 중요한 데이터에서는 LSTM(Long Short-Term Memory)을 사용할 수 있습니다.

LSTM은 순차적으로 들어오는 데이터에서 이전 시점의 정보를 일정 부분 기억하면서 다음 값을 계산하는 순환신경망 계열 모델입니다.

예를 들어 최근 60거래일의 데이터를 모델에 입력하고 다음 거래일의 변동성을 예측하는 구조를 만들 수 있습니다.

입력 데이터의 개념은 다음과 같습니다.

1일 ~ 60일 데이터 → 61일의 변동성 예측
2일 ~ 61일 데이터 → 62일의 변동성 예측
3일 ~ 62일 데이터 → 63일의 변동성 예측

파이썬에서는 먼저 데이터 구조를 만들 수 있습니다.

import pandas as pd

df["change"] = df["DGS10"].diff()
df["spread"] = df["DGS10"] - df["DGS2"]
df["volatility"] = df["change"].rolling(20).std()

df["target"] = df["volatility"].shift(-1)
df = df.dropna()

이후 일정 기간 데이터를 하나의 학습 샘플로 변환합니다.

import numpy as np

def make_sequences(data, target, window=60):
    X, y = [], []

    for i in range(window, len(data)):
        X.append(data[i-window:i])
        y.append(target[i])

    return np.array(X), np.array(y)

모델은 다음과 같은 기본적인 형태로 구성할 수 있습니다.

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout

model = Sequential([
    LSTM(64, return_sequences=True),
    Dropout(0.2),

    LSTM(32),
    Dropout(0.2),

    Dense(16, activation="relu"),
    Dense(1)
])

model.compile(
    optimizer="adam",
    loss="mse"
)

이 구조에서 LSTM 층은 일정 기간 동안 이어지는 금리 데이터의 패턴을 학습하고 마지막 Dense 층에서 다음 시점의 예상 변동성을 하나의 값으로 출력합니다.

하지만 여기서 모델을 만들었다고 분석이 끝나는 것은 아닙니다.

오히려 금융 시계열에서는 모델을 만든 이후의 검증 과정이 더 중요합니다.

예측 성능을 평가할 때는 MAE, RMSE와 같은 오차 지표를 사용할 수 있습니다.

예를 들어 실제 변동성과 예측 변동성 사이의 오차를 비교해 모델이 어느 정도 차이를 보이는지 측정하는 방식입니다.

더 중요한 것은 단순한 기준 모델과 비교하는 것입니다.

딥러닝 모델의 오차가 작다는 사실만으로 좋은 모델이라고 판단하기는 어렵습니다.

예를 들어 다음 날의 변동성이 오늘과 동일하다고 가정하는 단순 모델이나 최근 평균 변동성을 사용하는 모델과 비교해야 합니다.

필요하다면 GARCH와 같은 전통적인 변동성 모델도 비교 대상이 될 수 있습니다.

복잡한 LSTM 모델이 단순 모델보다 나은 결과를 보여주지 못한다면 굳이 딥러닝을 사용해야 할 이유가 줄어듭니다.

딥러닝으로 미국채 금리를 정확하게 예측할 수 있을까

여기서 가장 중요한 질문이 남습니다.

딥러닝 모델을 사용하면 미국채 10년물 금리 변동성을 정확하게 예측할 수 있을까요?

현실적으로 금융시장의 미래를 지속적으로 정확하게 예측하는 것은 매우 어려운 문제입니다.

국채 금리는 과거 가격 패턴만으로 움직이지 않기 때문입니다.

물가 발표, 고용지표, 중앙은행의 통화정책, 예상하지 못한 경제 이벤트, 국채 수급 변화, 투자자의 위험선호 등 다양한 정보가 시장에 새롭게 반영됩니다.

이러한 정보 가운데 상당수는 과거 데이터만 학습한 모델이 사전에 알 수 없습니다.

또 금융시장의 관계는 시간이 지나면서 변할 수 있습니다.

과거에는 효과적이었던 변수 조합이 다른 경제환경에서는 같은 방식으로 작동하지 않을 수도 있습니다.

그래서 금융 딥러닝에서 중요한 것은 높은 예측 숫자 하나를 얻는 것이 아니라 다음과 같은 질문을 반복해서 확인하는 것입니다.

  1. 어떤 데이터를 이용했는가?
  2. 미래 정보가 학습 데이터에 섞이지 않았는가?
  3. 학습 기간과 테스트 기간을 시간 순서대로 분리했는가?
  4. 단순한 기준 모델보다 실제로 성능이 나은가?
  5. 특정 기간에서만 우연히 좋은 결과가 나온 것은 아닌가?
  6. 시장 환경이 달라져도 비슷한 결과가 나타나는가?

미국채 10년물 금리 데이터를 이용한 딥러닝 분석도 이런 관점에서 접근하는 것이 좋습니다.

처음에는 DGS10 하나로 간단한 모델을 만든 뒤 2년물 금리, 장단기 금리차, 금리 변화량, 이동평균, 변동성 지표 등을 하나씩 추가하면서 성능 변화를 비교해 볼 수 있습니다.

그리고 LSTM뿐만 아니라 단순 회귀모델, Random Forest, XGBoost, GARCH와 같은 모델과 결과를 비교하면 훨씬 의미 있는 실험이 됩니다.

결국 중요한 것은 “딥러닝이 미국채 금리를 맞혔다”는 결론이 아닙니다.

어떤 데이터를 어떤 방식으로 가공했고, 어떤 조건에서 어느 정도의 예측력이 나타났으며, 그 결과가 단순 모델보다 의미 있는 개선이었는지를 검증하는 과정이 핵심입니다.

미국채 10년물 금리는 장기간 데이터가 공개되어 있어 금융 시계열 분석을 공부하기 좋은 소재입니다. FRED의 DGS10과 미국 재무부의 일별 금리 자료처럼 공식 데이터 출처도 비교적 명확하다는 장점이 있습니다.

다음 단계에서는 실제 FRED 데이터를 파이썬으로 불러온 뒤 전처리하고, 학습용 시계열 데이터를 생성해 LSTM 모델을 학습시키는 전 과정을 직접 구현해볼 수 있습니다.

이 글은 금융 데이터 분석과 머신러닝 학습을 위한 정보 제공을 목적으로 하며 특정 채권이나 금융상품의 투자수익을 예측하거나 투자를 권유하기 위한 내용은 아닙니다.

금알남

금알남
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.