이동 평균은 데이터를 부드럽게 만들거나 추세를 파악하는 데 사용되는 기본적인 시계열 데이터 처리 방법 중 하나입니다. 다양한 종류의 이동 평균이 있으며, 주요 유형은 다음과 같습니다:
단순 이동 평균은 주어진 창 크기 내의 데이터 포인트의 평균을 계산합니다. 모든 데이터 포인트에 동일한 가중치를 부여합니다. 이를 파이썬으로 구현하려면 다음과 같이 할 수 있습니다:
def simple_moving_average(data, window_size):
sma = data.rolling(window=window_size, win_type="boxcar").mean()
return sma
지수 가중 이동 평균은 최신 데이터 포인트에 더 높은 가중치를 부여하고 이전 데이터 포인트에 낮은 가중치를 부여합니다. 이를 파이썬으로 구현하려면 다음과 같이 할 수 있습니다:
def exponential_moving_average(data, alpha):
ema = data.ewm(alpha=alpha, adjust=False).mean()
return ema
삼각 이동 평균은 일정한 크기의 가중 이동 평균을 사용하지만, 가중치를 삼각형 모양으로 배치합니다. 가장 최근 데이터 포인트에 더 높은 가중치를 부여합니다. 이를 파이썬으로 구현하려면 다음과 같이 할 수 있습니다:
def triangular_moving_average(data, window_size):
weights = np.array(range(1, window_size+1))
tma = data.rolling(window=window_size).apply(lambda x: np.sum(x * weights) / np.sum(weights))
return tma
def triangular_moving_average(data, window_size):
tma = data.rolling(window=window_size, win_type="triang").mean()
return tma
가중 이동 평균은 각 데이터 포인트에 다른 가중치를 부여하여 특정 데이터 포인트를 중요하게 고려하는 데 사용됩니다. 가중치는 사용자가 정의하며, 시계열 데이터의 특성에 따라 조절할 수 있습니다. 이를 파이썬으로 구현하려면 사용자가 정의한 가중치를 사용하여 평균을 계산하면 됩니다.
def weighted_moving_average(data, weights):
wma = data.rolling(window=len(weights)).apply(lambda x: (x * weights).sum() / weights.sum())
return wma
각각의 이동 평균 유형은 다른 데이터 특성에 대해 다른 결과를 제공합니다. 데이터의 성격과 분석 목적에 따라 적절한 이동 평균 유형을 선택해야 합니다.