Ajuste sazonal no Python com o X13-ARIMA-SEATS

Um padrão sazonal ocorre quando uma série de tempo é afetada por fatores sazonais, como a época do ano ou o dia da semana. A sazonalidade é sempre de um período fixo e conhecido. Por exemplo, as vendas mensais de panetone apresentam sazonalidade induzida pela época de Natal de cada ano. Nestes casos, cálculos e análises de dados exigem especial atenção.

Em dados econômicos, exemplos de séries temporais com padrão sazonal são abundantes: desde variáveis de inflação até a mercado de trabalho. Em muitos casos essa característica é bem forte e clara, mas em outros pode ser sutil. Por exemplo, a principal medida de inflação no Brasil, o IPCA do IBGE, apresenta picos nos meses de dezembro/janeiro de cada ano:

Para evitar problemas de sazonalidade em análises, podemos realizar o procedimento de ajuste sazonal. Para tal, começamos assumindo que, conforme Hyndman e Athanasopoulos (2021), a série temporal possa ser decomposta de uma das duas maneiras abaixo:

  • Aditiva: Yt = St + Tt + Rt
  • Multiplicativa: Yt = St × Tt × Rt

onde:
Yt é a série temporal observada;
St é o componente de sazonalidade;
Tt é o componente de tendência;
Rt é o componente de ruído (flutuações aleatórias).

Sendo assim, se removermos o componente sazonal, St, dos dados, a série temporal resultante será a série "sazonalmente ajustada" (vamos chamá-la de Yts.a.). Então, para uma decomposição aditiva, Yts.a. = Yt - St e, para uma decomposição multiplicativa, Yts.a. = Yt / St.

Existem vários métodos/programas de estimação/decomposição para chegar a série sazonalmente ajustada, a maioria deles são complicados ou demandam muito para um post introdutório, não havendo um consenso sobre o uso. Algumas instituições estatísticas, como o IBGE, usam os métodos X-11/SEATS e variações deles (X-12-ARIMA, X-13-ARIMA-SEATS, etc.), enquanto que também é comum a utilização do método STL de decomposição. Para uma introdução e mais informações sobre os métodos veja Hyndman e Athanasopoulos (2021).

Agora que você sabe a importância da sazonalidade em análises de séries temporais, que tal usar o Python para aplicar um ajuste sazonal?

Como fazer ajuste sazonal no Python com o X13-ARIMA-SEATS?

Para obter uma série temporal ajustada sazonalmente pelo X13-ARIMA-SEATS são necessários 4 passos no Python:

  1. Baixe e descompacte o X13-ARIMA-SEATS: acesse o site do Census Bureau/US, criador do X13, e localize os links do programa e documentação referente aplicável ao seu sistema operacional;
  2. No Python, instale e importe uma versão atual da biblioteca statsmodels (>=0.13.5): essa biblioteca pode ser usada, através de funções em tsa.x13, como interface de comunicação entre o Python e o programa X13;
  3. Defina o XPATH como variável de ambiente: para que o statsmodels saiba onde os arquivos do programa X13 foram descompactados, crie uma variável de ambiente "X13PATH" e aponte o caminho para a pasta;
  4. Realize o ajuste sazonal com a função x13_arima_analysis(): aponte no argumento endog a série temporal e no argumento freq a frequência da mesma para que o método do X13 seja aplicado.

Ao final, do objeto resultante da última etapa, você poderá obter a série ajustada sazonalmente acessando o elemento seasadj. Aproveite e plote a série original com a série ajustada sazonalmente para observar as diferenças. Você deve obter algo parecido com isso:

 

Saiba mais

Se você precisar de mais detalhes e códigos de exemplo, no Clube AM da Análise Macro mostramos todo o procedimento passo a passo aplicado a séries econômicas, além de haver diversos outros exercícios sobre ciência de dados para economia e finanças usando o R e o Python.

E se você precisa entender mais sobre análise de dados macroeconômicos, confira a trilha Macroeconomia Aplicada da Análise Macro.

Referências

Hyndman, R. J., & Athanasopoulos, G. (2021) Forecasting: principles and practice, 3rd edition, OTexts: Melbourne, Australia. OTexts.com/fpp3. Accessed on 2022-04-01.

 

 

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar automação com Python e IA na análise de ações

No cenário atual, profissionais de finanças buscam formas mais rápidas, eficientes e precisas para analisar dados e tomar decisões. Uma das grandes revoluções para isso é o uso combinado de Python, automação e modelos de linguagem grande (LLMs), como o Google Gemini. O dashboard que criamos é um ótimo exemplo prático dessa integração, reunindo dados, cálculos, visualizações e análise textual em um único ambiente.

Análise de ações com IA - um guia inicial

Neste artigo, você vai aprender a integrar IA na análise de ações de forma automatizada utilizando Python. Ao final, você terá um pipeline completo capaz de coletar dados de mercado, gerar gráficos, elaborar relatórios com linguagem natural.

Quais são as ferramentas de IA?

Um aspecto crucial dos Agentes de IA é a sua capacidade de tomar ações, que acontecem por meio do uso de Ferramentas (Tools). Neste artigo, vamos aprender o que são Tools, como defini-las de forma eficaz e como integrá-las ao seu Agente por meio da System Prompt. Ao fornecer as Tools certas para o seu Agente — e ao descrever claramente como essas Tools funcionam — você pode aumentar drasticamente o que sua IA é capaz de realizar.

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.