겹치는 윈도우가 백테스트에서 통계적 유의성을 만들어냅니다
요약
본 글은 시계열 데이터 분석에서 흔히 발생하는 통계적 유의성 오류(false positive)를 경고합니다. 특히 워크 포워드 테스트 등에서 겹치는 관측치를 독립적인 데이터로 오인하여 결과를 과대평가하는 위험성을 지적합니다. 겹치지 않는 고유한 시장 에피소드로 재분석했을 때, 통계적 유의성이 크게 감소함을 보여줍니다.
핵심 포인트
- 시계열 분석에서 겹치는 관측치를 독립 데이터로 간주하면 결과가 과대평가될 수 있습니다.
- 통계적 유의성(s.e.)은 표본 크기(n)에 비례하여 계산되므로, n을 부풀리면 오차 막대가 인위적으로 줄어듭니다.
- 겹치지 않는 고유한 에피소드로 재분석할 경우, 통계적 우위가 증가하더라도 유의성은 감소하는 경향이 있습니다.
시계열 작업에서 거짓 양성(false positive)을 발표하는 가장 쉬운 방법이며, 제 자신의 프로젝트 예시를 통해 설명합니다.
발표할 만했던 결과
워크 포워드 테스트(walk-forward test), 913개의 인과적 앵커(causal anchors), 30분 예측 기간에서의 방향 정확도.
주목해야 할 벤치마크 노트: 이기어야 할 것은 50%가 아니라 **다수 클래스(majority class)**입니다. 만약 움직임의 51%가 상승이었다면, '항상 상승으로 추측'하는 것이 51%를 기록합니다. 50%와 비교하는 것은 약간의 방향성 편향이 신호로 오인되는 방식입니다.
결과: 다수 클래스 51.1% 대비 55.2%. n=912에서 +4.1 퍼센트포인트(pp), 약 2.4 표준 오차(standard errors, s.e.).
실제로는 아니었던 이유
앵커 간격은 약 7분 간격이었습니다. 예측 기간은 30분이었습니다.
10:00에 시작하여 10:30까지를 다루는 예측과, 10:07에 시작하여 10:37까지를 다루는 예측은 그 결과의 30분 중 23분을 공유합니다. 이것들은 독립적인 관측치가 아닙니다. n=912는 반복적으로 계산된 훨씬 적은 수의 고유한 시장 에피소드였습니다.
표준 오차(Standard error)는 n의 제곱근에 비례하여 커집니다. n을 인위적으로 부풀리면 오차 막대도 인위적으로 줄어듭니다.
겹치지 않는 앵커로 재점수화
겹치는 경우: n=912, 다수 클래스 51.1%, 모델 55.2%, 우위 +4.1 pp, 2.4 s.e.
겹치지 않는 경우: n=163, 다수 클래스 54.0%, 모델 59.5%, 우위 +5.5 pp, 1.4 s.e.
우위가 증가했습니다. 유의성은 거의 절반으로 줄었습니다. 이 부풀림 계수는 약 2.4배였으며, 이는 $ ext{sqrt}(912/163)$입니다.
함정은 효과 크기가 커진다는 것입니다. 만약 결과가 0으로 수렴했다면 그 결과는 명백히 죽었다고 판단했을 것입니다. 대신 개선되므로
[IMG:N]
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기