Restrição de previsões em intervalos no R

Como garantir que uma previsão pontual não ultrapasse um determinado limite? Por exemplo, se a variável de interesse para a previsão é "número de pessoas empregadas", sabemos que ou o valor da série é "zero pessoas empregadas" ou algum valor positivo. Pelo processo gerador dos dados, não faz sentido, neste caso, um modelo gerar previsões negativas. Sendo assim, neste artigo mostramos o caminho para estabelecer restrições em previsões pontuais e as ferramentas da linguagem R para tal.

É comum querer que as previsões sejam positivas ou exigir que elas estejam dentro de algum intervalo especificado, [a, b]. Ambas estas situações são relativamente fáceis de lidar usando transformações.

Restrição positiva

Para impor uma restrição de valores positivos, podemos simplesmente trabalhar na escala logarítmica. Se denotarmos as observações originais como y1, ..., yT e as observações transformadas como w1, ..., wT, então wt = log(yt).

Os logaritmos são úteis porque são interpretáveis: as alterações em um valor em log são alterações relativas (ou percentuais) na escala original. Portanto, se o log de base 10 for usado, um aumento de 1 na escala logarítmica corresponde a uma multiplicação de 10 na escala original. Se algum valor da série original for zero ou negativo, a transformação logarítmica não é possível.

Por exemplo, se a série de interesse para previsão é "número de pessoas empregadas", então a série pode assumir valores iguais a zero ou positivos. Nesse caso, tudo que você precisa fazer é:

  1. Transformar a série original yt para escala logarítmica: wt = log(yt + 1)
  2. Estimar o modelo para wt e gerar as previsões gt
  3. Transformar as previsões gde volta para a escala original: zt = exp(gt) - 1

A transformação log(yt + 1) é comumente usada para superar a limitação das transformações logarítmicas preservando a não negatividade, em dados que contêm zeros. Neste caso são duas transformações, log()+1.

Em um exemplo com dados reais, usando como variável de interesse a taxa de juros SELIC (% a.a., BCB), sobre a qual é razoável pensar que assuma valores positivos em tempos normais da economia brasileira, o resultado da previsão com e sem restrição positiva seria algo parecido com isso:

Neste exemplo fica claro a importância da utilização da restrição: quando a restrição não é imposta o modelo gera previsões negativas (considerando o intervalo de confiança) para a variável de interesse, o que pode ser errôneo a depender da variável.

O procedimento de colocar isso em prática é relativamente simples usando a linguagem R. Você pode, por exemplo, utilizar o pacote {fable} que lida automaticamente com transformações simples como essa do exemplo, além de permitir outros tipos de transformações customizadas.

Saiba mais

Para ter acesso aos códigos desse exercício, torne-se Membro do Clube AM.

Para se aprofundar no assunto confira os cursos aplicados de R e Python da Análise Macro:

 

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Criando operações SQL com IA Generativa no R com querychat

No universo da análise de dados, a velocidade para obter respostas é um diferencial competitivo. Frequentemente, uma simples pergunta de negócio — “Qual foi nosso produto mais vendido no último trimestre na região Nordeste?” — inicia um processo que envolve abrir o RStudio, escrever código dplyr ou SQL, executar e, finalmente, obter a resposta. E se pudéssemos simplesmente perguntar isso aos nossos dados em português, diretamente no nosso dashboard Shiny?

Dashboard Financeiro com IA e Shiny Python: Análise de Dados Abertos da CVM

Este artigo apresenta um tutorial completo sobre como construir uma ferramenta de análise financeira de ponta. Utilizando Shiny for Python, demonstramos a automação da coleta de dados das Demonstrações Financeiras Padronizadas (DFP) da CVM e o tratamento dessas informações com Pandas. O ponto alto do projeto é a integração da IA Generativa do Google Gemini, que atua como um assistente de análise, interpretando os dados filtrados pelo usuário e fornecendo insights contábeis e financeiros em tempo real. O resultado é um dashboard dinâmico que democratiza a análise de dados complexos e acelera a tomada de decisão.

Econometria, ML ou IA para previsão da PMS?

Prever a Pesquisa Mensal de Serviços (PMS/IBGE) é um desafio por natureza: trata-se de uma série mensal, sujeita a volatilidade e choques que vão de fatores sazonais a mudanças estruturais no setor. Para enfrentar esse problema, realizamos um exercício de comparação entre três abordagens de modelagem: econometria tradicional (ARIMA), machine learning (XGBoost) e inteligência artificial (TimeGPT).

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.