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)

Media mobile esponenziale ponderata nei panda

Risorse addizionali

Come calcolare le medie mobili in Python
Come calcolare la media delle colonne in Pandas
Come calcolare l’autocorrelazione in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *