Come calcolare una media mobile esponenziale nei panda
Nell’analisi delle serie temporali, una media mobile è semplicemente il valore medio di un numero di periodi precedenti.
Una media mobile esponenziale è un tipo di media mobile che attribuisce maggiore peso alle osservazioni recenti, il che significa che è in grado di catturare le tendenze recenti più rapidamente.
Questo tutorial spiega come calcolare una media mobile esponenziale per una colonna di valori in un DataFrame panda.
Esempio: media mobile esponenziale nei panda
Supponiamo di avere i seguenti panda DataFrame:
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
Possiamo utilizzare la funzione pandas.DataFrame.ewm() per calcolare la media mobile esponenzialmente ponderata per un numero di periodi precedenti.
Ad esempio, ecco come calcolare la media mobile ponderata in modo esponenziale utilizzando i quattro periodi precedenti:
#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
Possiamo anche utilizzare la libreria matplotlib per visualizzare le vendite relative alla media mobile esponenziale ponderata di 4 giorni:
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)
Risorse addizionali
Come calcolare le medie mobili in Python
Come calcolare la media delle colonne in Pandas
Come calcolare l’autocorrelazione in Python