Hoe u een exponentieel voortschrijdend gemiddelde in panda's kunt berekenen
Bij tijdreeksanalyse is een voortschrijdend gemiddelde eenvoudigweg de gemiddelde waarde van een aantal voorgaande perioden.
Een exponentieel voortschrijdend gemiddelde is een soort voortschrijdend gemiddelde dat meer gewicht toekent aan recente waarnemingen, wat betekent dat het recente trends sneller kan vastleggen.
In deze tutorial wordt uitgelegd hoe u een exponentieel voortschrijdend gemiddelde kunt berekenen voor een kolom met waarden in een Panda DataFrame.
Voorbeeld: exponentieel voortschrijdend gemiddelde in panda’s
Stel dat we de volgende panda’s DataFrame hebben:
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
We kunnen de functie pandas.DataFrame.ewm() gebruiken om het exponentieel gewogen voortschrijdend gemiddelde voor een aantal voorgaande perioden te berekenen.
U kunt bijvoorbeeld als volgt het exponentieel gewogen voortschrijdend gemiddelde berekenen op basis van de voorgaande vier perioden:
#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
We kunnen ook de matplotlib-bibliotheek gebruiken om de verkopen te visualiseren ten opzichte van het 4-daagse exponentieel gewogen voortschrijdend gemiddelde:
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)
Aanvullende bronnen
Hoe voortschrijdende gemiddelden in Python te berekenen
Hoe het gemiddelde van kolommen in Panda’s te berekenen
Hoe autocorrelatie in Python te berekenen