Deep Learning + AI

결측 데이터들이 있을때, 백필(backfill)? 포워드필(ffill)?

내인생왜이래 2026. 7. 13. 16:30
반응형

먼저 용어를 구분하자.

- 백필(backfill): 과거의 실제 관측값을 다른 API·원천에서 수집
- forward-fill(ffill): 결측일에 직전 관측값을 복사
- backward-fill(bfill): 미래 값을 과거에 복사 → 백테스트에서는 미래정보 누출이므로 원칙적으로 금지

 

--

 

일반적인 접근 순서는 다음과 같다.

1. 결측 원인 분류
- 수집 실패 → 같은 원천 재수집
- API 커버리지 부족 → 다른 신뢰할 수 있는 원천으로 백필
- 휴장·발표 주기 때문에 원래 값이 없음 → 필요할 때만 ffill
- 장기간 원천 자체가 없음 → 결측 유지 또는 해당 변수를 제외
- 원본과 가공값 분리

2. 원본 테이블에는 실제 관측값만 저장
- 모델 입력 단계에서만 ffill
- is_imputed, source, staleness_days를 함께 보관
- 지금 COAL도 oilpriceapi(ffill)로 구분돼 있지만, 장기적으로는 별도 가공 계층이 더 안전합니다.

 

3. ffill 제한
- 무제한 ffill 금지
- 예: 최대 3~5영업일까지만 허용
- 주간 발표 자료라면 다음 발표일까지 허용
- 한도를 넘으면 결측 처리하거나 팩터 계산을 건너뜀

 

4. 백테스트 검증
- 실측 관측일만 사용
- 제한적 ffill 사용
- 변수 제외 세 가지 결과를 비교해 성능이 유지되는지 확인합니다.

 

--

사용예시

 

 

반응형