Forecast Horizon — 예측 단위에 따른 전처리 차이
## 핵심 원리
모델은 "지금 보이는 X 패턴으로 Y를 예측할 수 있는가?"를 학습한다. 예측 대상(Y)이 달라지면 거기에 맞는 feature(X)도 달라지고, 데이터 집계 단위도 달라진다. 이 예측 대상까지의 시간 거리를 **Forecast Horizon**이라고 한다.
## 단위별 비교
| 항목 | 내일 예측 (단기) | 이번 달 예측 (중기) |
|------|----------------|------------------|
| 데이터 집계 단위 | 일별 | 월별 |
| 유효한 lag | lag_1, lag_7 | lag_1M, lag_3M |
| 유효한 시간 feature | 요일, 공휴일 | 월, 분기, 계절 |
| 무의미한 feature | lag_365 (신호 약함) | 요일 (월 단위에서 희석) |
## 원본 데이터는 하나
원본 거래 데이터에서 집계 단위만 다르게 만든다.
```
원본 거래 데이터
│
├─ 일별 집계 → 내일 예측 모델용 전처리
└─ 월별 집계 → 월 예측 모델용 전처리
```
EDA도 집계 단위별로 따로 수행한다. 일별로 보면 요일 패턴이 보이고, 월별로 보면 계절 패턴이 더 잘 드러난다.
## 왜 섞으면 안 되는가
일별 데이터에 월별 lag를 넣거나, 월별 데이터에 요일 feature를 넣으면 모델이 없는 신호를 찾으려고 한다. 예측 단위와 feature의 단위가 일치해야 한다.
## 모델 선택도 달라진다
전처리뿐 아니라 모델 선택도 forecast horizon에 따라 달라질 수 있다. 핵심 이유는 **데이터 포인트 수**가 극단적으로 달라지기 때문이다.
5년치 데이터 기준:
- 일별 집계 → 약 1,800행
- 월별 집계 → 약 60행
| | 일별 | 월별 |
|---|---|---|
| 데이터 행 수 | ~1,800 | ~60 |
| 모델 복잡도 | 복잡한 모델도 가능 | 단순한 모델이 유리한 경향 |
| 주요 위험 | 노이즈 | Overfitting |
60행으로 파라미터가 많은 모델(Random Forest, GBT)을 학습하면 overfitting이 거의 확실하다. 월별에서는 Ridge, Lasso 같은 regularization이 있는 linear 계열이 더 안정적인 경향이 있다.
단, 이건 미리 결정하는 게 아니다. sklearn regression을 모두 돌려보고 일별 vs 월별에서 어떤 모델이 각각 우세한지 직접 비교하면서 확인하는 것이 맞다.