먼저 결론
- 백테스트(과거 데이터로 전략을 미리 돌려보는 것) 성적이 좋다고 전략이 좋은 것은 아닐 수 있습니다.
- 결과가 좋아 보이도록 가정을 고른 탓일 수 있고, 이것을 과적합(과거 데이터에만 딱 맞게 규칙을 다듬어서, 새 데이터에서는 안 맞는 것)이라고 부릅니다.
- 과적합은 시험 문제집의 답만 외운 것과 비슷해서, 새 시험지를 받으면 무너질 수 있습니다.
요약
- 백테스트에서 좋은 결과가 나왔다고 해봅시다.
- 전략이 좋아서가 아니라, 그 결과에 맞춰 가정을 골랐기 때문인 경우가 많습니다.
- 이 글은 대표적인 네 가지 과적합 경로를 점검합니다.
- 파라미터 튜닝, 시장 선택, 기간 선택, 자산 선택입니다.
- 과적합의 신호는 결과가 예쁘게 나오는 것이 아닙니다.
- 가정을 조금 바꿨을 때 결과가 크게 흔들리는지를 봅니다.
1. 네 가지 과적합 경로
(1) 파라미터 과적합
파라미터는 전략에서 내가 직접 정하는 숫자입니다. 예를 들어 "몇 개월치를 볼지" 같은 값입니다.
"12개월 모멘텀(최근에 많이 오른 쪽을 고르는 방식) + 1개월 무위험(원금 손실 위험이 거의 없는 자산)"을 돌려봅니다. 결과가 흡족하지 않으면 6개월, 9개월, 3개월로 바꿔 봅니다. 그리고 그중 가장 좋은 것을 고릅니다.
여기서 문제가 생깁니다. 표본 하나에 파라미터를 k개 시도했다고 해봅시다. 그러면 최고 성적은 운이 좋을 기회를 k번 얻은 것과 같습니다.
최적 파라미터 주변의 성적이 고르지 않고 뾰족하면 과적합 신호입니다.
(2) 시장 선택 과적합
"미국 주식에 적용하니 별로던데, 한국은?"이라고 생각합니다. 한국이 좋으면 한국을, 아니면 일본을 봅니다.
이렇게 전 세계 시장을 몇 개 돌리다 보면 하나는 좋게 나옵니다. 이것은 전략이 뛰어나서가 아닙니다. 시도를 여러 번 한 결과일 수 있습니다.
(3) 기간 선택 과적합
2000년대 데이터로 시작했다고 해봅시다. 그런데 "2008년을 포함하면 못 쓰겠다"며 시작점을 2009년으로 옮깁니다.
기간의 경계를 결과를 보고 정하는 순간, 그 결과는 이미 무효입니다.
(4) 자산 선택 과적합
글로벌 자산배분에서 쓸 자산 후보를 20개 놓았다고 해봅시다. 그중 성적이 좋았던 조합을 나중에 골라냅니다.
그 조합은 그 표본 안에서만 최적일 뿐입니다. 미래에 대한 우위는 없습니다.
2. 과적합 탐지 체크리스트
- 파라미터를 ±20% 바꿨을 때 결과가 급격히 바뀌는가 (예: 12개월 모멘텀은 +8%인데 10개월은 -2%)
- 전략 개발에 쓴 데이터 기간과 검증에 쓴 기간이 서로 분리되어 있는가
- 시장·자산 후보를 결과를 보고 줄였는가
- 시도한 파라미터·자산·기간 조합의 총 개수를 문서로 남겼는가
- 무작위 데이터(순서를 섞은 수익률)에 같은 절차를 적용해도 비슷한 성적이 나오는가
마지막 항목이 핵심입니다. 순서를 섞은 데이터는 원래 아무 규칙도 없는 데이터입니다. 그런 데이터에서도 그 절차가 좋은 전략을 찾아낸다면, 절차 자체가 과적합 기계입니다.
3. 방어법: 겹쳐 보기
이 사이트의 접근은 단순합니다.
- 같은 전략을 여러 표본 길이로 겹쳐 그립니다.
- 비용 가정을 바꿔 곡선이 얼마나 움직이는지 봅니다.
- 승자를 고르지 않습니다. 어떤 가정에서 결과가 유지되고 어떤 가정에서 무너지는지 기록할 뿐입니다.