Sazonalidade Múltipla - Entendendo a sazonalidade do consumo de energia elétrica

É 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.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como tratar dados no Python? Parte 2: filtrando linhas

Como filtrar somente as linhas que interessam em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de filtros de linhas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Criando IA Assistant usando Shiny no Python

Nesta postagem, ensinamos a como criar um chatbot interativo utilizando o Shiny Python. Veremos os principais conceitos sobre o módulo Chat do Shiny e como integrá-lo a modelos de IA generativa, como Gemini, para criar um chatbot funcional em poucos passos.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.