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

Análise do Censo Demográfico com o R

Como podemos analisar dados do Censo Demográfico para produzir pesquisas e implementar políticas públicas? Mostramos nesta postagem o resultado de uma breve análise dos dados preliminares do Censo Demográfico de 2022 usando o R.

Deploy de modelos com Python + Shinylive + GitHub gastando ZERO reais

Colocar modelos em produção pode ser um grande desafio. Lidar com custos monetários, infraestrutura operacional e complexidades de códigos e ferramentas pode acabar matando potenciais projetos. Uma solução que elimina todos estes obstáculos é a recém lançada Shinylive. Neste artigo mostramos um exemplo com um modelo de previsão para o preço do petróleo Brent.

Como automatizar tarefas repetitivas usando Python? Um exemplo para largar o Excel

Manter relatórios diários com dados e análises atualizados é um desafio, pois envolve várias etapas: coleta de dados, tratamento de informações, produção de análises e atualização de relatório. Para superar este desafio algumas ferramentas como Python + Quarto + GitHub podem ser usadas para automatizar tudo que for automatizável. Neste artigo mostramos um exemplo com dados do mercado financeiro.

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.