인샘플과 아웃오브샘플 테스트를 나누어 검증하는 이유는 무엇이고 어떻게 기간을 분리하나요?
고급백테스트·검증최종 수정일
인샘플(in-sample)과 아웃오브샘플(out-of-sample)을 나누는 근본 이유는 전략이 과거 데이터의 '반복 가능한 패턴'을 잡은 것인지, 아니면 그 시기의 '우연한 잡음'을 외운 것인지를 구별하기 위해서입니다. 전략을 개발하고 파라미터를 최적화할 때는 필연적으로 사용한 데이터에 유리하게 규칙을 다듬게 되는데, 이때 성과가 좋아 보이는 것은 진짜 엣지가 아니라 그 표본에만 들어맞는 곡선 맞추기(과최적화, overfitting)일 가능성이 큽니다. 그래서 데이터를 시간순으로 잘라, 앞부분(인샘플)에서만 규칙을 만들고 파라미터를 고른 뒤, 개발 과정에서 한 번도 들여다보지 않은 뒷부분(아웃오브샘플)에서 '건드리지 않은 새 데이터'로 그 규칙을 그대로 검증하는 것입니다. 실제로 인샘플 지표(예: 샤프지수)가 아웃오브샘플 성과를 거의 예측하지 못한다는 대규모 분석 결과가 있을 만큼[2], 인샘플 성과만으로 전략을 판단하면 위험합니다.
기간 분리 방법은 ①단순 홀드아웃 분할과 ②워크포워드 방식으로 나눌 수 있습니다. 단순 분할은 전체 표본을 시간순으로 자른 뒤 뒤쪽 일정 비율을 아웃오브샘플로 떼어 두는 방식으로, 통상 전체의 20~30% 이상을 검증용으로 남겨 두라고 권합니다(예: 6년으로 최적화하고 이어지는 1년으로 검증)[1]. 핵심은 시계열의 시간 순서를 반드시 지키는 것입니다. 미래 데이터로 학습해 과거를 맞히면 미래참조(look-ahead) 편향이 생기므로, 항상 과거 구간에서 만들고 그보다 뒤의 구간에서 시험해야 합니다. 워크포워드 분석은 여기서 한발 더 나아가, 학습 구간을 일정 폭으로 잡아 최적화한 뒤 바로 다음 구간에서 검증하고, 창을 앞으로 한 칸씩 밀며 이 과정을 반복해 여러 국면의 아웃오브샘플 성과를 이어 붙입니다. 학습창을 고정 시점부터 계속 늘리는 앵커드 방식과 일정 길이를 유지하며 굴리는 롤링 방식이 있으며, 시장 국면 변화에 대한 적응력을 함께 볼 수 있다는 장점이 있습니다.
한계와 주의점도 분명합니다. 아웃오브샘플이라도 결과가 나쁠 때마다 규칙을 고쳐 다시 돌리면, 그 검증 구간을 사실상 인샘플로 오염시키는 셈이 되어 검증 의미가 사라집니다. 또 여러 파라미터 조합을 반복해 시도하다 보면 '아웃오브샘플에서 우연히 잘 나온 것'을 고르게 되는 다중검정 문제가 생기므로, 조합 정제 교차검증(CPCV)이나 디플레이티드 샤프지수처럼 시도 횟수를 반영해 성과를 깎아 보는 보정 기법을 병행하는 것이 좋습니다. 파라미터 수가 데이터 관측치에 비해 많으면 과최적화가 거의 확실해지므로 규칙은 단순하게 유지하고, 인샘플과 아웃오브샘플 성과 차이가 크게 벌어지면(예: 샤프지수가 급락) 전략을 신뢰하지 말아야 합니다. 결국 이 검증은 실패 확률을 낮추는 장치일 뿐 미래 수익을 보장하지 않으며, 최종 투자 판단과 책임은 투자자 본인에게 있습니다.
본 콘텐츠는 일반적 정보·교육 목적이며 특정 종목의 매수·매도 추천이 아닙니다. 세부 조건과 제도는 기관·시점에 따라 다를 수 있으므로 실제 거래 전 해당 기관의 안내를 확인하시기 바랍니다. 투자 판단과 책임은 투자자 본인에게 있습니다.
참고 자료
- Build Alpha, Out of Sample Testing / Walk Forward Optimization
- Bailey et al., Backtest overfitting in financial markets (davidhbailey.com)