[투자] 역사적 시뮬레이션과 부트스트래핑을 활용한 투자 시뮬레이션
📈 역사적 시뮬레이션과 부트스트래핑을 활용한 투자 시뮬레이션
전통적인 몬테카를로(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에서 이 두 방법은 매우 쉽게 구현 가능합니다.
▶️ 역사적 시뮬레이션
▶️ 부트스트래핑
💡 어떤 방법을 선택해야 할까?
상황 | 추천 방법 |
---|---|
시장 위기 상황 반영이 중요할 때 | 역사적 시뮬레이션 |
더 많은 시나리오를 빠르게 생성하고 싶을 때 | 부트스트래핑 |
정규분포의 한계를 극복하고 싶을 때 | 둘 다 사용 가능 |
시계열 구조까지 반영하고 싶을 때 | 역사적 시뮬레이션 우위 |
🧭 마무리
투자 시뮬레이션을 정규분포 기반 Monte Carlo에만 의존하는 것은 현실 시장의 복잡성을 충분히 반영하지 못할 수 있습니다.
역사적 시뮬레이션과 부트스트래핑은 이러한 한계를 보완하고, 보다 정교한 리스크 모델링과 전략 테스트를 가능하게 해주는 도구입니다.
실제 투자 전략을 개발하거나 백테스트할 때, 이 두 가지 방법을 적절히 병행 활용해 보시기 바랍니다.
댓글
댓글 쓰기