Pythonで移動平均を計算するには、指定した期間分のデータを取得し、それらを平均することで計算することができます。
移動平均
例えば、以下のように、ある日毎のデータが存在するとして、5日間の移動平均を計算する場合、以下のようにします。
data = [10, 20, 30, 40, 50, 60, 70, 80] # 5日間の移動平均を計算する moving_average = [] for i in range(4, len(data)): moving_average.append(sum(data[i-4:i+1]) / 5) print(moving_average) # [30.0, 40.0, 50.0, 60.0]
指数移動平均
指数移動平均(EMA)では、直近のデータをより重視するように計算されるため、より平滑化された移動平均を得ることができます。
指数移動平均を計算するには、以下のようにします。
data = [10, 20, 30, 40, 50, 60, 70, 80] # 5日間の指数移動平均を計算する alpha = 2 / (5 + 1) # 軟化係数を計算 ema = [] for i in range(len(data)): if i == 0: ema.append(data[i]) # 最初のデータは移動平均を計算できないのでそのまま追加 else: ema.append(alpha * data[i] + (1 - alpha) * ema[i-1]) print(ema) [10, 13.33..., 18.88..., 25.92..., 33.95..., 42.63..., 51.75..., 61.17...]
コメント