Este relatório analisa a relação entre o comportamento da indústria e do PIB agregado no Brasil, em duas perspectivas temporais:
O objetivo é avaliar o grau de sincronia entre o setor industrial e a economia como um todo e identificar em que medida a indústria amplifica ou antecipa os ciclos econômicos.
As séries são trimestrais, com ajuste sazonal, obtidas da Tabela 1621 do SIDRA/IBGE (Contas Nacionais Trimestrais): índices de volume do PIB a preços de mercado e da Indústria.
library(sidrar)
library(tidyverse)
library(zoo)
# PIB a preços de mercado (com ajuste sazonal)
pib_sa <- get_sidra(api = '/t/1621/n1/all/v/all/p/all/c11255/90707/d/v584%202') %>%
mutate(date = as.yearqtr(`Trimestre (Código)`, format = '%Y%q')) %>%
rename(pib = Valor) %>%
select(date, pib)
# Indústria total (com ajuste sazonal)
industria_sa <- get_sidra(api = '/t/1621/n1/all/v/all/p/all/c11255/90687/d/v584%202') %>%
mutate(date = as.yearqtr(`Trimestre (Código)`, format = '%Y%q')) %>%
rename(industria = Valor) %>%
select(date, industria)
# Juntar as séries
dados <- inner_join(pib_sa, industria_sa, by = 'date') %>%
drop_na()
A amostra final cobre o período de 1996 Q1 a 2026 Q2, totalizando 122 trimestres.
Variação percentual de cada índice em relação ao mesmo trimestre do ano anterior:
dados <- dados %>%
mutate(
cresc_pib_anual = (pib / lag(pib, 4) - 1) * 100,
cresc_industria_anual = (industria / lag(industria, 4) - 1) * 100
)
Aplicamos uma média móvel centralizada de 4 trimestres, tanto às séries em nível (para estimar a tendência) quanto às taxas de crescimento (para suavizar os gráficos):
dados <- dados %>%
mutate(
pib_mm4 = rollmean(pib, k = 4, fill = NA, align = "center"),
industria_mm4 = rollmean(industria, k = 4, fill = NA, align = "center"),
cresc_pib_mm4 = rollmean(cresc_pib_anual, k = 4, fill = NA, align = "center"),
cresc_industria_mm4 = rollmean(cresc_industria_anual, k = 4, fill = NA, align = "center")
)
O ciclo é medido como o desvio da série em nível em relação à sua média móvel centralizada:
dados <- dados %>%
mutate(
ciclo_pib_mm = pib - pib_mm4,
ciclo_industria_mm = industria - industria_mm4
)
dados %>%
select(date, cresc_pib_anual, cresc_industria_anual,
cresc_pib_mm4, cresc_industria_mm4) %>%
pivot_longer(-date, names_to = "variavel", values_to = "taxa") %>%
mutate(
serie = if_else(str_detect(variavel, "pib"), "PIB", "Indústria"),
tipo = if_else(str_detect(variavel, "mm4"), "Suavizada (MM4)", "Original")
) %>%
ggplot(aes(x = as.Date(date), y = taxa, color = serie, linetype = tipo)) +
geom_line(linewidth = 0.9) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey50") +
scale_color_manual(values = c("PIB" = "blue", "Indústria" = "red")) +
scale_linetype_manual(values = c("Original" = "solid", "Suavizada (MM4)" = "dashed")) +
scale_x_date(date_breaks = "5 years", date_labels = "%Y") +
labs(x = NULL, y = "Variação (%)", color = NULL, linetype = NULL) +
theme_minimal() +
theme(legend.position = "bottom")
Taxa de crescimento anual do PIB e da Indústria: séries originais e suavizadas por média móvel de 4 trimestres.
dados %>%
select(date, ciclo_pib_mm, ciclo_industria_mm) %>%
pivot_longer(-date, names_to = "variavel", values_to = "ciclo") %>%
mutate(serie = if_else(variavel == "ciclo_pib_mm", "PIB", "Indústria")) %>%
ggplot(aes(x = as.Date(date), y = ciclo, color = serie)) +
geom_line(linewidth = 0.9) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey50") +
scale_color_manual(values = c("PIB" = "blue", "Indústria" = "red")) +
scale_x_date(date_breaks = "5 years", date_labels = "%Y") +
labs(x = NULL, y = "Desvio da tendência (pontos do índice)", color = NULL) +
theme_minimal() +
theme(legend.position = "bottom")
Componente cíclico do PIB e da Indústria: desvio em relação à média móvel centralizada de 4 trimestres (em pontos do índice).
dados %>%
select(date, cresc_pib_anual, cresc_industria_anual,
ciclo_pib_mm, ciclo_industria_mm) %>%
slice_tail(n = 8) %>%
knitr::kable(
digits = 2,
col.names = c("Trimestre", "Cresc. PIB (%)", "Cresc. Indústria (%)",
"Ciclo PIB", "Ciclo Indústria"),
caption = "Taxas de crescimento anual e componentes cíclicos nos últimos 8 trimestres."
)
| Trimestre | Cresc. PIB (%) | Cresc. Indústria (%) | Ciclo PIB | Ciclo Indústria |
|---|---|---|---|---|
| 2024 Q3 | 3.69 | -0.01 | -0.25 | -7.16 |
| 2024 Q4 | 3.38 | 0.29 | -1.34 | -19.76 |
| 2025 Q1 | 4.00 | 12.37 | 0.20 | 14.68 |
| 2025 Q2 | 2.61 | 10.61 | -0.06 | -3.63 |
| 2025 Q3 | 1.81 | 10.61 | -0.72 | -2.22 |
| 2025 Q4 | 1.99 | 13.80 | -1.16 | -4.92 |
| 2026 Q1 | 1.80 | 0.22 | NA | NA |
| 2026 Q2 | 1.92 | 6.41 | NA | NA |
Curto prazo (taxa anual): a proximidade entre as trajetórias do PIB e da Indústria indica o grau de sincronia entre o setor e a economia como um todo. A indústria funciona como um amplificador de volatilidade: sobe mais nas fases boas e cai mais nas crises, apresentando flutuações mais amplas que o PIB agregado, especialmente em períodos de crise ou recuperação.
Médio prazo (componente cíclico): o sinal e a magnitude do ciclo mostram se o setor está operando acima ou abaixo de sua tendência. Os desvios da indústria em relação à sua tendência são mais pronunciados e mais persistentes do que os do PIB. Quando os dois ciclos se movem na mesma direção, há evidência de co-movimento setorial; divergências podem indicar choques específicos do setor ou defasagens na transmissão de choques macroeconômicos.
Observação metodológica: a média móvel de 4 trimestres é uma suavização simples, que não exige a escolha de um parâmetro λ como no filtro HP. Ela é adequada para identificar ciclos de curto-médio prazo, mas não substitui uma decomposição estrutural mais robusta para análises de longo prazo. Além disso, por ser centralizada, ela não produz estimativas para os dois trimestres mais recentes da amostra — os resultados das pontas devem ser lidos com cautela.