윈도우 함수
윈도우 함수(Window Function)는 데이터의 일정 범위(윈도우)를 이동시키면서 통계량을 계산합니다. 시계열 데이터의 추세 파악, 노이즈 제거, 피처 생성에 핵심적으로 사용됩니다.학습 목표
- rolling으로 이동평균, 이동표준편차를 계산할 수 있다
- expanding으로 누적 통계를 계산할 수 있다
- ewm으로 지수가중 이동평균을 계산할 수 있다
- 윈도우 함수로 시계열 피처를 생성할 수 있다
왜 중요한가
시계열 데이터의 단기 노이즈를 제거하고 장기 추세를 파악하는 것은 데이터 분석의 기본입니다. 또한 rolling 통계량(이동평균, 이동표준편차)은 시계열 ML 모델의 핵심 피처입니다.rolling — 이동 윈도우
rolling 옵션
expanding — 누적 윈도우
ewm — 지수가중 이동평균
최근 값에 더 큰 가중치를 부여하는 이동평균입니다. 금융 데이터 분석에서 특히 많이 사용됩니다.| 파라미터 | 설명 | 관계 |
|---|---|---|
span | 윈도우 크기에 대응 | alpha = 2 / (span + 1) |
alpha | 가중치 감쇠율 (0~1) | 클수록 최근 데이터 반영 |
halflife | 가중치가 반으로 줄어드는 기간 | alpha = 1 - exp(-ln(2)/halflife) |
윈도우 함수 비교
| 함수 | 윈도우 크기 | 특징 | 용도 |
|---|---|---|---|
rolling | 고정 | 최근 N개만 사용 | 단기 추세, 노이즈 제거 |
expanding | 증가 | 처음부터 현재까지 | 누적 통계 |
ewm | 전체 (가중치 감쇠) | 최근 값에 높은 가중치 | 추세 추종, 금융 |
AI/ML에서의 활용
- 시계열 피처: 이동평균, 이동표준편차를 lag 피처와 함께 사용합니다
- 추세/계절성 분리: 이동평균으로 추세를 추출하고, 원본 - 추세 = 잔차를 계산합니다
- 이상 탐지: 이동 표준편차를 기반으로 볼린저 밴드를 구성하여 이상치를 탐지합니다
- 스무딩: 노이즈가 많은 데이터를 ewm으로 평활화합니다
rolling에서 center=True는 언제 사용하나요?
rolling에서 center=True는 언제 사용하나요?
분석 시 과거와 미래 데이터를 동시에 참조하여 현재 시점의 추세를 파악할 때 사용합니다. 예측 모델에서는 미래 데이터를 사용할 수 없으므로
center=False(기본값)를 사용해야 합니다.ewm의 span과 rolling의 window는 동등한가요?
ewm의 span과 rolling의 window는 동등한가요?
완전히 동등하지는 않습니다. rolling은 윈도우 밖의 데이터를 완전히 무시하지만, ewm은 먼 과거 데이터도 작은 가중치로 반영합니다. span=7과 window=7은 유사한 smoothing 효과를 내지만, ewm이 더 부드러운 곡선을 생성합니다.
체크리스트
- rolling으로 이동평균과 이동표준편차를 계산할 수 있다
- min_periods로 초기 NaN을 줄일 수 있다
- expanding으로 누적 통계를 계산할 수 있다
- ewm의 span, alpha, halflife 파라미터를 이해한다
- 윈도우 함수로 시계열 피처를 생성할 수 있다

