数学

Pythonで移動平均を求める方法

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...]

コメント

タイトルとURLをコピーしました