전략 백테스트의 White Reality Check와 데이터 스누핑
White Reality Check가 전략 검색에서 선택된 최고 성과를 기준전략과 비교하고, 의존성을 보존하는 부트스트랩 최대 통계량으로 데이터 스누핑을 조정하는 방법을 설명합니다
이 글에서 다루는 내용검정은 검색에서 이긴 전략이 정한 기준을 넘는지 묻습니다
짧은 요약
White Reality Check는 정해 둔 탐색 후보군에서 가장 좋은 성과를 낸 전략이 기준전략을 넘는지, 그 전략이 검색의 최대값으로 선택됐다는 사실까지 반영해 검정합니다. 후보별 기준 대비 성과 차이의 시간 의존성을 보존하며 전체 최대값의 부트스트랩 귀무분포를 만듭니다. 보정된 p-value가 작으면 그 후보군과 기준에 대해 우월한 전략이 없다는 공동 귀무가설에 반하는 증거이지, 실전 수익을 예측한다는 뜻은 아닙니다.
검정은 검색에서 이긴 전략이 정한 기준을 넘는지 묻습니다
연구자가 이동평균 기간, 돌파 규칙, 보유 기간, 시장과 필터를 수십 가지씩 바꿔 백테스트한 뒤 가장 높은 점수의 전략을 보고할 수 있습니다. 이 승자는 자료를 보기 전에 단독으로 지정한 후보가 아닙니다. 여러 시도를 거쳐 가장 좋아 보이도록 선택됐습니다. 이런 선택을 무시하고 마지막 전략 하나만 사전에 정해 둔 것처럼 검정하면, 탐색으로 생긴 이점을 기준분포에 반영하지 못합니다.
White의 Reality Check는 바로 그 선택 절차를 검정 안에 넣습니다. 이미 살펴본 후보 중 적어도 하나가 정한 기준전략보다 기대 성과가 나은지 묻습니다. 원 논문은 모든 후보의 기준 대비 기대 성과가 0 이하라는 일방향 가설들을 결합한 공동 귀무가설로 씁니다. 대립가설은 후보 중 하나 이상이 양의 기대 우위를 가진다는 것입니다. 기준은 매수 후 보유, 단순 예측 규칙 또는 다른 비교전략일 수 있지만, 질문과 맞아야 하며 결과를 보기 전에 정의해야 합니다. 형식적 설정은 White의 원 논문을 참고할 수 있습니다.
이는 후보군 전체에 관한 질문이지 우연히 우승한 전략 하나에 대한 보증이 아닙니다. 귀무가설을 기각해도 정의한 통계량과 가정 아래 후보군에 우월한 성과가 있다는 증거일 뿐입니다. 모든 후보가 유용하다거나, 선택된 전략이 계속 1위를 유지한다거나, 다음 시장 국면에도 우위가 지속된다는 결론은 따라오지 않습니다.
후보마다 비교 가능한 성과 차이를 만듭니다
d[k,t]를 시점 t에서 후보 k의 성과에서 기준전략 성과를 뺀 값이라고 하겠습니다. 값이 클수록 후보에 유리하도록 부호를 정합니다. 수익률을 비교한다면 후보의 비용 차감 수익률에서 기준전략의 비용 차감 수익률을 뺄 수 있습니다. 예측 손실을 비교할 때는 기준 손실에서 후보 손실을 빼면 양수 값이 후보의 낮은 손실을 나타냅니다. 어떤 경우든 양수의 뜻은 분석 내내 같아야 합니다.
모든 후보의 각 행은 같은 기간을 나타내야 합니다. 통화, 수익률 산식, 금융비용 처리, 성과 지표, 거래비용 기준도 일치시킵니다. 실행 가능한 전략의 수익을 주장한다면 관련 수수료, 스프레드, 슬리피지, 펀딩비와 대차비용을 d[k,t]를 만들기 전에 차감합니다. 총수익으로 검정한 뒤 각주에서 비용을 언급하면 다른 질문에 답한 것입니다.
후보 k의 표본평균은 d̄[k] = (1/T) Σ_t d[k,t]입니다. 공동 귀무가설은 H0: max_k E[d[k,t]] ≤ 0, 대립가설은 H1: max_k E[d[k,t]] > 0입니다. 기준전략은 후보군 전체에 공통이고, 모든 후보는 같은 표본과 기준으로 평가합니다. 관측 기간이나 결측일이 후보별로 다르면 유리한 날만 몰래 남기지 말고, 차이를 계산하기 전에 방어 가능한 공통 비교 구간을 정해야 합니다.
실제로 살펴본 후보군을 연구주장에 포함합니다
검정 후보군은 보고된 승자를 고르는 데 실제 영향을 준 규칙들의 집합입니다. 시험한 룩백, 진입 문턱, 신호 조합, 자산군, 보유 기간, 포트폴리오 제약과 체결 가정이 들어갈 수 있습니다. 결과를 확인한 뒤 버린 수동 변경도 최종 전략을 선택하는 데 쓰였다면 검색의 일부입니다. White의 2000년 논문에서 specification search는 최종 표에 남은 행보다 폭넓은 선택 과정을 뜻합니다.
후보를 빠뜨리는 것과 무관한 후보를 덧붙이는 것 모두 문제가 될 수 있습니다. 전략 선택에 영향을 준 시행을 빼면 부트스트랩이 실제보다 좁은 검색만 보게 되어 조정이 낙관적일 수 있습니다. 반대로 결과를 본 다음 관련 없는 규칙을 다수 추가하면 검정이 지나치게 보수적이 되어 유용한 후보를 발견할 힘이 떨어질 수 있습니다. 실제 선택 과정으로 후보군을 정의하고, 경계를 다시 확인할 수 있도록 연구 기록을 보존해야 합니다.
기록되지 않은 실험은 검정이 알아서 추론하지 못합니다. 우승한 파라미터만 적힌 노트로는 어떤 탐색을 거쳤는지 재구성할 수 없습니다. 후보 명부, 데이터 버전, 평가 기간, 최적화 기준, 비용 가정, 선택 이력을 함께 보관하세요. 결과를 본 뒤 후보군을 바꿨다면 변경 내용과 이유를 공개해야 합니다. 사후에 만든 후보군을 처음부터 고정해 둔 것처럼 보고해서는 안 됩니다.
최댓값 통계량이 선택 과정을 귀무분포에 반영합니다
각 후보의 평균 상대 성과를 구하고 그중 가장 큰 값을 택합니다. 흔히 쓰는 비학생화 통계량은 V_obs = √T × max_k d̄[k]입니다. 이 최대값은 “가장 좋은 것을 고른다”는 연구 절차를 나타냅니다. 가장 좋아 보이는 한 열만 따로 검정하면, 그 열을 뽑은 선택 단계가 비교 기준에서 사라집니다.
부트스트랩은 후보의 기대 성과가 모두 기준 이하라는 공동 귀무가설 아래에서 표본 변동만으로 얼마나 큰 최대값이 나올 수 있는지를 근사합니다. 부트스트랩 반복 b마다 후보 전체의 시점별 차이 벡터를 재표본하고, V*_b = √T × max_k(d̄*[k,b] − d̄[k])처럼 표본평균을 뺀 중심화 통계량을 계산할 수 있습니다. 모든 후보의 평균을 0인 귀무경계에 두어 표본 변동을 모사하면서, 후보들 사이의 최대값을 다시 계산합니다. White의 논문은 최대 통계량의 부트스트랩 분포를 만들어 관측 최대값과 비교하는 접근을 제시합니다.
이 과정을 충분히 많이 반복합니다. 보정 p-value는 부트스트랩 최대값 중 V_obs 이상인 값의 비율입니다. 반복 수를 B라고 할 때 Monte Carlo 오차를 고려한 흔한 추정식은 (1 + #{V*_b ≥ V_obs})/(B + 1)입니다. 모형을 추정하는 방식이나 표준화 적용 여부에 따라 구현은 다를 수 있으므로 통계량과 귀무가설 아래 중심화 규칙을 보고해야 합니다. 핵심은 관측 승자 하나가 아니라 매번 후보군 전체의 최대값을 다시 구하는 것입니다.
재표본에서 시간 의존성과 후보 간 동행을 보존합니다
금융 관측치는 시간 순서를 가집니다. 날짜를 서로 독립적으로 섞으면 시계열 자기상관, 변동성 군집, 손익이 이어지는 구간을 없앨 수 있습니다. 같은 시장 날짜에 함께 반응하는 두 전략의 관계도 흐트러질 수 있습니다. 이런 관계는 최대 통계량의 꼬리분포에 영향을 주므로 후보마다 따로 재표본하거나 날짜 하나씩 독립 추출하면 기준분포를 잘못 만들 수 있습니다.
White는 이동 블록 부트스트랩 같은 종속자료 재표본을 설명하고, Politis와 Romano의 stationary bootstrap을 분석합니다. 이 방식에서는 뽑은 블록이 보통 다음 시점으로 이어지다가 확률적으로 새 시작점에서 다시 출발합니다. 따라서 블록 길이는 기하분포를 따르고 정한 평균 길이를 가집니다. 무작위로 날짜를 하나씩 섞는 방식보다 짧은 시간 연속성을 더 잘 보존하지만, 그 타당성은 자료와 모수 선택 가정에 달려 있습니다. 원 방법은 Politis와 Romano의 stationary bootstrap 논문에서 확인할 수 있습니다.
전략 후보군에서는 공통 시점 인덱스 하나를 뽑아 전체 행 벡터 (d[1,t], …, d[K,t])에 적용합니다. 이렇게 하면 선택한 블록 안의 시간 순서와 같은 시점에 후보들이 함께 움직이는 관계를 둘 다 유지합니다. 블록 길이는 전략의 거래 간격과 의존성 진단을 보고 정하고, 합리적인 다른 길이에서도 결과가 얼마나 바뀌는지 확인합니다. 전략의 파라미터 재추정도 연구 절차에 포함된다면 부트스트랩 반복에서 그 단계까지 재현해야 하는지 정해야 합니다. 미리 고정한 적합 결과만 재표본하면 검정하려는 절차의 일부가 조건화되어 빠질 수 있습니다.
가상의 부트스트랩 예시로 해석을 바꿔 봅니다
연구자가 252거래일 동안 기준전략과 규칙 세 개를 비교했다고 가정합니다. 비용 차감 후 후보별 일평균 성과 차이가 각각 +2.0, +1.0, −0.5 베이시스포인트라면 승자의 평균은 2.0bp입니다. 관측 통계량은 √252 × 2.0 bp ≈ 31.75 bp·√거래일입니다. 이 제곱근 표본수 배율은 정의한 검정통계량의 일부입니다. 추정 표준오차로 나누지 않았으므로 t통계량은 아닙니다.
이제 후보 세 개에 동일한 날짜를 적용한 정상성 부트스트랩을 9,999회 시행했다고 합시다. 가상의 출력에서 반복 최대값 1,199개가 31.75 이상이라면, +1 보정 추정치는 (1 + 1,199)/(9,999 + 1) = 0.12입니다. 승자 하나만 따로 검정해 0.03이라는 p-value를 얻을 수도 있다고 가정해 봅시다. 하지만 그것은 세 후보 중 하나를 골랐다는 사실을 생략합니다. Reality Check는 후보군 전체의 비교를 쓰므로, 이 예시에서는 5% 수준에서 공동 귀무가설을 기각하지 못합니다.
이 숫자들은 계산을 보여주기 위한 가정이며 실제 시장 자료나 White 논문의 결과가 아닙니다. p-value 0.12는 전략이 손실을 볼 확률이 12%라는 뜻이 아닙니다. 정한 부트스트랩과 귀무가설 구성에서 이 정도 이상의 후보 최대값이 드물지 않으므로 선택한 수준에서 기각하지 못했다는 뜻입니다. 평균 상대 성과만으로는 위험, 용량, 체결 영향을 차감한 뒤 전략의 경제적 가치가 있는지도 알 수 없습니다.
조정 p-value는 정한 후보군에 대한 증거입니다
Reality Check의 작은 p-value는 포함된 후보군에서 기준보다 우월한 후보가 하나도 없다는 공동 귀무가설에 반하는 증거입니다. 그 결론은 선택한 기준, 성과지표, 자료와 부트스트랩 가정에 조건부입니다. 공동 귀무가설을 기각해도 지속 가능한 우위를 가진 후보가 누구인지 자동으로 식별하지 않습니다. 다음 표본에서는 순위가 달라질 수 있고, 한 후보에 대한 증거는 약할 수 있습니다.
큰 p-value는 기각 실패이지 후보 모두가 기준과 동등하다는 증명은 아닙니다. 자료가 짧거나 성과가 시끄럽거나 후보군이 넓거나 측정이 부정확하면 검정력이 낮을 수 있습니다. 마찬가지로 p-value는 귀무가설이 참일 확률도 아닙니다. 후보 집합, 성과 측정법, 기준, 부트스트랩 설계와 관측 자료에 따라 만들어진 기준분포에서 계산한 꼬리확률입니다.
이 검정은 상대 비교입니다. 약한 기준전략을 이긴 전략은 절대 수익이 음수일 수 있고, 강한 기준에 못 미친 전략은 양의 수익을 낼 수도 있습니다. 절대 성과와 기준 대비 성과를 함께 보고하며 불확실성, 회전율, 낙폭, 거래용량, 현실적인 비용을 나란히 평가해야 합니다. 기준에 대한 통계적 우월성 증거와 투자 가능한 경제성은 별도의 판단입니다.
가정과 한계를 확인한 뒤 결과를 믿습니다
원 논문의 이론은 성과 차이 과정과 그 극한분포에 대한 정칙조건을 둡니다. White의 설정에는 정상적이고 강혼합인 시계열이 포함되며, 종속 부트스트랩도 적절한 블록 길이 조건을 요구합니다. 실제 표본에서 시장 국면의 변화, 구조적 단절, 장기 의존성, 드문 점프와 불안정한 변동성은 정상성 재표본의 근사력을 떨어뜨릴 수 있습니다. 블록 부트스트랩은 일부 국소 의존성을 보존할 뿐 미래의 알 수 없는 국면을 재현하지 않습니다.
자료와 전략 평가의 오류도 그대로 이어받습니다. 미래정보 누출, 생존편향, 수정된 자료, 비현실적인 체결, 빠뜨린 비용, 기업행사 조정 오류, 결과를 본 뒤 선택한 기준은 성과 차이를 무효로 만들 수 있습니다. 보유기간이 겹치는 전략은 구조적으로 손익이 종속될 수 있으므로 그 의존성을 담을 재표본 단위와 블록 길이를 골라야 합니다. 샤프 비율처럼 비선형 지표가 최종 선택 기준이라면 매 반복에서 지표를 다시 계산해야 합니다. 평균수익률 부트스트랩이 자동으로 샤프 비율을 검정하는 것은 아닙니다.
후보가 많고 대부분이 성과가 나쁜 경우 Reality Check는 보수적일 수 있습니다. 이들까지 최대 통계량의 분포에 들어가면 좋은 후보가 하나 있어도 기각하기 어려워질 수 있습니다. Hansen의 Superior Predictive Ability 검정은 성과가 나쁜 후보를 다루는 방식이 다른 관련 부트스트랩 방법입니다. 보편적인 대체재는 아니며, 해당 가정도 검토해야 합니다. 선호하는 답을 내는 방법을 고르기보다 연구 질문에 맞춰 절차를 정하고 결과 민감도를 보고합니다.
시간순 검증과 다른 선택 도구를 함께 씁니다
White Reality Check가 다루는 것은 기록된 탐색 후보군에서 기준보다 우월한 후보가 있는지 선택 효과까지 포함해 검정하는 일입니다. 선택을 고정한 뒤 나중 자료에서 성과를 보는 시간순 홀드아웃이나 워크포워드를 대신하지 않습니다. 레이블 기간 중첩이나 미래정보 누출도 저절로 해결하지 않습니다. PBO는 조합 분할에서 표본 안 승자가 후보 중위값보다 낮은 순위에 놓이는 빈도를 요약합니다. 그 선택 위험 진단의 정의는 PBO 원 논문에 있습니다. 거짓발견 절차는 여러 기각 결과 중 거짓의 기대 비율을 다룹니다. Deflated Sharpe Ratio는 선택 편향과 비정규 수익률을 반영해 샤프 기반 유의성 평가를 조정하는 방법입니다(Bailey와 López de Prado의 논문). 이어서 금융 다중검정과 거짓발견율, PBO와 CSCV, 워크포워드 검증, Purged 교차검증과 엠바고를 읽어 보세요.
실무 검토에서는 기준과 성과 정의를 고정하고, 실제 선택에 쓰인 후보군을 재구성한 뒤, 시점별 짝지어진 성과 차이를 계산합니다. 이어서 시간 의존성에 맞는 재표본 방식을 선택하고 이유를 기록하며, 최대 통계량과 부트스트랩 꼬리확률을 함께 보고합니다. 다음에는 선택 절차를 미래 기간에서 평가하고 비용과 체결 가능성을 따로 살핍니다. Sullivan, Timmermann, White의 기술적 매매 규칙 연구는 전체 규칙 집합을 함께 검정해야 하는 이유를 보여줍니다. 보고된 승자 하나만 분석할 때와 실제 검색군 전체를 추론에 넣을 때 결론은 달라질 수 있습니다. Reality Check는 특정 선택 문제에 대한 유용한 보정이지, 백테스트가 실전에서 살아남는다는 인증서가 아닙니다.
자주 묻는 질문
Q1White Reality Check는 무엇을 검정하나요?
정의된 검색 후보군에서 고른 최고 후보가 기준전략보다 기대 성과가 우월한지, 후보 중에서 선택한 사실을 반영해 검정합니다.
Q2Reality Check p-value가 작으면 전략의 수익성이 증명되나요?
아닙니다. 선택한 기준과 지표, 자료, 부트스트랩 가정 아래 후보군 안에 우월한 전략이 없다는 가설에 반하는 증거입니다. 미래 수익이나 비용 차감 후 수익성을 보장하지 않습니다.
Q3왜 날짜를 독립적으로 재표본하지 않고 블록을 사용하나요?
블록은 시간상 국소 의존성을 일부 보존하고, 후보 모두에 공통 날짜를 적용하면 같은 시점의 후보 간 관계도 보존합니다. 블록 방식은 자료와 질문에 맞게 정해야 합니다.
출처와 더 읽을 자료
내용 정정 제보
이 아티클 링크를 담은 이메일 초안을 준비합니다. 직접 보내야 Mark에 제보가 접수됩니다
QUICK CHECK
글을 다 읽었다면, 3문항으로 확인해보세요
Question 01
White의 공동 귀무가설은 무엇을 뜻하나요?
정답을 고르면 바로 설명을 볼 수 있어요
옵션 용어 사전
콜·풋과 옵션 체인부터 IV, 그릭스, 미결제약정, 맥스 페인까지 핵심 옵션 용어를 정확하게 설명합니다
옵션 용어 사전 보기