← Back to list

IPCA e Núcleos: Uma Análise Detalhada e Prática com Python

A inflação é um dos indicadores econômicos mais acompanhados tanto por economistas quanto pela sociedade em geral, já que afeta diretamente…

Isaque Machado · 2025-01-15 19:42 · 3 claps · 5.4 min read
#python #inflação #ipca #bacen #economia
Open on Medium ↗
Wiki topics: 🔒 · Cybersecurity

IPCA e Núcleos: Uma Análise Detalhada e Prática com Python

A inflação é um dos indicadores econômicos mais acompanhados tanto por economistas quanto pela sociedade em geral, já que afeta diretamente o poder de compra e a condução da política monetária. No Brasil, o principal indicador de inflação utilizado é o IPCA (Índice Nacional de Preços ao Consumidor Amplo), calculado pelo IBGE. Contudo, o Banco Central também utiliza uma série de núcleos do IPCA para avaliar a inflação de forma mais precisa, isolando os impactos transitórios e voláteis dos preços.

Este texto apresenta as diferenças entre o IPCA geral e seus núcleos, descrevendo os métodos estatísticos e ajustes realizados de maneira breve para identificar a tendência subjacente da inflação. Também foi incluído um código prático em Python para coletar os dados do IPCA e de seus núcleos diretamente do sistema do Banco Central.

O que é o IPCA?

O IPCA mede a variação dos preços de uma cesta de bens e serviços consumida por famílias brasileiras com renda mensal entre 1 e 40 salários mínimos, abrangendo nove grandes regiões metropolitanas. É considerado o índice oficial de inflação para o país, sendo usado como referência para as metas de inflação definidas pelo Conselho Monetário Nacional (CMN).

O cálculo do IPCA é realizado pelo IBGE, com base na coleta de preços de produtos e serviços como alimentos, energia, transporte, saúde, e outros. Os itens têm pesos diferentes, determinados pela Pesquisa de Orçamentos Familiares (POF), que reflete os hábitos de consumo da população.

Por que existem núcleos do IPCA?

Embora o IPCA seja um indicador confiável, ele pode ser afetado por choques temporários em preços de itens voláteis, como alimentos e energia. Esses choques podem distorcer a análise da inflação ao introduzir oscilações que não refletem a tendência subjacente. Para mitigar esse problema, o Banco Central utiliza os núcleos de inflação, que são indicadores derivados do IPCA, ajustados para excluir ou suavizar componentes voláteis.

Os núcleos têm como objetivos:

  • Eliminar ruídos de variações temporárias: Excluir itens que sofrem choques sazonais ou de curto prazo.
  • Capturar a tendência estrutural da inflação: Identificar os movimentos persistentes e amplos nos preços.
  • Apoiar a formulação da política monetária: Permitir ao Banco Central tomar decisões informadas, com base na análise de médio e longo prazo.

Como Coletar os Dados do IPCA e Seus Núcleos?

Os dados do IPCA e de seus núcleos podem ser coletados diretamente do Sistema Gerenciador de Séries Temporais (SGS) do Banco Central do Brasil utilizando Python. O código abaixo demonstra como realizar essa coleta, salvando os dados em um arquivo CSV e gerando gráficos para cada série:

# Criado por: Isaque Machado (isaquemac4@gmail.com) - UFSC
# Este código coleta e visualiza o IPCA e seus núcleos, gerando gráficos e salvando os dados em arquivos CSV e PNG.

# Importar as bibliotecas necessárias
from sgs import dataframe  # Biblioteca para coletar séries temporais do Banco Central
import matplotlib.pyplot as plt  # Biblioteca para criação de gráficos

# ===========================
# 1. Definição dos parâmetros
# ===========================

# Dicionário com os significados das séries
series_labels = {
    433: "IPCA",
    4466: "IPCA-MS",
    11426: "IPCA-DP",
    11427: "IPCA-MA",
    16121: "IPCA-EX2",
    16122: "IPCA-EX3",
    27838: "IPCA-EX0",
    27839: "IPCA-EX1",
}

# Códigos das séries
codes = list(series_labels.keys())

# Período das séries
start_date = "01/07/2001"  # Data inicial
end_date = "30/09/2024"    # Data final

# Caminho fictício para salvar os arquivos
diretorio_ficticio = r"C:\Caminho\Ficticio\Dados"

# ============================
# 2. Coletar e salvar os dados
# ============================

# Coletar as séries do Banco Central em um DataFrame
df = dataframe(codes, start=start_date, end=end_date)

# Salvar os dados em um arquivo CSV
caminho_csv = rf"{diretorio_ficticio}\series_ipca_nucleos.csv"
df.to_csv(caminho_csv, index=True, header=True)

# Mensagem para indicar sucesso na etapa de salvamento
print(f"Os dados das séries foram salvos em: {caminho_csv}")

# ============================
# 3. Visualizar cada série em gráficos separados
# ============================

# Configurar o estilo do gráfico
plt.style.use('ggplot')  # Estilo para gráficos limpos e legíveis

