단순이동평균
주로 주식하면 많이 봤을 스무딩 기법으로 기간(span)을 정하고 원하는 시점 $ t $ 에서 기간만큼 데이터를 확인하고 평균내어 데이터를 다시 만드는 방법이다. 즉 가장 최근을 $ T $ 라 할 때 기간을 $ N $ 으로 정했다면 최근 $ N $ 개의 관측값 $y_T, y_{T-1}, \cdots, y_{T-N+1} $ 에 동일한 가중치 $ 1/ N $ 을 할당한다. 그렇다면 시점 $ T $ 에서 $ N $ 기간 이동평균 $ M_T $ 는 다음과 같다.
$$ M_T = \frac{y_T + y_{T-1} + \cdots + y_{T-N+1}}{N} = \frac{1}{N} \sum_{t=T-N+1}^T y_t $$
새로운 관측값이 한 개 추가될 때마다, 이동평균을 계산하는 합에 그 새로운 관측값이 포함되고 가장 오래된 관측값이 제외된다. 따라서 이동평균은 원본 관측값들보다 변동성이 더 작다. 만약 단일 관측값 $ y_t $ 의 분산이 $ \sigma^2 $ 이라 하고 관측값들이 서로 상관되지 않는다고 가정하면, 이동평균의 분산은 다음과 같다.
$$ \mathrm{Var}(M_T) = \mathrm{Var}\Bigl(\frac{1}{N}\sum_{t=T-N+1}^T y_t\Bigr) = \frac{1}{N^2} \sum_{t=T-N+1}^T \mathrm{Var}(y_t) = \frac{\sigma^2}{N} $$
가끔은 중심화(centered)된 형태의 이동평균을 사용하는 경우도 있다. 이때의 이동평균 $ M_t $ 는 다음과 같다.
$$ M_t = \frac{1}{S+1} \sum_{i= -S}^S y_{t-i} $$
여기서 이동평균의 기간 $ N $ 은 $ N = 2S + 1 $ 로 정의된다.
위와 같이 적용하면 그래프가 한층 더 부드럽게(smoothed) 움직이는 것을 알 수 있다.
중심화이동평균
앞서 단순이동평균은 모든 값에 동일한 가중치 $ 1/N $ 을 적용하였다. 이는 선형 데이터 스무더(linear data smoother) 혹은 선형 필터(linear filter)이다. 물론 동일한 가중치만 부여해야 하는 것은 아니다. 중심에 더욱 더 많은 가중치를 주는 방법도 존재한다. 해닝 필터(Hanning filter)는 중앙에 더욱 가중치를 주는 형태이다.
$$ M_t^H = 0.25 y_{t+1} + 0.5 y_t + 0.25 y_{t-1} $$
이동중앙값
앞선 이동평균과 중심화이동평균은 선형 필터였다. 이는 비정상적인 값, 즉 이상치(outlier)가 포함되어 있을 경우 값이 튈 가능성이 있다. 따라서 이를 방지하기 위해 중앙값을 이용하는 방식이 사용되기도 하고, 이를 이동중앙값이라 한다.
홀수 길이(odd-span)를 갖는 이동중앙값은 running median이라고 하기도 한다. 기간(span)이 $ N $ 이고, 중앙값을 $ \operatorname{med} $ 라 할 때 홀수 길이 이동중앙값은 다음과 같다.
$$ m_t^{[N]} = \operatorname{med} (y_{t-u}, \cdots, y_t, \cdots, y_{t+u} ) $$
여기서 $ N = 2u + 1 $ 이다. 가장 널리 사용되는 이동중앙값은 기간(span)이 $ 3 $ 인 $ m_t^{[3]} $ 으로 다음과 같다.
$$ m_t^{[3]} = \operatorname{med}(y_{t-1}, y_t, y_{t+1}) $$
이렇게 이동중앙값을 계산하여 적용하면 일반적으로 단조(monotone)하게 증가하거나 감소하는 데이터 구간은 그대로 통과시킨다. 계단 함수(step function) 형태로 변하는 구간은 따라가지만, 최대 $ u $ 개의 관측값 길이를 갖는 순간적 급등(spike)이나 이상치(outlier) 구간은 제거해준다. 또한 원한다면 이동중앙값을 여러번 적용해 더 부드럽게 만들 수도 있다.
단 이렇게 이동중앙값을 적용하면 양측 가장자리(end) 정보가 손실된다. 데이터가 매우 큰 경우 큰 문제가 안 될 가능성이 높지만, 데이터가 작은 경우 문제가 될 수 있고, 데이터 길이를 유지해야 하는 경우에도 문제가 될 수 있다. 간단한 방법 중 하나는 원본 데이터의 맨 앞과 맨 뒤를 그대로 복사해 붙이는 방식(copy on)이다. 끝값들을 스무딩하기 위한 방법은 그 외에도 다양하다.
이동중앙값이 가장 효과를 보는 경우는 앞서 말했듯이 이상치같은 비정상적인 값이 존재하는 경우이다. 아래와 같은 데이터에서 (a) 는 이동평균을 적용한 것이고 (b) 는 이동중앙값을 적용한 것이다. 이동중앙값이 이상치에 대한 영향을 최소화한 것을 볼 수 있다.
'Statistics > Time Series Analysis' 카테고리의 다른 글
[Time Series Analysis] 멱변환(power transformation)을 통한 데이터 변환(data transformation) (0) | 2025.03.20 |
---|---|
[Time Series Analysis] 변이도(variogram) (0) | 2025.03.15 |
[Time Series Analysis] 시계열 자료의 정상성(stationarity) (0) | 2025.03.15 |
[Time Series Analysis] 시계열에서 예측 오차(forecast errors)와 잔차(residuals) (0) | 2025.03.12 |
[Time Series Analysis] 예측(forecasting) 및 시계열 분석(time series analysis) (0) | 2025.03.12 |