Na análise de séries temporais, um média móvel é simplesmente o valor médio de um determinado número de períodos anteriores.
Um média móvel exponencial é um tipo de média móvel que dá mais peso às observações recentes, o que significa que é capaz de captar as tendências recentes mais rapidamente.
Este tutorial explica como calcular uma média móvel exponencial para uma coluna de valores em um DataFrame do pandas.
Exemplo: Média Móvel Exponencial em Pandas
Suponhamos que temos o seguinte DataFrame do pandas:
import pandas as pd #create DataFrame 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 3 14 3 4 16 4 5 27 5 6 20 6 7 12 7 8 15 8 9 14 9 10 19
Podemos utilizar a função pandas.DataFrame.ewm() para calcular a média móvel ponderada exponencialmente para um determinado número de períodos anteriores.
Por exemplo, eis como calcular a média móvel ponderada exponencialmente utilizando os quatro períodos anteriores:
#criar nova coluna para conter a média móvel exponencialmente ponderada de 4 dias 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
Também podemos utilizar a biblioteca matplotlib para visualizar as vendas em comparação com a média móvel exponencialmente ponderada de 4 dias:
import matplotlib.pyplot as plt #plotar as vendas e a média móvel ponderada exponencialmente de 4 dias plt. plot (df['sales'], label="Sales") plt. plot (df['4dayEWM'], label="4-day EWM") #adicionar legenda ao gráfico plt. legend (loc=2)