É comum encontrar em dados de Séries Temporais o componente de sazonalidade, entretanto, é possível haja mais de um ponto sazonal na série. Para tanto, é possível capturar as múltiplas sazonalidades de uma série por meio do uso de um MSTL. No post de hoje, iremos usar o Python para obter as múltiplas sazonalidades da série de consumo de energia do Brasil.
O primeiro passo é capturar os dados de carga de energia, em MWmed, referente ao Consumo de Energia por meio do site da ONS. Realizamos o procedimento de forma manual, baixando o arquivo .csv. A seguir, importamos o arquivo no Python.
import pandas as pd
from datetime import datetime
dateparse = lambda x: datetime.strptime(x, '%d/%m/%Y')
df = (
pd.read_csv("/content/energia.csv",
sep = ';',
index_col = False,
decimal = ',',
dtype = {'carga' : 'float'},
parse_dates = ['date'],
date_parser=dateparse)
.rename(columns = {'carga' : 'y',
'date' : 'ds'})
.assign(unique_id = 'carga')
)
import seaborn as sns
from matplotlib import pyplot as plt
sns.set()
plt.figure(figsize = (15,7))
sns.lineplot(x = 'ds', y = 'y', data = df)
A partir do entendimento da série e do consumo de energia no país, vamos extrair a sazonalidade semanal e anual por meio de um MSTL (Multiple Seasonal-Trend decompositions with LOESS). Para implementar o modelo, utilizaremos a biblioteca statsforecast, que possibilita não somente a criar o modelo, mas obter a decomposição e até mesmo realizar uma previsão da série.
Todo o código criado no Python, que possibilita obter a sazonalidade e os gráficos abaixo, você pode obter através do Clube AM, o repositório especial da Análise Macro, no qual compartilhamos códigos de R e Python comentados com vídeo aulas.
Vamos analisar a decomposição por meio de três janelas, uma série inteira, outra de 3 anos da série e outra de somente 1 ano. Isso possibilita entender todos os componentes.
Série Completa
A partir da série completa, é possível entender que a tendência obviamente segue o crescimento do consumo de energia elétrica no país devido ao crescimento econômico, bem como populacional. Em relação a sazonalidade, é possível compreender que de fato há um efeito anual visualizando a sazonalidade em 365 dias, já a sazonalidade em 7 dias é difícil de compreender visualmente devido a frequência da série.
Série em 3 anos
Visualmente é mais fácil compreender a sazonalidade em uma janela menor, podendo entender a sazonalidade em 7 dias, devido ao fato de possuir menos observações na série. Em relação a sazonalidade em 365 dias, já possível enxergar o efeito dos meses (o que pode ser inclusive uma justificativa para adicionar mais sazonalidades no modelo MSTL).
Série em 1 ano
Por fim, no último ano da série analisada (2019), é possível de fato compreender a sazonalidade em 7 dias, bem como o efeito do meio do ano na série.
________________________________________________
Quer se aprofundar no assunto?
Alunos da trilha de Ciência de dados para Economia e Finanças possuem acesso o curso Analise de dados Macroeconômicos e Financeiros e podem aprender a como construir projetos que envolvem dados reais usando modelos econométricos e de Machine Learning com o R.
Referências
Hyndman, R.J., & Athanasopoulos, G. (2021) Forecasting: principles and practice, 3rd edition, OTexts: Melbourne, Australia. OTexts.com/fpp3.