Medindo o hiato do produto no Brasil

O Hiato do produto é um indicador que visa medir as oscilações da economia, representando o quão distante ou próximo a economia está do seu potencial de crescimento. É possível realizar essa comparação por da diferença do PIB potencial com o PIB efetivo e no post de hoje, vamos mostrar os métodos utilizados para calcular o hiato do produto utilizando o R.

O que é Hiato do produto?

O PIB potencial é uma variável não observável, que mensura qual o potencial que um determinado pais pode produzir, isto é, caso não haja nenhuma ociosidade em seus fatores de produção. Por outro lado, o PIB efetivo é aquele que representa o valor histórico e ocorrido do PIB em um país.

O Hiato do produto surge da diferença entre o PIB Potencial e o PIB efetivo, e o seu conhecimento possibilita diversos benefícios.

Como medir o Hiato do produto?

Como dito, o Hiato do produto deve ser mensurado por meio da diferença entre o PIB Potencial e do PIB Efetivo, entretanto, é necessário obter formas de calcular o PIB Potencial. Entre as diversas formas, existem métodos estatísticos, que buscam analisar a tendencia da série do PIB, enquanto há uma abordagem econômica, por meio do calculo de uma função de produção.

Primeiro, iremos importar os dados do PIB a preços de mercado, sazonalmente ajustado (PIB efetivo) para computar o PIB potencial, realizaremos isso utilizando o R.

</pre>
library(tidyverse)
library(zoo)

pib <- sidrar::get_sidra(api = "/t/1621/n1/all/v/all/p/all/c11255/90707/d/v584%202") |>
dplyr::mutate(
data = zoo::as.yearqtr(`Trimestre (Código)`, format = "%Y%q"),
tempo = dplyr::row_number()
) |>
dplyr::select(data, "pib" = Valor) |>
dplyr::as_tibble()

# Gráfico de linha do PIB
cores <- c( # vetor com códigos de cores
"#282f6b",
"#b22200",
"#eace3f",
"#224f20"
)

g1 <- pib %>% # tabela de dados
ggplot2::ggplot() + # camada inicial
ggplot2::aes(x = data, y = pib, color = "PIB") + # especificação de eixos e título da série
ggplot2::geom_line(size = 1) + # adiciona linha com observações
ggplot2::scale_color_manual(values = cores) + # define cor da(s) linha(s)
ggplot2::theme(legend.position = "bottom") + # posiciona a legenda embaixo
ggplot2::labs( # textos de informação do gráfico
title = "PIB do Brasil",
subtitle = "Preços de mercado, nº índice sazonalmente ajustado (média de 1995 = 100)",
y = "Índice",
x = NULL,
color = NULL,
caption = "Dados: IBGE | Elaboração: analisemacro.com.br"
)
g1 # plota o gráfico
<pre>

Tendência

É possível estimar o PIB Potencial a partir da série do PIB efetivo calculando sua tendência por meio de uma regressão linear (MQO) . É possível usar uma tendência linear ou quadrática.

Tendência Linear


# Tendência linear --------------------------------------------------------

pib <- pib |>
mutate(
# Transformação logarítmica do PIB
ln_pib = log(pib),
# Vetor de 1 até T indicando ordenação temporal das observações
tempo = dplyr::row_number()
)

# Regressão linear do PIB contra o tempo
reg1 <- lm(
formula = ln_pib ~ tempo, # especificação do modelo no formato de fórmula
data = pib # fonte dos dados
)

# Salva a tendência estimada
potencial_tl <- reg1 |>
fitted() |> # extrai os valores estimados
exp() # reverte a transformação logarítmica

# Atualiza gráfico base com nova linha da tendência
g1 +
ggplot2::geom_line(
mapping = ggplot2::aes(y = potencial_tl, color = "Tendência linear"),
size = 1
)

Tendência quadrática

</pre>
# Tendência quadrática ----------------------------------------------------

# Regressão linear do PIB contra o tempo + tempo^2 (veja help de I)
reg2 <- lm(formula = ln_pib ~ tempo + I(tempo^2), data = pib)

# Salva a tendência estimada
potencial_tq <- reg2 |>
fitted() |> # extrai os valores estimados
exp() # reverte a transformação logarítmica

# Atualiza gráfico base com nova linha da tendência
g1 +
ggplot2::geom_line(
mapping = ggplot2::aes(y = potencial_tq, color = "Tendência quadrática"),
size = 1
)
<pre>

Filtro HP

Hodrick–Prescott filter ou Hodrick–Prescott decomposition é um método matemático criado com o objetivo de servir de ferramenta de análise do ciclo econômico, possibilitando a decomposição de uma série temporal em elementos de tendência e ciclo.

O filtro HP separa uma série temporal em dois componentes: tendência (também chamado de crescimento) e ciclo. Dessa forma, Hodrick e Prescott (1997) propõem uma forma de criar uma equação, na qual isola-se o ciclo da série temporal e minimiza-se a tendência.

 

</span>

# Filtro HP ---------------------------------------------------------------

