이동평균(Moving Average)은 시계열 데이터 분석에서 매우 중요한 도구로, 주로 주식 시장이나 금융 데이터 분석에서 사용됩니다. 이동평균은 데이터의 변동성을 줄이고, 특정 시점에서의 평균적인 성향을 나타내어 데이터의 흐름을 보다 명확하게 파악하는 데 도움이 됩니다. 이동평균에는 여러 가지 유형이 있으며, 이 중 가장 대표적인 것이 단순 이동평균(SMA)과 지수 이동평균(EMA)입니다.
$$ SMA(t,k) = \frac{1}{k} \sum_{i=t-k+1}^{t} v_i $$
t: 시점 k: 고려하는 기간(예: 일수) $v_i$는 시각 $i$에서의 데이터 값(예: 종가)
특정 기간 내의 데이터에 대해 동일한 가중치를 적용하므로 계산이 간단합니다.
단점은 새로운 데이터가 추가될 때마다 이전 데이터가 동일한 비율로 반영되기 때문에, 최근 데이터의 변화에 덜 민감할 수 있습니다.
파이썬의 데이터프레임에서는 rolling(k).mean()
을 이용하여 구할 수 있습니다.
$$ EMA(t,k) = wv_k + (1 - w) EMA(t-1,k) \\w = \frac{2}{k+1} $$
w: 가중치 k: 고려하는 기간 EMA(t−1,k): 이전 시점의 EMA 값
오늘 얻은 값에는 𝑤의 가중치를 두고, 어제까지 계산한 EMA 값에는 𝑤−1 가중치를 줘서 합한 것입니다. 𝑤+(1−𝑤)=1이므로 가중평균이 됩니다.
데이터프레임에서는 ewm(k).mean()
으로 구할 수 있습니다
EMA는 최근 데이터에 더 큰 가중치를 두므로, 데이터의 급격한 변화에 더 민감하게 반응합니다. 시간이 지남에 따라 오래된 데이터의 영향이 지수적으로 감소합니다