Jak obliczyć wykładniczą średnią ruchomą w pandach
W analizie szeregów czasowych średnia ruchoma jest po prostu średnią wartością kilku poprzednich okresów.
Wykładnicza średnia krocząca to rodzaj średniej kroczącej, która przywiązuje większą wagę do ostatnich obserwacji, co oznacza, że jest w stanie szybciej uchwycić najnowsze trendy.
W tym samouczku wyjaśniono, jak obliczyć wykładniczą średnią ruchomą dla kolumny wartości w ramce DataFrame pandy.
Przykład: wykładnicza średnia krocząca u pand
Załóżmy, że mamy następującą ramkę DataFrame pand:
import pandas as pd #createDataFrame df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'sales': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19]}) #view DataFrame df period sales 0 1 25 1 2 20 2 3 14 3 4 16 4 5 27 5 6 20 6 7 12 7 8 15 8 9 14 9 10 19
Możemy użyć funkcji pandas.DataFrame.ewm() do obliczenia wykładniczej średniej kroczącej dla pewnej liczby poprzednich okresów.
Na przykład, oto jak obliczyć wykładniczą ważoną średnią ruchomą na podstawie poprzednich czterech okresów:
#create new column to hold 4-day exponentially weighted moving average df['4dayEWM'] = df['sales']. ewm (span= 4 , adjust= False ). mean () #view DataFrame df period sales 4dayEWM 0 1 25 25.000000 1 2 20 23.000000 2 3 14 19.400000 3 4 16 18.040000 4 5 27 21.624000 5 6 20 20.974400 6 7 12 17.384640 7 8 15 16.430784 8 9 14 15.458470 9 10 19 16.875082
Możemy również użyć biblioteki matplotlib do wizualizacji sprzedaży w odniesieniu do 4-dniowej wykładniczej średniej kroczącej:
import matplotlib.pyplot as plt #plot sales and 4-day exponentially weighted moving average plt. plot (df['sales'], label='Sales') plt. plot (df['4dayEWM'], label='4-day EWM') #add legend to plot plt. legend (loc=2)
Dodatkowe zasoby
Jak obliczyć średnie kroczące w Pythonie
Jak obliczyć średnią kolumn w Pandach
Jak obliczyć autokorelację w Pythonie