1. Carregar Pacotes

library(sidrar)
library(tidyverse)
library(zoo)
library(mFilter)
library(ggplot2)
library(patchwork)

2. Baixar Dados do SIDRA (PIB e Indústria)

# 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 duas séries
dados <- inner_join(pib_sa, industria_sa, by = 'date') %>%
  drop_na()

3. Calcular Taxa de Crescimento Anual (Curto Prazo)

dados <- dados %>%
  mutate(
    cresc_pib_anual = (pib / lag(pib, 4) - 1) * 100,
    cresc_industria_anual = (industria / lag(industria, 4) - 1) * 100
  )

4. Extrair Componente Cíclico pelo Filtro HP (Médio Prazo)

# Parâmetro λ = 1600 para dados trimestrais
hp_pib <- hpfilter(dados$pib, freq = 1600)
dados$ciclo_pib <- hp_pib$cycle

hp_ind <- hpfilter(dados$industria, freq = 1600)
dados$ciclo_industria <- hp_ind$cycle

5. Gerar Gráficos

# Gráfico 1: Curto Prazo
p1 <- dados %>%
  select(date, cresc_pib_anual, cresc_industria_anual) %>%
  pivot_longer(-date, names_to = "variavel", values_to = "taxa") %>%
  ggplot(aes(x = date, y = taxa, color = variavel)) +
  geom_line(linewidth = 1) +                   
  geom_hline(yintercept = 0, linetype = "dashed") +
  labs(title = "Taxa de Crescimento Anual",
       y = "Variação (%)", x = NULL) +
  theme_minimal() +
  scale_color_manual(values = c("cresc_pib_anual" = "blue", 
                                "cresc_industria_anual" = "red"))

# Gráfico 2: Médio Prazo
p2 <- dados %>%
  select(date, ciclo_pib, ciclo_industria) %>%
  pivot_longer(-date, names_to = "variavel", values_to = "ciclo") %>%
  ggplot(aes(x = date, y = ciclo, color = variavel)) +
  geom_line(linewidth = 1) +                    
  geom_hline(yintercept = 0, linetype = "dashed") +
  labs(title = "Componente Cíclico (Filtro HP)",
       y = "Desvio da tendência", x = "Trimestre") +
  theme_minimal() +
  scale_color_manual(values = c("ciclo_pib" = "blue", 
                                "ciclo_industria" = "red"))

# Combinar os gráficos
p1 / p2 + plot_annotation(
  title = "Comparação entre PIB e Indústria",
  subtitle = "Curto prazo (acima) vs. Médio prazo (abaixo)"
)

6. Resumo da Análise

Curto prazo (taxa anual): A proximidade entre as linhas azul (PIB) e vermelha (Indústria) indica o grau de sincronia entre o setor e a economia como um todo. Setores mais sensíveis ao ciclo econômico (como a Indústria) tendem a apresentar 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 de longo prazo. Quando o ciclo da Indústria e o ciclo do PIB 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.

Atenção: A análise dos últimos 2 trimestres deve ser vista com cautela devido ao uso do Filtro HP (Hodrick-Prescott), que sofre com o “problema de ponta” (end-point bias).