Replicando um Indicador de Incerteza no Python (IIE-Br)

Como construir um indicador de incerteza da economia brasileira no Python, replicando a lógica do IIE-Br da FGV. O exercício usa as atas do COPOM como fonte textual e a dispersão das expectativas de mercado (IPCA, câmbio e Selic) do Banco Central, tudo com dados públicos. O resultado acompanha de perto o índice oficial da FGV nos grandes episódios de crise.

Um indicador de incerteza no Python transforma um sentimento difuso, a sensação de que o futuro da economia está mais nublado, em um número que entra em modelos e relatórios. Neste tutorial, construímos uma versão própria do IIE-Br, o indicador de incerteza da FGV, usando apenas dados públicos e algumas dezenas de linhas de código.

No lugar dos seis jornais que a FGV monitora, usamos as atas do COPOM. No lugar das previsões proprietárias, as expectativas de mercado do Banco Central. O resultado acompanha de perto o índice oficial e mostra que a lógica econômica por trás dele resiste bem à troca de fontes.

Indicador de incerteza no Python (Análise Macro) comparado ao IIE-Br oficial da FGV, de 2002 a 2026, ambos em base 100
O indicador replicado (azul) acompanha o IIE-Br oficial da FGV (laranja) nos grandes episódios de incerteza. Fontes: BCB e FGV IBRE.

As duas curvas sobem juntas nos momentos que a memória econômica registra: a crise de confiança de 2002, o aperto fiscal e político de 2015 e 2016, o choque da pandemia em 2020. É esse encaixe que valida o exercício. A seguir, mostramos como cada peça foi construída.

Quer reproduzir este indicador?

O script completo em Python (coleta das atas do COPOM, tratamento das expectativas de mercado e a construção do índice passo a passo) vai para os assinantes do Boletim AM. Assine, é gratuito, e receba o código pronto para rodar no Google Colab.

Assinar o Boletim AM e receber o código →

O que é um indicador de incerteza

Incerteza econômica é a dificuldade de prever o que vem pela frente. Quando ela aumenta, empresas adiam investimentos, famílias seguram o consumo e o mercado cobra prêmios de risco maiores. Medir esse estado de ânimo em um número é o que permite acompanhá-lo mês a mês, como se faz com a inflação ou o desemprego.

A referência brasileira é o IIE-Br (Indicador de Incerteza da Economia Brasil), calculado pela FGV IBRE. Ele combina duas leituras da incerteza: uma vinda dos textos de imprensa e outra vinda da discordância entre analistas. Nosso exercício replica essa estrutura de dois blocos, trocando as fontes por dados públicos.

A escolha de reproduzir o método, e não apenas consumir o índice pronto, tem um motivo prático. A série oficial completa fica atrás de um produto pago, e a contagem de notícias depende de acesso aos jornais. Reconstruir a lógica com fontes abertas torna o indicador reprodutível por qualquer pessoa com Python.

Como o indicador foi construído

O caminho tem quatro etapas, e é o mesmo de quase todo projeto de dados macroeconômicos: coletar, tratar, modelar e visualizar. Cada etapa usa uma fonte pública e uma ferramenta específica.

📰

Coletar as atas
Todas as atas do COPOM desde 1998, pela API pública do Banco Central.
🔤

Medir o texto
Densidade de termos de risco e de economia em cada ata, virando um índice.
📊

Medir a discordância
Dispersão das expectativas de IPCA, câmbio e Selic no mercado.
⚖️

Ponderar e padronizar
80% do texto, 20% das expectativas, tudo na base 100 da FGV.

O componente textual: atas do COPOM

O primeiro bloco substitui os jornais por um documento oficial: as atas do COPOM, o comitê que define a taxa de juros. A escolha tem lógica. As atas trazem a leitura do Banco Central sobre a conjuntura, são densas em menções a riscos, e estão inteiramente disponíveis por uma API pública. Não têm a diversidade de seis jornais, mas oferecem uma voz consistente ao longo de mais de duas décadas.

A coleta esbarra num detalhe técnico: as atas mudaram de formato com o tempo. As mais antigas e as recentes vêm em HTML; as do intervalo entre 2016 e 2020 só existem em PDF, que precisa ser baixado e lido à parte. O código trata os dois casos e junta tudo num único conjunto de 259 atas.

Para transformar texto em número, definimos dois grupos de palavras. Um grupo de incerteza (incerteza, risco, volatilidade) e um de economia (inflação, juros, Selic). Em vez de só marcar presença, medimos a densidade: quantas vezes cada grupo aparece por palavra da ata. Isso corrige o efeito do tamanho, já que uma ata longa naturalmente teria mais ocorrências.

O índice de cada ata é o produto das duas densidades. Multiplicar em vez de somar tem um efeito importante: o índice só fica alto quando os dois temas aparecem juntos e com força. Uma ata cheia de "risco" mas sem vocabulário econômico resulta num valor baixo — é o risco econômico que interessa, não o risco em abstrato.

O componente de expectativas: a discordância do mercado

