Introdução
Algumas séries temporais são geradas a partir de dados de frequência muito baixa. Esses dados geralmente exibem múltiplas sazonalidades. Por exemplo, dados horários podem exibir padrões repetidos a cada hora (a cada 24 observações) ou a cada dia (a cada 24 * 7, horas por dia, observações). Esse é o caso da carga elétrica. A carga elétrica pode variar por hora, por exemplo, durante as noites, no Brasil, espera-se uma queda no consumo de eletricidade. Mas também, a carga elétrica varia por semana. Talvez no caso brasileiro, fins de semana haja uma queda na atividade elétrica.
Outro aspecto crucial a ser observado em séries temporais de carga de energia é a tendência. No contexto brasileiro, observa-se claramente uma tendência ascendente, em grande parte devido ao contínuo crescimento econômico do país.
Quando lidamos com séries temporais que exibem tais padrões, torna-se imperativo empregar modelos capazes de identificá-los com precisão. Modelos de Machine Learning voltados para análise de Séries Temporais, como LightGBM ou até mesmo Prophet, destacam-se como as opções mais adequadas para abordar esses cenários complexos.
Entretanto, um método novo que podemos utilizar consiste no TimeGPT, um tipo de modelo de Inteligência Artificial do tipo fundacional (foundational model).
O código em Python completo deste exercício está disponível para os membros do Clube AM.
TimeGPT
TimeGPT é uma ferramenta avançada de previsão de séries temporais, capaz de identificar padrões e tendências, permitindo realizar previsões. Sua flexibilidade permite adaptar-se a uma variedade de séries temporais, independentemente de sua complexidade ou características específicas.
Em contraste com modelos de linguagem, como o LLM, o TimeGPT é otimizado exclusivamente para tarefas de previsão, o que significa que é treinado especificamente para minimizar erros nesse contexto. Já abordamos na Análise Macro como usar o TimeGPT no Python, para mais detalhes, acesse os exercícios TimeGPT e a previsão automática usando IA no Python e Modelagem preditiva de séries temporais hierárquicas no Python usando TimeGPT ou veja mais sobre a biblioteca em seu site.
Dados
Utilizamos os dados de Carga Horária de Eletricidade Nacional de 4 regiões do Brasil (Norte, Nordeste, Sul e Sudeste) medido pela ONS (em MW). Os valores estão em periodicidade horária, de Jan/2015 até Dez/2023.
Na figura abaixo, observamos as séries de demanda de energia para as quatro regiões em uma subamostra. É evidente a presença de padrões sazonais em cada uma das séries. Se analisássemos uma amostra maior, seria possível identificar com mais clareza a tendência ao longo do tempo.
Previsão usando TimeGPT
Após separar os dados em treino e teste, realizamos a previsão da série utilizando o modelo TimeGPT. Na figura abaixo, comparamos as previsões geradas para o conjunto de treino com os dados reservados para teste.
Para avaliar o desempenho do modelo de forma mais clara, podemos compará-lo com outros modelos. Nesse caso, utilizamos um modelo ingênuo e o LightGBM. A figura a seguir apresenta os resultados obtidos pelo modelo LightGBM.
Por fim, para avaliar a acurácia das previsões, utilizamos as métricas MAE e sMAPE nos diferentes modelos. Com base nesses resultados, podemos afirmar que, em média, para os dados e a amostra utilizados, o TimeGPT apresentou um desempenho superior.
Código
metric
mae 620.826382
smape 0.015314
Name: TimeGPT, dtype: float64
naive | lgbm | |
---|---|---|
metric | ||
mae | 12777.692218 | 1492.605282 |
smape | 0.272524 | 0.047985 |
Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!
Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, fale com a gente no Whatsapp e veja como fazer parte do Clube AM, clicando aqui.