워크포워드 검증의 확장형 윈도와 롤링 윈도 비교
금융 모델의 확장형·고정 길이 롤링 학습 윈도를 비교하고, 검증 구간과 최종 테스트 구간을 분리해 미래 결과를 사용하지 않고 윈도 규칙을 선택하는 방법을 알아봅니다.
이 글에서 다루는 내용워크포워드 폴드에는 서로 다른 학습·평가 구간이 있습니다
짧은 요약
확장형 학습 윈도는 처음 정한 과거 시작점부터 새로 관측된 자료까지 계속 보탭니다. 롤링 윈도는 가장 최근에 이용할 수 있는 관측치 가운데 고정된 개수만 남기고, 오래된 행은 범위 밖으로 밀려나면 제외합니다. 둘 다 시간순 워크포워드 평가에 쓸 수 있지만, 어느 방식을 택해도 모델 선택용 검증 기간과 최종 테스트 기간을 분리해야 합니다.
워크포워드 폴드에는 서로 다른 학습·평가 구간이 있습니다
예측 원점에서는 과거 피처와 결과 일부를 알고 있습니다. 그 정보로 모델을 학습하거나 갱신한 다음, 뒤에 오는 관측 블록에서 평가합니다. 예측 원점을 앞으로 옮기면 여러 시점의 표본 외 기간이 만들어집니다. 학습 윈도 규칙은 특정 재학습 시점에 과거 중 어떤 행을 사용할지 정합니다. 검증·테스트 규칙은 나중에 알려질 어느 결과로 후보를 비교하고 성능을 평가할지 정합니다. 서로 관련은 있지만 같은 윈도가 아닙니다.
확장형 규칙은 과거의 고정된 시작점을 유지하면서 새 결과를 이용할 수 있을 때마다 커집니다. 롤링 규칙은 학습 자료의 시작점과 끝점을 모두 앞으로 옮기되, 초기 준비 구간이 지난 뒤에도 관측치 개수를 일정하게 둡니다. 어느 쪽에서도 예측 원점에 아직 확정되지 않은 목표값을 학습에 쓰면 안 됩니다. 레이블이 여러 거래일에 걸친다면 행의 날짜만으로 결과가 언제 알려졌는지 판단하기 어려울 수 있으므로 레이블 종료 시각을 기록하고 이를 기준으로 걸러야 합니다.
모델의 피처 계산에 쓰는 후행 구간과 모델을 학습하는 윈도도 구별해야 합니다. 각 행의 변동성을 계산할 때 직전 구간을 사용할 수 있지만, 적합할 모델은 여러 해의 행을 사용할 수 있습니다. 피처의 후행 구간을 바꾸면 입력변수를 계산하는 방식이 달라집니다. 학습 윈도를 바꾸면 모델 추정에 넣는 관측치가 달라집니다. 이 둘을 혼동하면 확장형과 롤링형의 비교가 무엇을 시험했는지 설명하기 어렵습니다.
확장형 윈도는 처음의 과거 자료를 유지합니다
첫 학습 가능 관측치의 인덱스를 \(s\), 재학습 시점까지 결과 레이블이 확정된 최신 관측치의 인덱스를 \(t\)라고 하겠습니다. 확장형 학습 집합은 \(\{s, s+1, \ldots, t\}\)입니다. 다음 예측 원점에서는 기존 집합을 유지하고 새로 학습 가능한 행을 더합니다. 따라서 자료를 따로 필터링하거나 제거하는 규칙이 없다면 학습 표본 수는 시간이 갈수록 늘어납니다.
과거 자료가 지금도 모델링하려는 관계를 설명한다면, 더 많은 관측치가 추정된 모수의 표본 오차를 줄이는 데 도움을 줄 수 있습니다. 짧은 최근 표본에서 빠질 수 있는 드문 시장 상황을 보존할 수도 있고, 어느 과거 시점에서 자료를 잘라낼지 임의로 고르지 않아도 됩니다. 행이 많을수록 유리한 적합 절차를 쓰거나 안정적인 장기 관계를 나타내려는 모델이라면 운영 측면에서 편리할 수도 있습니다.
대신 오래된 관측치는 오래되었다는 이유만으로 영향력이 줄지 않습니다. 피처와 수익률의 관계가 달라졌다면 초기 자료가 현재 시장과 덜 닮은 조건 쪽으로 추정치를 끌어당길 수 있습니다. 학습 집합이 커지면 반복 재적합도 느려질 수 있습니다. 과거를 계속 보존하는 것이 자동으로 대표성을 높여주지는 않습니다. 이전 관측치가 지금 묻는 질문에도 관련이 있을 때 그 자료가 유용합니다.
롤링 윈도는 정한 범위 밖의 관측치를 제외합니다
고정 길이를 \(W\)라고 하면, 원점 \(t\)에서 롤링 학습 집합은 레이블 지연이나 경계 간격을 반영한 뒤 \(\{t-W+1, \ldots, t\}\)가 됩니다. 다음 원점에서는 끝점이 앞으로 움직이고 가장 오래된 행이 집합에서 빠집니다. 윈도 길이는 관측치 개수나 달력 시간처럼 정당한 단위로 표현할 수 있지만 자료의 시간 간격이 불규칙하면 두 기준은 서로 바꿔 쓸 수 없습니다.
롤링 윈도는 추정에 최근 자료를 쓰는 규칙을 줍니다. 선택한 기간 안의 자료만 남고 그보다 오래된 행은 직접적인 학습 입력에서 제외됩니다. 조건 변화에 대응하는 연구 질문이나 재학습 규모를 일정하게 유지해야 하는 운영 상황에 적합할 수 있습니다. 그러나 최근 표본만 쓴다고 모델이 자동으로 상황 변화에 적응하는 것은 아닙니다. 재학습 간격이 길거나 피처가 뒤늦게 바뀌거나 기초 관계가 서서히 변한다면 새 표본만으로도 대응이 늦을 수 있습니다.
그 대가로 추정에 쓸 정보가 줄어듭니다. 윈도가 짧으면 회귀계수나 피처 순위가 불안정해지고, 드물지만 중요한 스트레스 구간이 빠지거나 복잡한 모델에 필요한 표본이 부족해질 수 있습니다. 길게 잡으면 더 다양한 과거가 남지만 최근 패턴이 희석될 수 있습니다. 최종 테스트 결과를 본 뒤 가장 좋았던 \(W\)를 고르면 윈도 규칙 선택 문제가 검증 단계에서 최종 테스트로 옮겨간 것뿐입니다. 해당 구간은 더 이상 독립적인 마지막 테스트가 아닙니다.
윈도 길이의 단위도 결과를 바꿉니다. 관측치 수로 고정하면 거래일 누락, 거래정지, 종목별 상장 기간, 봉의 빈도에 따라 같은 행 수가 서로 다른 달력 기간을 덮을 수 있습니다. 반대로 달력 기간을 고정하면 결측이나 거래일 차이로 실제 학습 행 수가 달라질 수 있습니다. 여러 자산을 한 표본에 쌓는 패널 데이터라면 윈도가 행을 자르는지 날짜별 자산 묶음을 자르는지도 정의해야 합니다. 과거를 더 많이 담았다는 말이 독립적인 정보를 같은 비율로 더 담았다는 뜻은 아닙니다. 인접 수익률의 의존성과 겹치는 목표 기간은 유효 표본 규모를 줄일 수 있습니다.
두 규칙은 재학습 시점마다 쓰는 과거가 다릅니다
| 선택 | 재학습 때 쓰는 학습 행 | 기대할 수 있는 이점 | 살펴볼 주요 비용 |
|---|---|---|---|
| 확장형 | 고정된 시작점부터 원점까지 학습 가능한 모든 행 | 표본이 늘고 오래된 국면도 보존 | 과거 국면의 영향이 이어지고 재적합이 느려질 수 있음 |
| 롤링형 | 학습 가능한 관측치 중 최근의 고정 구간 | 최근성을 명시하고 표본 규모를 제한 | 자료가 줄며 선택한 기간에 결과가 민감해질 수 있음 |
비교가 윈도 정책만을 분리해 보려면 다른 조건을 고정해야 합니다. 정보 이용 마감 시각, 피처, 모델 종류, 학습 목적함수, 재학습 날짜, 예측 기간, 테스트 블록, 체결 가정을 같게 둡니다. 롤링 모델만 더 자주 재학습하거나 다른 피처를 사용하고 정규화 방식까지 바꾼다면 점수 차이가 학습 윈도 때문이라고 할 수 없습니다.
이 두 방법은 예측 원점을 정하는 규칙과도 다릅니다. 과거 자료로 학습하고 나중 블록을 예측한 뒤 원점을 앞으로 옮기는 롤링 원점 평가에, 확장형·롤링형 학습 윈도를 각각 적용할 수 있습니다. Leonard Tashman의 표본 외 예측 평가 논문00065-0)은 롤링 원점과 롤링 추정 윈도를 모두 연구 설계의 선택으로 다룹니다. 둘 다 시간축을 따라 움직이므로 이름이 비슷하지만, 하나는 평가가 언제 반복되는지를 말하고 다른 하나는 어떤 학습 표본을 계속 보존하는지를 말합니다.
가상의 일정으로 각 재학습에 들어가는 자료를 봅니다
아래의 날짜와 개수는 전부 가상의 예입니다. 모델을 매월 재학습하고 다음 달 수익률을 목표값으로 쓰며, 첫 적합에는 120개월까지 결과가 확정된 학습 가능 관측치 60개를 사용한다고 가정합니다. 목표 레이블은 결과 구간이 끝난 뒤에만 쓸 수 있습니다. 첫 예측 원점에서 확장형은 최초의 60개 행을 사용합니다. 롤링 길이를 60개로 정하면 두 절차의 최초 학습자료는 같습니다.
새 월간 결과 한 건이 알려진 다음 재학습에서는 확장형에 학습 가능 행이 61개 있습니다. 롤링형은 새 행을 추가하는 동시에 가장 오래된 행 하나를 빼므로 계속 60개를 사용합니다. 이런 갱신을 12번 하면 확장형에는 최초 시작점부터 72개 행이 남고 롤링형에는 최근 60개만 남습니다. 둘 다 해당 재학습 시점에 이용 가능했던 과거를 사용했지만 학습 이력이 달라졌으므로 추정된 모수도 달라질 수 있습니다.
이 가상의 설계에서 마지막 24개월을 바깥쪽 최종 테스트 기간으로 남긴다고 하겠습니다. 학습 윈도 방식과 길이, 피처 정의, 다른 모델 설정은 앞선 시간순 검증 구간에서 골라야 합니다. 최종 테스트에서는 선택을 고정하고 사전에 정한 재학습 일정으로 평가합니다. 테스트 결과를 확인할 때마다 윈도 길이를 바꾸면 최종 기간의 정보를 선택에 사용하게 되어 독립 테스트가 알려주는 것보다 성능 근거를 강하게 보이게 합니다.
시간순 검증 안에서 윈도 규칙을 선택합니다
비교하기 전에 연구 질문을 적습니다. 재학습할 때마다 이용 가능한 전체 과거를 쓸 것인지, 오래된 예시가 학습에서 빠지게 할 별도 이유가 있는지 묻습니다. 목표 관계가 안정적이라고 보는지, 관련 입력이 달라질 수 있는지도 생각합니다. 이 질문은 후보를 정하는 데 도움을 주지만 특정 시장에서 어느 방법이 더 잘 작동할지를 미리 입증하지는 않습니다.
앞쪽 개발 자료만으로 후보를 비교합니다. 예를 들면 확장형과 근거를 둔 몇 가지 롤링 길이를 미리 정해 같은 시간순 검증 블록과 같은 재학습 간격으로 평가합니다. 점수를 보기 전에 목적함수도 정합니다. 예측 손실, 확률 보정, 회전율을 반영한 포트폴리오 효용, 최대 낙폭은 서로 다른 질문에 답합니다. 포트폴리오 결과를 비교한다면 현실적인 비용과 제약을 포함하고 후보들 사이에서 가정은 동일하게 둡니다. 적합에 실패하거나 예측을 내지 못한 폴드도 기록해야 합니다. 까다로운 폴드를 조용히 빼면 어느 윈도가 다른 것보다 더 쉽게 운영되는 것처럼 보일 수 있습니다. 목표나 테스트 블록이 겹치는 경우에는 인접 점수가 같은 수익 구간을 공유할 수 있습니다. 이 의존성을 밝혀야 각 행을 별개의 실험으로 세는 오류를 피할 수 있습니다.
나중의 시간순 구간은 마지막 확인을 위해 열지 않은 채로 둡니다. 중첩 설계에서는 안쪽 검증이 각 바깥 테스트 블록보다 앞서 이용 가능했던 자료만으로 윈도와 다른 설정을 고릅니다. 바깥 결과는 선택 절차 전체를 평가합니다. 튜닝할 때 계속 확인한 단일 홀드아웃은 이미 미사용 테스트가 아닙니다. Purged 교차검증 안내는 레이블 구간의 겹침을 다루고, 금융 모델의 과최적화와 다중검정은 관련된 선택 위험을 설명합니다.
레이블, 전처리와 재학습 시점을 당시 기준으로 맞춥니다
각 예측 원점에서 그때 알 수 있었던 피처와 목표 레이블만 사용합니다. 여러 거래일 동안 계산되는 선행 수익률에서는 행의 의사결정 시각이 검증 경계보다 앞이어도 결과가 아직 확정되지 않았을 수 있습니다. 필요하다면 실제 레이블 구간에 따라 간격을 두거나 표본을 제거합니다. 고정 행 수는 관측 간격과 결과 기간이 그 근사를 정당화할 때에만 쓸 수 있습니다. 어떤 학습 윈도도 미래 정보가 들어간 피처를 고쳐 주지 않습니다.
결측값 대치, 스케일 조정, 피처 선택 등 학습이 필요한 전처리는 각 폴드의 학습 기간만 사용해 맞춥니다. 신호 임곗값이나 하이퍼파라미터를 골라야 한다면 학습 기간 안쪽에서 시간순으로 다시 나눈 검증 구간을 사용하고, 후행 평가 블록의 점수를 계산할 때는 그 선택을 고정합니다. 안쪽 검증 절차를 미리 정하고 마지막 테스트 원점에서도 같은 선택 규칙을 적용합니다.
공식 scikit-learn TimeSeriesSplit 문서는 기본적으로 학습 집합을 확장하며 max_train_size로 학습 집합의 최대 크기를 제한할 수 있다고 설명합니다. 이 API의 gap은 표본 개수이고, 폴드마다 같은 기간을 비교하려면 관측 간격이 같아야 합니다. 이런 구현 내용은 점검에 유용하지만 시간표시가 있는 금융 레이블을 맞추거나 연구에서 사용한 라이브러리 버전과 동작을 확인하는 일을 대신하지 않습니다.
예측 원점별 성과와 평가 한계를 함께 보고합니다
윈도 규칙과 정확한 길이, 가장 오래된 잔존 날짜, 재학습마다 학습 가능한 행의 수, 레이블 이용 시점 규약, 검증·최종 테스트 날짜, 예측 기간, 재학습 일정을 보고합니다. 집계값과 함께 테스트 블록별 결과도 보여줍니다. 평균만 보면 특정 시장 국면 하나가 비교를 좌우했는지 가릴 수 있고, 인접한 예측은 목표 구간을 공유해 독립적인 근거가 아닐 수 있습니다.
트레이딩 모델의 예측 정확도가 순수익과 같은 것은 아닙니다. 포지션 구성, 레버리지, 회전율, 유동성, 수수료, 스프레드, 시장 충격, 공매도 대차 비용, 펀딩비, 체결 시점이 실제 결과에 영향을 줍니다. 윈도 방식을 비교할 때 이 가정을 고정하고, 평가에서 제외한 항목을 밝혀야 합니다. Cerqueira, Torgo, Mozetič의 시계열 예측 성능 추정 연구는 정상성과 비정상성 조건에서 성능 추정 절차의 결과가 달라질 수 있음을 보입니다. 이는 여러 타당한 설계를 점검하라는 근거이지, 롤링형이나 확장형 중 하나가 언제나 이긴다는 규칙은 아닙니다.
마지막으로 백테스트는 명시된 과거와 절차에 관한 근거로 해석합니다. 확장형은 더 이상 유사하지 않은 국면을 계속 반영할 수 있고, 롤링형은 유용한 자료를 버려 추정치를 불안정하게 만들 수 있습니다. 선택한 방식은 다른 시장 국면, 종목 구성, 거래 비용에서 실패할 수 있습니다. 검증은 시험한 절차에 관한 불확실성을 줄이는 데 도움을 주지만, 미래 수익을 약속하거나 어느 윈도가 최적이라고 증명하지는 않습니다.
자주 묻는 질문
Q1더 많은 데이터를 쓰는 확장형 윈도가 항상 더 나은가요?
아닙니다. 오래된 관측치가 계속 관련 있다면 표본이 많을수록 추정이 안정될 수 있지만, 낡은 시장 국면이 모델에 계속 영향을 줄 수도 있습니다. 어느 쪽이 유리한지는 자료, 목표, 피처, 추정 방법, 평가 기간에 달려 있습니다.
Q2롤링 윈도는 시장 국면 변화를 자동으로 반영하나요?
아닙니다. 선택한 구간 밖의 행을 제외할 뿐, 시장 변화를 탐지하거나 다음 국면을 새 표본이 대표한다고 보장하지 않습니다. 재학습 빈도, 윈도 길이, 모델 설계가 여전히 중요합니다.
Q3윈도 조정과 최종 성과 보고에 같은 기간을 써도 되나요?
그 기간은 모델 선택에 사용된 셈입니다. 시간순 검증으로 규칙을 정한 뒤 선택 절차를 고정해 더 나중의 미사용 테스트 기간을 평가해야 합니다. 그 결과도 시험한 과거와 가정에 관한 근거일 뿐입니다.
출처와 더 읽을 자료
내용 정정 제보
이 아티클 링크를 담은 이메일 초안을 준비합니다. 직접 보내야 Mark에 제보가 접수됩니다
QUICK CHECK
글을 다 읽었다면, 3문항으로 확인해보세요
Question 01
고정 길이 롤링 학습 윈도에서 다음 재학습 때 무엇이 바뀌나요?
정답을 고르면 바로 설명을 볼 수 있어요