O segundo bloco parte de uma intuição simples: quando os analistas concordam sobre o futuro, a incerteza é baixa; quando as previsões se espalham, ela sobe. A medida desse espalhamento é o coeficiente de variação, o desvio-padrão dividido pela média. Ele é adimensional, o que permite comparar variáveis em escalas diferentes — o IPCA em torno de 4% e o câmbio em torno de R$ 5.

Usamos três séries do sistema de Expectativas de Mercado do Banco Central, todas públicas: o IPCA acumulado 12 meses à frente, o câmbio 12 meses à frente e a Selic esperada. Para cada uma, calculamos o coeficiente de variação numa janela móvel de 12 meses e tiramos a média dos três. É o proxy de incerteza nas expectativas.

Juntando os dois na base da FGV

A consolidação segue a fórmula do IIE-Br oficial: 80% do componente textual e 20% do de expectativas. O peso maior no texto reproduz a ponderação da FGV. Por fim, a série é padronizada na janela de referência de 2006 a 2015 para ter média 100 e desvio-padrão 10. Padronizar significa reescalar a série para uma base comum: 100 marca a incerteza média daquela década, e valores acima ou abaixo indicam incerteza maior ou menor que o normal.

O indicador replicado sobe exatamente onde a história econômica registra tensão. A tabela abaixo resume os grandes picos e o que havia por trás de cada um.

Período Índice (base 100) Contexto
Jan/2003 194,5 Crise de confiança na transição de governo
Out/2008 109,4 Crise financeira global
Jan/2016 107,6 Recessão, crise fiscal e política
Nov/2020 135,3 Auge da incerteza da pandemia
Jul/2026 89,6 Expectativas mais ancoradas, incerteza abaixo da média

Indicador de incerteza replicado nos principais episódios. Fonte: BCB (atas do COPOM e expectativas de mercado).

Indicador de incerteza no Python replicado da Análise Macro, base 100, de 2002 a 2026, com picos nas crises
O indicador replicado ao longo do tempo: picos nas crises, recuo nas calmarias. Fonte: BCB.

As ferramentas por trás

Logo do Python
Python — a linguagem que reúne coleta, tratamento e gráfico num só fluxo, com as bibliotecas pandas, requests e pypdf.
Logo do Banco Central do Brasil
Banco Central — a fonte pública de tudo: as atas do COPOM e as expectativas de mercado para IPCA, câmbio e Selic, via APIs abertas.

O que o resultado revela

  • A lógica econômica se sustenta. Mesmo com fontes diferentes das oficiais, o sinal de incerteza emerge e acompanha o índice da FGV nos grandes choques.
  • Dado público é suficiente. Todo o insumo veio de APIs abertas do Banco Central — nada pago, nada restrito.
  • O método é transferível. Trocando os termos e as séries, o mesmo pipeline mede incerteza setorial, sentimento de mercado ou risco político.

As diferenças de nível e amplitude entre as duas curvas são esperadas e não invalidam o exercício. As atas do COPOM refletem a visão institucional do Banco Central, não a percepção ampla que os jornais captam, e o vocabulário de termos é fixo. O objetivo aqui é reproduzir o método com transparência, explicitando cada escolha, não competir com o índice oficial.

Considerações finais

Com fontes públicas e algumas dezenas de linhas de Python, você reproduziu um indicador que, até agora, ficava restrito a quem paga pela série oficial da FGV. O trabalho não está na fórmula, que é simples, mas na engenharia de dados: alinhar séries que vêm em formatos e frequências diferentes, do texto das atas em PDF às expectativas diárias do mercado.

O Python reúne todas as etapas num fluxo único: baixar da API, limpar o texto, calcular a dispersão, ponderar e desenhar o gráfico. Não é preciso alternar entre planilha, editor de texto e software estatístico, e qualquer pessoa consegue rodar o mesmo código e chegar ao mesmo número.

O alcance vai além deste indicador. O mesmo caminho se repete em quase todo problema de análise econômica, e o que muda é só a aplicação:

  • Economista: constrói indicadores próprios de conjuntura e antecipa pontos de virada do ciclo.
  • Analista de mercado: transforma a discordância dos analistas em um sinal quantitativo de risco.
  • Gestor de risco: monitora a incerteza como variável de entrada em modelos de exposição e alocação.
  • Cientista de dados: aplica a mesma extração de texto a relatórios, notícias e comunicados de qualquer setor.

Em todas elas, o trabalho começa com o mesmo pipeline de coleta e tratamento que você viu aqui.

Aprenda a construir indicadores como este

A Formação em Análise Macroeconômica ensina a coletar, tratar e modelar os dados da economia brasileira em Python e R: inflação, câmbio, juros e expectativas, exatamente o tipo de pipeline deste exercício. Quem quer acesso a todas as formações tem o AM Black, a assinatura anual.

Conheça a Formação →Ver o AM Black →

Leia também:

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print
Análise Macro © 2011 / 2026

comercial@analisemacro.com.br – Rua Visconde de Pirajá, 414, Sala 718
Ipanema, Rio de Janeiro – RJ – CEP: 22410-002

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp