[투자] 역사적 시뮬레이션과 부트스트래핑을 활용한 투자 시뮬레이션

 

📈 역사적 시뮬레이션과 부트스트래핑을 활용한 투자 시뮬레이션

전통적인 몬테카를로(Monte Carlo) 시뮬레이션은 정규분포를 기반으로 무작위 수익률을 생성하여 미래 자산의 수익률을 예측합니다. 하지만 이 방법은 시장의 현실적인 특성―예를 들어 fat tail, 비대칭성(skewness), 연속적인 하락장 등―을 충분히 반영하지 못할 수 있습니다. 이런 한계를 극복하기 위한 두 가지 대안으로 **역사적 시뮬레이션(Historical Simulation)**과 **부트스트래핑(Bootstrapping)**이 있습니다.


🔁 1. 역사적 시뮬레이션(Historical Simulation)이란?

과거 수익률 데이터를 그대로 사용하여 시뮬레이션을 수행하는 방식입니다. 이 접근법은 다음과 같은 장점을 가지고 있습니다:

✅ 장점

  • 시계열 특성 보존
    과거 수익률의 흐름이 그대로 반영되기 때문에, 예를 들어 “하락 후 상승” 같은 음의 자기상관성(negative autocorrelation)을 자연스럽게 모델링할 수 있습니다.

  • 정규분포 가정에서 벗어남
    실제 시장은 fat tail(극단적인 사건의 빈도 증가)과 왜도(skewness)를 보이는데, 역사적 시뮬레이션은 이러한 비정규분포 특성을 그대로 반영할 수 있습니다.

  • 시장 위기 시 자산 간 상관관계 증가 반영 가능
    위기 시기에는 자산 간 상관관계가 증가하는 경향이 있는데, 역사 데이터를 그대로 사용하면 이런 현상도 반영됩니다.

⚠️ 단점

  • 미래 변화 반영 불가
    과거에 없었던 새로운 유형의 위기나 구조적 변화는 시뮬레이션에 반영되지 않습니다.

  • 표본 제한
    예를 들어 지난 50년 간 대폭락이 연속으로 일어난 적이 없다면, 역사적 시뮬레이션은 연속된 하락장의 가능성을 0으로 간주해버리는 오류가 있습니다.


🔀 2. 부트스트래핑(Bootstrapping)이란?

과거 수익률 데이터에서 **복원 추출(random sampling with replacement)**을 통해 무작위 수익률 시퀀스를 생성하는 방법입니다. 흔히 몬테카를로 기법의 확장으로 간주됩니다.

✅ 장점

  • 비정규 분포 유지
    수익률의 왜도, 첨도 같은 특성이 유지됩니다.

  • 자산 간 상관관계 유지
    동일 시점의 수익률을 통째로 샘플링하기 때문에 자산 간 동시성도 보존됩니다.

  • 연속된 대폭락 가능성도 일부 반영 가능
    완전히 과거 흐름에 얽매이지 않으므로 역사에 없던 조합도 시뮬레이션에 나타날 수 있습니다.

⚠️ 단점

  • 시계열 구조 사라짐
    수익률의 순서를 무작위로 섞기 때문에, 음의 자기상관성이나 장기 추세는 사라집니다.


🧪 실제 예시: Python 코드로 구현

Python에서 이 두 방법은 매우 쉽게 구현 가능합니다.

▶️ 역사적 시뮬레이션

# 과거 연간 수익률을 그대로 사용 historical_returns = [0.1, -0.2, 0.05, 0.12, -0.08, 0.15] simulated = historical_returns # 시뮬레이션 샘플로 직접 사용

▶️ 부트스트래핑

import numpy as np historical_returns = [0.1, -0.2, 0.05, 0.12, -0.08, 0.15] bootstrap_sample = np.random.choice(historical_returns, size=1000, replace=True)

💡 어떤 방법을 선택해야 할까?

상황추천 방법
시장 위기 상황 반영이 중요할 때역사적 시뮬레이션
더 많은 시나리오를 빠르게 생성하고 싶을 때부트스트래핑
정규분포의 한계를 극복하고 싶을 때둘 다 사용 가능
시계열 구조까지 반영하고 싶을 때역사적 시뮬레이션 우위

🧭 마무리

투자 시뮬레이션을 정규분포 기반 Monte Carlo에만 의존하는 것은 현실 시장의 복잡성을 충분히 반영하지 못할 수 있습니다.
역사적 시뮬레이션과 부트스트래핑은 이러한 한계를 보완하고, 보다 정교한 리스크 모델링과 전략 테스트를 가능하게 해주는 도구입니다.
실제 투자 전략을 개발하거나 백테스트할 때, 이 두 가지 방법을 적절히 병행 활용해 보시기 바랍니다.

댓글

이 블로그의 인기 게시물

[PLC] PLC 아날로그 입출력 기본

[아두이노] 가변저항(Potential Divider)과 전압분배(Voltage Divider)

공압 속도 제어: 미터인 vs 미터아웃

제너 다이오드에 저항을 연결하는 이유

[주식] 한국거래소(KRX) 데이터 API 입문 가이드

[농사] 식물의 광합성과 호흡

NPN, PNP 트랜지스터 차이점

[PLC] 절연 변압기 (Isolation Transformer)

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

[수학] 정규분포 식은 어떻게 유도된 걸까?