# Converte dados para classe ts
dados_ts <- ts( # função para criar um objeto de classe ts
data = pib$ln_pib, # vetor da série do PIB
start = c( # vetor com dois elementos: ano e trimestre de início da série
lubridate::year(min(pib$data)), # ano (formato AAAA)
lubridate::quarter(min(pib$data)) # trimestre (formato T)
),
frequency = 4 # frequência da série (trimestral = 4)
)

# Calcula o filtro HP
filtro_hp <- mFilter::hpfilter(x = dados_ts, type = "lambda", freq = 1600)

# Salva a tendência calculada
potencial_hp <- filtro_hp |>
fitted() |> # extrai os valores estimados
exp() |> # reverte a transformação logarítmica
as.vector() # converte de classe ts para vetor numérico

# Atualiza gráfico base com nova linha da tendência
g1 +
ggplot2::geom_line(
mapping = ggplot2::aes(y = potencial_hp, color = "Tendência HP"),
size = 1
)
<pre>

Filtro de Hamilton

Este método é uma aplicação de uma especificação de um modelo de regressão linear (MQO) para extrair componentes de tendência e ciclo de uma série temporal, proposto por Hamilton (2017) como uma alternativa ao filtro HP.

</pre>
# Filtro de Hamilton ------------------------------------------------------

# Regressão linear aplicando a especificação de Hamilton
reg3 <- lm(
formula = ln_pib ~ lag(ln_pib, 8) + lag(ln_pib, 9) + lag(ln_pib, 10) + lag(ln_pib, 11),
data = pib,
na.action = na.omit # omite os NAs criados pela função lag()
)

# Salva a tendência estimada
potencial_h <- reg3 |>
fitted() |> # extrai os valores estimados
exp() # reverte a transformação logarítmica

# Adiciona 11 NAs no início da série para corresponder ao tamanho do vetor do PIB
potencial_h <- c(rep(NA, 11), potencial_h)

# Atualiza gráfico base com nova linha da tendência
g1 +
ggplot2::geom_line(
mapping = ggplot2::aes(y = potencial_h, color = "Tendência Hamilton"),
size = 1
)
<pre>

Cálculo do Hiato

Com o resultado de cada método proposto acima, podemos calcular o Hiato do produto por meio da diferença entre o PIB Potencial estimado em relação ao PIB Efetivo. Podemos ainda comparar em um gráfico a relação entre os valores obtidos de cada método por meio do código abaixo.

</pre>
# Calculando o hiato ------------------------------------------------------

# Cálculo do hiato do produto
hiato <- pib |>
dplyr::select("data", "pib") |> # seleciona colunas de interesse
dplyr::mutate( # cria novas colunas com cálculo do hiato
`Tendência Linear` = (pib / potencial_tl - 1) * 100,
`Tendência Quadrática` = (pib / potencial_tq - 1) * 100,
`Filtro HP` = (pib / potencial_hp - 1) * 100,
`Filtro de Hamilton` = (pib / potencial_h - 1) * 100
) |>
tidyr::pivot_longer( # transforma a tabela pro formato "longo" (mais linhas e menos colunas)
cols = 3:6, # colunas a serem transformadas
names_to = "variavel", # nome da coluna que armazenará os nomes das colunas 3:6
values_to = "valor" # nome da coluna que armazenará os valores das colunas 3:6
)

# Visualização de dados: gráfico de linha dos hiatos estimados
hiato |>
ggplot2::ggplot() +
ggplot2::aes(x = data, y = valor, color = variavel) +
ggplot2::geom_hline(yintercept = 0, linetype = "dashed") + # gera uma linha horizontal quando y = 0
ggplot2::geom_line(size = 1) +
ggplot2::scale_color_manual(values = cores) +
ggplot2::theme(legend.position = "top") +
ggplot2::labs(
title = "Hiato do Produto - Brasil",
subtitle = "Cálculos do autor a partir do PIB encadeado dessazonalidado (média 1995 = 100)",
y = "%",
x = NULL,
color = NULL,
caption = "Elaboração: analisemacro.com.br \n Nota: hiato medido como a diferença % do PIB efetivo em relação ao potencial."
)

_____________________________________

Quer aprender mais?

Seja um aluno da nossa trilha de Macroeconomia Aplicada e aprenda a criar projetos voltados para a Macroeconomia

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Coletando dados regionais do CAGED no Python

Os dados regionais do CAGED permitem analisar o mercado de trabalho de forma detalhada, em termos de setores, educação, rendimento e características pessoais dos trabalhadores brasileiros. Neste exercício mostramos como acessar estas informações online via Python.

Coletando dados de Setores Censitários do Censo 2022 no Python

Dados sobre a demografia e o território são primordiais para definir e implementar políticas públicas, áreas de atuação comercial e/ou estratégias de marketing. Sendo assim, saber usar os dados do Censo 2022 pode trazer vantagens competitivas. Neste exercício mostramos como obter os dados da Malha de Setores Censitários no formato vetorial (GeoJson) usando o Python.

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.