# Criar gráficos individuais para cada série
for column in df.columns:
    # Obter o significado da série
    titulo_serie = series_labels[int(column)]

    # Criar a figura
    fig, ax = plt.subplots(figsize=(10, 5))

    # Plotar a série com linha fina
    ax.plot(df.index, df[column], label=titulo_serie, linewidth=0.8, color='blue')

    # Configurações do gráfico
    ax.set_title(titulo_serie, fontsize=14, weight='bold')  # Apenas o nome da série
    ax.set_xlabel("Ano", fontsize=12)  # Rótulo do eixo X
    ax.set_ylabel("Variação (%)", fontsize=12)  # Rótulo do eixo Y
    ax.legend(fontsize=10)  # Legenda
    ax.grid(visible=True, linestyle='--', alpha=0.6)  # Grade para facilitar a leitura

    # Ajustar o layout para evitar sobreposição
    plt.tight_layout()

    # Salvar o gráfico como um arquivo PNG
    caminho_grafico = rf"{diretorio_ficticio}\grafico_serie_{column}.png"
    plt.savefig(caminho_grafico, dpi=300)

    # Mostrar o gráfico na tela
    plt.show()

    # Mensagem para indicar sucesso na etapa de salvamento do gráfico
    print(f"O gráfico da série {titulo_serie} foi salvo em: {caminho_grafico}")

Este código não apenas coleta e salva os dados do IPCA e seus núcleos em um arquivo CSV, mas também gera gráficos individuais para cada série. Cada gráfico será salvo em arquivos PNG no diretório especificado, facilitando a análise visual das flutuações de cada núcleo ao longo do tempo.

Abaixo um exemplo de como ficarão os gráficos:

Uma breve explicação acerca dos núcleos:

IPCA-Média Suavizada (IPCA-MS, Código 4466)

  • Este núcleo utiliza o método de médias aparadas com suavização, que é uma técnica estatística robusta.
  • Objetivo: Reduzir o impacto de itens cujos preços apresentam variações atípicas (outliers), que podem distorcer a análise da inflação.
  • Como funciona:
  1. Os itens do IPCA são ordenados de acordo com sua variação percentual.
  2. Os valores extremos (altas e baixas mais acentuadas) são descartados.
  3. É calculada uma média ponderada dos itens restantes, com pesos ajustados.

Núcleo de Dupla Ponderação (IPCA-DP, Código 11426)

  • Este núcleo realiza uma dupla ponderação, atribuindo pesos maiores aos itens com variações de preços mais frequentes e consistentes.
  • Objetivo: Reduzir a influência de itens voláteis, mas sem excluir nenhum componente da cesta.
  • Diferencial: Por manter todos os itens no cálculo, é útil para identificar a tendência subjacente sem perder informações relevantes.

Núcleo de Médias Aparadas (IPCA-MA, Código 11427)

  • Similar ao IPCA-MS, mas aplica um método de médias aparadas fixas:
  • Descarta uma proporção fixa (por exemplo, 20%) das maiores e menores variações de preços.
  • Calcula a média ponderada com os itens restantes.
  • Objetivo: Filtrar choques extremos de curto prazo, mantendo a simplicidade no cálculo.

Núcleo EX0 (Código 27838)

  • Este núcleo exclui alimentos no domicílio e combustíveis do cálculo do IPCA.
  • Por quê? Esses itens são fortemente influenciados por fatores externos, como safras agrícolas e preços internacionais do petróleo, que nem sempre refletem a dinâmica inflacionária interna.
  • Resultado: Um índice que foca em itens com comportamento mais estável.

Núcleo EX1 (Código 27839)

  • Adiciona uma exclusão extra ao EX0, removendo também os preços monitorados (tarifas reguladas pelo governo, como energia elétrica e transporte público).
  • Objetivo: Evitar que políticas governamentais distorçam a análise da inflação.

Núcleo EX2 (Código 16121)

  • Vai além do EX1, realizando ajustes adicionais de ponderação para suavizar a influência de itens ainda voláteis na cesta remanescente.
  • Diferencial: Permite capturar melhor a tendência de inflação estrutural.

Núcleo EX3 (Código 16122)

  • É a versão mais restritiva e refinada. Além de excluir alimentos, combustíveis e monitorados, aplica metodologias estatísticas avançadas para capturar apenas a inflação persistente.
  • Objetivo: Isolar ao máximo os choques transitórios e destacar apenas a inflação de médio e longo prazo.

Conclusão

Este texto foi elaborado com o objetivo de apresentar de forma clara e prática as diferenças entre o IPCA e seus núcleos, além de demonstrar como utilizar Python para coletar e analisar essas informações. É importante ressaltar que este é um texto informal, voltado para facilitar o entendimento e incentivar o uso dessas ferramentas por estudantes, pesquisadores e interessados no tema.

No entanto, é essencial que os leitores consultem regularmente as fontes oficiais para verificar se a metodologia do Banco Central ou do IBGE foi atualizada, já que os cálculos e interpretações dos índices podem ser ajustados ao longo do tempo.

Se você identificou algo que pode ser melhorado ou deseja sugerir correções, fique à vontade para compartilhar suas ideias! O aprendizado contínuo é parte essencial do processo.

Para mais informações sobre o IPCA e outros índices, visite:

Agradeço por sua leitura e espero que este conteúdo tenha sido útil para ampliar sua compreensão sobre os indicadores de inflação no Brasil e suas aplicações práticas.


메타데이터
post_id
f4e939f9cde2
slug
ipca-e-núcleos-uma-análise-detalhada-e-prática-com-python-f4e939f9cde2
url
https://medium.com/@isaquemac4/ipca-e-n%C3%BAcleos-uma-an%C3%A1lise-detalhada-e-pr%C3%A1tica-com-python-f4e939f9cde2
canonical_url
https://medium.com/@isaquemac4/ipca-e-n%C3%BAcleos-uma-an%C3%A1lise-detalhada-e-pr%C3%A1tica-com-python-f4e939f9cde2
author_url
https://medium.com/@isaquemac4
status
ok
fetched_at
2026-07-21 07:40:18