1. Introdução

O principal objetivo deste relatório visa estimar a sustentabilidade da Dívida Pública utilizando indicadores fiscais durante o período de 2003.01 - 2023.12, através de duas abordagens metodológicas.

Primeiramente descrevemos as bases de dados utilizadas. Em seguida, realizamos tratamentos nos dados e apresentamos uma análise estatística descritiva. Estimamos um modelo de MQO para calcular elasticidades e, posteriormente, um modelo VEC para analisar as trajetórias da dívida pública. Por fim, foram apresentadas as conclusões.

O trabalho é baseado 100% na metodologia abordada na tese de doutorado “Sustentabilidade da Dívida Pública, Regras Fiscais e Multiplicadores: Teoria, Experiência Internacional e o Caso Brasileiro’’, defendida por Helder Lara Ferreira Filho, em 07/06/2023, e contempla o trabalho de conclusão do curso de Econometria, ministrada pelo grande Professor Sinézio Fernandes Maia.

2. Bases de Dados

As seguintes bases de dados foram utilizadas ao longo do trabalho:

#Criando pasta para salvar planilhas que serão baixadas
dir.create("sustentabilidade")
## Warning in dir.create("sustentabilidade"): 'sustentabilidade' already exists
#Baixando planilhas do BCB:
  
divida_liquida_setor_publico <- rbcb::get_series(4503, start_date = "2003-01-01", end_date = "2023-12-01")
write.table(divida_liquida_setor_publico, file = "sustentabilidade/divida_liquida_setor_publico.txt", sep = ";")

despesa_primaria <- rbcb::get_series(7547, start_date = "2003-01-01", end_date = "2023-12-01")
write.table(despesa_primaria, file = "sustentabilidade/despesa_primaria.txt", sep = ";")

juros_nominais <- rbcb::get_series(4390, start_date = "2003-01-01", end_date = "2023-12-01")
write.table(juros_nominais, file = "sustentabilidade/juros_nominais.txt", sep = ";")

receita_primaria <- rbcb::get_series(7544, start_date = "2003-01-01", end_date = "2023-12-01")
write.table(receita_primaria, file = "sustentabilidade/receita_primaria.txt", sep = ";")

resultado_primario_nfsp <- rbcb::get_series(5364, start_date = "2002-01-01", end_date = "2023-12-01")
write.table(resultado_primario_nfsp, file = "sustentabilidade/resultado_primario_nfsp.txt", sep = ";")

pib <- rbcb::get_series(4382, start_date = "2003-01-01", end_date = "2023-12-01")
write.table(pib, file = "sustentabilidade/pib.txt", sep = ";")

inflacao_acum <- rbcb::get_series(13522, start_date = "2003-01-01", end_date = "2023-12-01")
write.table(inflacao_acum, file = "sustentabilidade/inflacao_acum.txt", sep = ";")
#Dívida Líquida do Setor Público (DLSP, % PIB) 
divida_liquida_setor_publico <- read.table("sustentabilidade/divida_liquida_setor_publico.txt", sep = ";")
names(divida_liquida_setor_publico)[2] <- "valor"
divida_liquida_setor_publico = divida_liquida_setor_publico$valor
divida_liquida_setor_publico_ts <- ts(divida_liquida_setor_publico, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(divida_liquida_setor_publico_ts, main = "Dívida Líquida do Setor Público (% PIB)", ylab = "% PIB", xlab = "Tempo")

#Receita Primária do Governo Central (dados mensais)
#7544
receita_primaria <- read.table("sustentabilidade/receita_primaria.txt", sep = ";")
names(receita_primaria)[2] <- "valor"
receita_primaria_ts <- ts(receita_primaria$valor, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(receita_primaria_ts, main = "Receita Primária do Governo Central", ylab = "Valor", xlab = "Tempo")

#Despesa Primária do Governo Central (dados mensais)
#7547
despesa_primaria <- read.table("sustentabilidade/despesa_primaria.txt", sep = ";")
names(despesa_primaria)[2] <- "valor"
despesa_primaria_ts <- ts(despesa_primaria$valor, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(despesa_primaria_ts, main = "Despesa Primária do Governo Central", ylab = "Valor", xlab = "Tempo")

#Resultado primario - NFSP sem desvalorização cambial - Fluxo mensal corrente (u.m.c.) - Resultado primário - Total - Setor público consolidado
resultado_primario_nfsp <- read.table("sustentabilidade/resultado_primario_nfsp.txt", sep = ";")
names(resultado_primario_nfsp)[2] <- "valor"
resultado_primario_nfsp_ts <- ts(resultado_primario_nfsp$valor, frequency = 12, start = c(2002, 1), end = c(2023, 12))
plot(resultado_primario_nfsp_ts, main = "Resultado Primário - NFSP sem Desvalorização Cambial", ylab = "Valor", xlab = "Tempo")

#  ACUMULANDO O nfsp
resultado_primario_nfsp_acum=NULL
i=NULL
n=length(resultado_primario_nfsp_ts)-12
for (i in 1:n){
  resultado_primario_nfsp_acum[i]=sum(resultado_primario_nfsp_ts[(i+1):(i+12)])*(-1)
}
resultado_primario_nfsp_acum_ts <- ts(resultado_primario_nfsp_acum,frequency = 12,start = c(2003,1),)
resultado_primario_nfsp_acum_ts <- ts(resultado_primario_nfsp_acum, frequency = 12, start = c(2003, 1), end = c(2023, 12))
resultado_primario_nfsp_acum_ts <- ts(resultado_primario_nfsp_acum, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(resultado_primario_nfsp_acum_ts, main = "Resultado Primário - NFSP sem Desvalorização Cambial Acumulado", ylab = "Valor", xlab = "Tempo")

#PIB acumulado dos últimos 12 meses - Valores correntes (R$ milhões)
#4382
pib <- read.table("sustentabilidade/pib.txt", sep = ";")
names(pib)[2] <- "valor"
pib_ts <- ts(pib$valor, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(pib_ts, main = "PIB Real", ylab = "Valor", xlab = "Tempo")

#Despesa Primária do Governo Central, incluindo juros nominais (dados mensais)
#Selic acumulada no mes 
#4390
juros_nominais <- read.table("sustentabilidade/juros_nominais.txt", sep = ";")
names(juros_nominais)[2] <- "valor"
juros_nominais_ts <- ts(juros_nominais$valor, frequency = 12, start = c(2003, 1), end = c(2012, 12))
plot(juros_nominais_ts, main = "Juros Nominais", ylab = "Valor", xlab = "Tempo")

# Adicione a despesa primária ao valor dos juros nominais
despesa_primaria_juros <- despesa_primaria_ts + juros_nominais_ts
# Transforme em uma série temporal (ts)
despesa_primaria_juros_ts <- ts(despesa_primaria_juros, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(despesa_primaria_juros_ts, main = "Despesa Primária do Governo Central (Incluindo Juros Nominais)", ylab = "Valor", xlab = "Tempo")

#Receita Primária do Governo Central, incluindo juros nominais (dados mensais):
receita_primaria_juros <- receita_primaria_ts + juros_nominais_ts
receita_primaria_juros_ts <- ts(receita_primaria_juros, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(receita_primaria_juros_ts, main = "Receita Primária do Governo Central (Incluindo Juros Nominais)", ylab = "Valor", xlab = "Tempo")

#inflação (acumulada nos últimos 12 meses, com dados do Banco Central)
#433    IPCA - Índice de Preços ao Consumidor Amplo

inflacao_acum <- read.table("sustentabilidade/inflacao_acum.txt", sep = ";")
names(inflacao_acum)[2] <- "valor"
inflacao_acum = inflacao_acum$valor
inflacao_acum_ts <- ts(inflacao_acum, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(inflacao_acum_ts, main = "Inflação (IPCA)", ylab = "Valor", xlab = "Tempo")

#YVAR - Desvio do produto em relação ao produto potencial (yvar, com dados do IBC-Br do Banco Central)
#Portanto, calcularemos o DESVIO DO PRODUTO EM RELAÇÃO AO PRODUTO POTENCIAL
#Carregar:

PibR = read.table("sustentabilidade/pibR.txt", sep = ";")
pib_ts<-ts(PibR,frequency=12,start=c(2003,1), end=c(2023,12))
plot(pib_ts, main = "PIB Real", ylab = "Valor", xlab = "Tempo")

library(mFilter)

#Aplicando o filtro HP para calcular o hiato do PIB
Pib.hp<-hpfilter(na.omit(pib_ts, type='lambda', freq=14400))
hiato<-Pib.hp$cycle
hiato<-hiato/pib_ts*100
write.table(hiato, file = "sustentabilidade/hiato.txt", sep = ";")
hiato <- read.table("sustentabilidade/hiato.txt", sep = ";")
names (hiato)
## [1] "pib_ts"
hiato <- ts(hiato, frequency = 12, start = c(2003, 1), end = c(2023, 12))
names(hiato)[1] <- "data"
names(hiato)[2] <- "valor"
hiato_ts <- ts(hiato, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(hiato_ts, main = "Hiato do PIB", ylab = "Hiato (%)", xlab = "Tempo")

#GVAR - Desvio dos gastos primários do governo central em relação à sua tendência (gvar, em proporção do PIB, com dados da Secretaria do Tesouro Nacional e do Banco Central)

# Aplicar o filtro Hodrick-Prescott (HP) para encontrar a tendência
despesa_hp <- hpfilter(despesa_primaria_ts, type = "lambda", freq = 14400)
# Calcular o ciclo, que é a diferença entre a série real e a tendência
gvar_ciclo <- despesa_hp$cycle

# Normalizar em proporção ao PIB, assumindo que você tem uma série `pib`
gvar <- (gvar_ciclo / pib_ts) * 100

# Transformar em série temporal
gvar_ts <- ts(gvar, frequency = 12, start = c(2003, 1), end = c(2023, 12))


#Gvar = desvio dos gastos primários do governo central em relação à sua tendência

gvart = read.table("sustentabilidade/gvar.txt", sep = ";")

# Plote para visualizar
plot(gvar_ts, main = "Desvio dos Gastos Primários do Governo Central em Relação à Tendência", ylab = "Gvar (% do PIB)", xlab = "Tempo")

# Índice de commodities excluindo os combustíveis em relação à sua tendência (com dados do Fundo Monetário Internacional)
#Carregar p planilha de Non-Fuel Commodities Price Index baixada no site do FMI
#https://data.imf.org/?sk=471dddf8-d8a7-499a-81ba-5b332c01f8b9


commodities <- read.table("sustentabilidade/commodities.csv", sep = ";")

#Verificar estrutura antes de aplicar o filtro HP
names(commodities)
##   [1] "Country.Name"   "Country.Code"   "Commodity.Name" "Commodity.Code"
##   [5] "Unit.Name"      "Unit.Code"      "Attribute"      "X2003"         
##   [9] "X2003Q1"        "X2003M1"        "X2003M2"        "X2003M3"       
##  [13] "X2003Q2"        "X2003M4"        "X2003M5"        "X2003M6"       
##  [17] "X2003Q3"        "X2003M7"        "X2003M8"        "X2003M9"       
##  [21] "X2003Q4"        "X2003M10"       "X2003M11"       "X2003M12"      
##  [25] "X2004"          "X2004Q1"        "X2004M1"        "X2004M2"       
##  [29] "X2004M3"        "X2004Q2"        "X2004M4"        "X2004M5"       
##  [33] "X2004M6"        "X2004Q3"        "X2004M7"        "X2004M8"       
##  [37] "X2004M9"        "X2004Q4"        "X2004M10"       "X2004M11"      
##  [41] "X2004M12"       "X2005"          "X2005Q1"        "X2005M1"       
##  [45] "X2005M2"        "X2005M3"        "X2005Q2"        "X2005M4"       
##  [49] "X2005M5"        "X2005M6"        "X2005Q3"        "X2005M7"       
##  [53] "X2005M8"        "X2005M9"        "X2005Q4"        "X2005M10"      
##  [57] "X2005M11"       "X2005M12"       "X2006"          "X2006Q1"       
##  [61] "X2006M1"        "X2006M2"        "X2006M3"        "X2006Q2"       
##  [65] "X2006M4"        "X2006M5"        "X2006M6"        "X2006Q3"       
##  [69] "X2006M7"        "X2006M8"        "X2006M9"        "X2006Q4"       
##  [73] "X2006M10"       "X2006M11"       "X2006M12"       "X2007"         
##  [77] "X2007Q1"        "X2007M1"        "X2007M2"        "X2007M3"       
##  [81] "X2007Q2"        "X2007M4"        "X2007M5"        "X2007M6"       
##  [85] "X2007Q3"        "X2007M7"        "X2007M8"        "X2007M9"       
##  [89] "X2007Q4"        "X2007M10"       "X2007M11"       "X2007M12"      
##  [93] "X2008"          "X2008Q1"        "X2008M1"        "X2008M2"       
##  [97] "X2008M3"        "X2008Q2"        "X2008M4"        "X2008M5"       
## [101] "X2008M6"        "X2008Q3"        "X2008M7"        "X2008M8"       
## [105] "X2008M9"        "X2008Q4"        "X2008M10"       "X2008M11"      
## [109] "X2008M12"       "X2009"          "X2009Q1"        "X2009M1"       
## [113] "X2009M2"        "X2009M3"        "X2009Q2"        "X2009M4"       
## [117] "X2009M5"        "X2009M6"        "X2009Q3"        "X2009M7"       
## [121] "X2009M8"        "X2009M9"        "X2009Q4"        "X2009M10"      
## [125] "X2009M11"       "X2009M12"       "X2010"          "X2010Q1"       
## [129] "X2010M1"        "X2010M2"        "X2010M3"        "X2010Q2"       
## [133] "X2010M4"        "X2010M5"        "X2010M6"        "X2010Q3"       
## [137] "X2010M7"        "X2010M8"        "X2010M9"        "X2010Q4"       
## [141] "X2010M10"       "X2010M11"       "X2010M12"       "X2011"         
## [145] "X2011Q1"        "X2011M1"        "X2011M2"        "X2011M3"       
## [149] "X2011Q2"        "X2011M4"        "X2011M5"        "X2011M6"       
## [153] "X2011Q3"        "X2011M7"        "X2011M8"        "X2011M9"       
## [157] "X2011Q4"        "X2011M10"       "X2011M11"       "X2011M12"      
## [161] "X2012"          "X2012Q1"        "X2012M1"        "X2012M2"       
## [165] "X2012M3"        "X2012Q2"        "X2012M4"        "X2012M5"       
## [169] "X2012M6"        "X2012Q3"        "X2012M7"        "X2012M8"       
## [173] "X2012M9"        "X2012Q4"        "X2012M10"       "X2012M11"      
## [177] "X2012M12"       "X2013"          "X2013Q1"        "X2013M1"       
## [181] "X2013M2"        "X2013M3"        "X2013Q2"        "X2013M4"       
## [185] "X2013M5"        "X2013M6"        "X2013Q3"        "X2013M7"       
## [189] "X2013M8"        "X2013M9"        "X2013Q4"        "X2013M10"      
## [193] "X2013M11"       "X2013M12"       "X2014"          "X2014Q1"       
## [197] "X2014M1"        "X2014M2"        "X2014M3"        "X2014Q2"       
## [201] "X2014M4"        "X2014M5"        "X2014M6"        "X2014Q3"       
## [205] "X2014M7"        "X2014M8"        "X2014M9"        "X2014Q4"       
## [209] "X2014M10"       "X2014M11"       "X2014M12"       "X2015"         
## [213] "X2015Q1"        "X2015M1"        "X2015M2"        "X2015M3"       
## [217] "X2015Q2"        "X2015M4"        "X2015M5"        "X2015M6"       
## [221] "X2015Q3"        "X2015M7"        "X2015M8"        "X2015M9"       
## [225] "X2015Q4"        "X2015M10"       "X2015M11"       "X2015M12"      
## [229] "X2016"          "X2016Q1"        "X2016M1"        "X2016M2"       
## [233] "X2016M3"        "X2016Q2"        "X2016M4"        "X2016M5"       
## [237] "X2016M6"        "X2016Q3"        "X2016M7"        "X2016M8"       
## [241] "X2016M9"        "X2016Q4"        "X2016M10"       "X2016M11"      
## [245] "X2016M12"       "X2017"          "X2017Q1"        "X2017M1"       
## [249] "X2017M2"        "X2017M3"        "X2017Q2"        "X2017M4"       
## [253] "X2017M5"        "X2017M6"        "X2017Q3"        "X2017M7"       
## [257] "X2017M8"        "X2017M9"        "X2017Q4"        "X2017M10"      
## [261] "X2017M11"       "X2017M12"       "X2018"          "X2018Q1"       
## [265] "X2018M1"        "X2018M2"        "X2018M3"        "X2018Q2"       
## [269] "X2018M4"        "X2018M5"        "X2018M6"        "X2018Q3"       
## [273] "X2018M7"        "X2018M8"        "X2018M9"        "X2018Q4"       
## [277] "X2018M10"       "X2018M11"       "X2018M12"       "X2019"         
## [281] "X2019Q1"        "X2019M1"        "X2019M2"        "X2019M3"       
## [285] "X2019Q2"        "X2019M4"        "X2019M5"        "X2019M6"       
## [289] "X2019Q3"        "X2019M7"        "X2019M8"        "X2019M9"       
## [293] "X2019Q4"        "X2019M10"       "X2019M11"       "X2019M12"      
## [297] "X2020"          "X2020Q1"        "X2020M1"        "X2020M2"       
## [301] "X2020M3"        "X2020Q2"        "X2020M4"        "X2020M5"       
## [305] "X2020M6"        "X2020Q3"        "X2020M7"        "X2020M8"       
## [309] "X2020M9"        "X2020Q4"        "X2020M10"       "X2020M11"      
## [313] "X2020M12"       "X2021"          "X2021Q1"        "X2021M1"       
## [317] "X2021M2"        "X2021M3"        "X2021Q2"        "X2021M4"       
## [321] "X2021M5"        "X2021M6"        "X2021Q3"        "X2021M7"       
## [325] "X2021M8"        "X2021M9"        "X2021Q4"        "X2021M10"      
## [329] "X2021M11"       "X2021M12"       "X2022"          "X2022Q1"       
## [333] "X2022M1"        "X2022M2"        "X2022M3"        "X2022Q2"       
## [337] "X2022M4"        "X2022M5"        "X2022M6"        "X2022Q3"       
## [341] "X2022M7"        "X2022M8"        "X2022M9"        "X2022Q4"       
## [345] "X2022M10"       "X2022M11"       "X2022M12"       "X2023"         
## [349] "X2023Q1"        "X2023M1"        "X"
#Está tudo completamente bagunçado. 

##Tratando os dados da planilha de commodities

# Carregar bibliotecas necessárias
library(readr)
library(tidyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(zoo)  # Para manipular datas mensais
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
# Filtrar apenas o índice "Non-Fuel index", removendo espaços extras
non_fuel_data <- commodities %>%
  filter(trimws(`Commodity.Name`) == "Non-Fuel index")

# Converter os dados para o formato longo, mantendo apenas a data e o valor
non_fuel_long <- non_fuel_data %>%
  pivot_longer(cols = -c(`Country.Name`, `Country.Code`, `Commodity.Name`, `Commodity.Code`, `Unit.Name`, `Unit.Code`, `Attribute`),
               names_to = "date",
               values_to = "valor") %>%
  select(date, valor) %>%
  drop_na()

# Remover o prefixo "X" das datas
non_fuel_long$date <- gsub("^X", "", non_fuel_long$date)

# Filtrar apenas os períodos mensais (por exemplo, "2003M1", "2023M1")
non_fuel_long <- non_fuel_long %>%
  filter(grepl("^\\d{4}M\\d{1,2}$", date))

# Converter as datas de strings no formato `YYYYMmm` para objetos `Date`
non_fuel_long$date <- as.Date(as.yearmon(non_fuel_long$date, format = "%YM%m"))

# Ordenar os dados por data
non_fuel_long <- non_fuel_long %>%
  arrange(date)

# Visualizar os dados transformados
head(non_fuel_long)
## # A tibble: 6 × 2
##   date       valor
##   <date>     <dbl>
## 1 2003-01-01  55.3
## 2 2003-02-01  55.9
## 3 2003-03-01  55.5
## 4 2003-04-01  55.7
## 5 2003-05-01  56.3
## 6 2003-06-01  56.2
commodities <- non_fuel_long
commodities_ts <- ts(commodities$valor, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(commodities_ts, main = "Índice de Commodities Excluindo Combustíveis", ylab = "Valor", xlab = "Tempo")

#Em relação a sua tendência. Significa que precisamos aplicar um filtro HP para encontrar a tendência
#Aplicar o filtro Hodrick-Prescott
library(mFilter)
commodities_hp <- hpfilter(commodities_ts, type = "lambda", freq = 14400)

# Calcular o desvio em relação à tendência
commodities_ciclo <- commodities_hp$cycle

# Índice de commodities excluindo os combustíveis em relação à sua tendência:
commodities_desvio <- commodities_ciclo
commodities_desvio_ts <- ts(commodities_desvio, frequency = 12, start = c(2003, 1), end = c(2023, 12))
plot(commodities_desvio_ts, main = "Índice de Commodities Excluindo Combustíveis em Relação à Tendência", ylab = "Valor", xlab = "Tempo")

3. Preparando o Data Frame

# Carregar o pacote 'dplyr' para facilitar a manipulação de dados
library(dplyr)

# Verificar o comprimento de cada variável
length(resultado_primario_nfsp_acum)
## [1] 252
length(hiato)
## [1] 252
length(gvar)
## [1] 252
length(divida_liquida_setor_publico)
## [1] 252
length(inflacao_acum)
## [1] 252
length(commodities_desvio)
## [1] 252
# Corrigir os nomes 
names(hiato_ts) <- "valor"
names(gvar_ts) <- "valor"


rp <- resultado_primario_nfsp_acum_ts
yvar <- hiato_ts
gvar <- gvar_ts
div <- divida_liquida_setor_publico_ts
infl <- inflacao_acum_ts
comm <- commodities_desvio_ts



df <- data.frame(
  rp = as.numeric(resultado_primario_nfsp_acum_ts),
  yvar = as.numeric(hiato_ts),
  gvar = as.numeric(gvar_ts),
  div = as.numeric(divida_liquida_setor_publico_ts),
  infl = as.numeric(inflacao_acum_ts),
  comm = as.numeric(commodities_desvio_ts)
)

# Difinir explicitamente os nomes das colunas
names(df) <- c("rp", "yvar", "gvar", "div", "infl", "comm")




# Verificar a estrutura do dataframe
str(df)
## 'data.frame':    252 obs. of  6 variables:
##  $ rp  : num  39.5 40.6 40.3 42.6 43.1 ...
##  $ yvar: num  1.888 1.018 0.578 0.307 0.12 ...
##  $ gvar: num  0.0228 -0.0225 -0.0446 -0.041 -0.0235 ...
##  $ div : num  37.6 37.8 36.2 32.6 33.3 ...
##  $ infl: num  14.5 15.8 16.6 16.8 17.2 ...
##  $ comm: num  1.896 1.892 0.805 0.269 0.173 ...
# Remover as observações NA
df <- na.omit(df)

# Verificar a estrutura do dataframe após a remoção de NA
str(df)
## 'data.frame':    252 obs. of  6 variables:
##  $ rp  : num  39.5 40.6 40.3 42.6 43.1 ...
##  $ yvar: num  1.888 1.018 0.578 0.307 0.12 ...
##  $ gvar: num  0.0228 -0.0225 -0.0446 -0.041 -0.0235 ...
##  $ div : num  37.6 37.8 36.2 32.6 33.3 ...
##  $ infl: num  14.5 15.8 16.6 16.8 17.2 ...
##  $ comm: num  1.896 1.892 0.805 0.269 0.173 ...
# Verificar o resumo estatístico do dataframe
summary(df)
##        rp                yvar               gvar                 div       
##  Min.   :-114.780   Min.   :-4.15296   Min.   :-0.4898151   Min.   :18.79  
##  1st Qu.: -14.453   1st Qu.:-1.24520   1st Qu.:-0.0572579   1st Qu.:25.39  
##  Median :  21.045   Median : 0.12348   Median :-0.0204882   Median :30.39  
##  Mean   :   9.824   Mean   :-0.06593   Mean   :-0.0001417   Mean   :32.04  
##  3rd Qu.:  39.630   3rd Qu.: 1.05004   3rd Qu.: 0.0297965   3rd Qu.:38.82  
##  Max.   :  48.960   Max.   : 4.61393   Max.   : 0.7611733   Max.   :52.11  
##       infl             comm         
##  Min.   : 1.880   Min.   :-50.4903  
##  1st Qu.: 4.332   1st Qu.: -5.3243  
##  Median : 5.770   Median : -0.2079  
##  Mean   : 6.208   Mean   :  0.0000  
##  3rd Qu.: 7.027   3rd Qu.:  4.0639  
##  Max.   :17.240   Max.   : 46.3078
#Plot em um unico cbind
plot.ts(cbind(df$rp, df$yvar, df$gvar, df$div, df$infl, df$comm), main = "Séries Temporais das Variáveis", ylab = "Valor", xlab = "Tempo")

#Colocar tudo com 4 casas decimais
options(digits = 4)

#Exibir DataFrame 
df
##          rp      yvar      gvar   div  infl      comm
## 1     39.48  1.887958  0.022803 37.57 14.47   1.89593
## 2     40.60  1.018266 -0.022463 37.78 15.85   1.89168
## 3     40.33  0.578012 -0.044557 36.21 16.57   0.80513
## 4     42.57  0.307461 -0.040985 32.64 16.77   0.26874
## 5     43.12  0.120079 -0.023501 33.28 17.24   0.17257
## 6     40.96  0.556479 -0.010663 33.05 16.57  -0.58312
## 7     41.03  0.840737  0.035931 33.89 15.43  -2.44656
## 8     42.81  0.904608 -0.014266 34.42 15.07  -2.56692
## 9     40.04  1.047504 -0.033108 33.91 15.14   0.46331
## 10    39.66  1.651704  0.016607 33.18 13.98   2.22388
## 11    39.89  1.814187 -0.009691 33.58 11.02   1.25256
## 12    39.59  1.805011  0.290163 33.69  9.30   1.44971
## 13    40.61  1.423383 -0.022560 33.63  7.71   2.91506
## 14    40.24  0.814458 -0.048830 33.43  6.69   3.12720
## 15    41.29  0.919213 -0.030337 32.90  5.89   4.47786
## 16    39.16  0.977662 -0.035395 32.70  5.26   4.04282
## 17    39.66  0.997455 -0.040402 33.14  5.15   2.83461
## 18    42.97  1.059408 -0.024365 32.61  6.06   1.39893
## 19    43.17  0.852824  0.022777 32.04  6.81   0.09706
## 20    44.16  0.854465 -0.027975 31.59  7.18  -2.64623
## 21    43.73  0.931256 -0.023244 31.04  6.70  -2.84173
## 22    43.42  0.758162 -0.015381 31.04  6.86  -2.97805
## 23    42.23  0.704243 -0.020912 30.56  7.24  -2.46976
## 24    45.45  0.520161  0.308617 30.72  7.60  -1.54400
## 25    46.18  0.343789 -0.029622 30.53  7.41  -1.31270
## 26    44.30  0.105380 -0.020065 30.45  7.39  -0.20466
## 27    45.18 -0.205377 -0.042573 30.49  7.54   1.39071
## 28    48.96 -0.715073 -0.084461 29.66  8.07  -1.04512
## 29    48.19 -0.892965 -0.042933 29.58  8.05  -1.51474
## 30    47.97 -0.617412 -0.012918 29.86  7.27  -3.79253
## 31    48.28 -0.788761 -0.005272 30.05  6.57  -5.39715
## 32    48.34 -0.634381 -0.015772 30.14  6.02  -6.16793
## 33    47.42 -0.818182 -0.025885 30.18  6.04  -6.78617
## 34    47.78 -1.264977 -0.019291 30.18  6.36  -7.32557
## 35    47.32 -1.527325 -0.006583 30.26  6.22  -8.10758
## 36    46.05 -1.550726  0.345239 30.60  5.69  -6.82295
## 37    41.68 -1.792981  0.026192 30.78  5.70  -4.62239
## 38    41.19 -2.001975 -0.073383 30.83  5.51  -4.19122
## 39    40.04 -2.217818 -0.078154 30.83  5.32  -4.64989
## 40    39.90 -2.527622 -0.096160 30.50  4.63  -0.22591
## 41    39.73 -2.275876 -0.035607 30.38  4.23   6.25113
## 42    39.99 -1.962318 -0.034445 30.49  4.03   0.74432
## 43    39.02 -1.764860  0.013966 30.45  3.97   2.09581
## 44    40.26 -1.424317 -0.044117 30.45  3.84   1.47321
## 45    38.83 -1.299534  0.053328 30.50  3.70  -0.63144
## 46    39.36 -1.089944 -0.018697 30.28  3.26  -0.83959
## 47    39.57 -0.937569 -0.006681 30.24  3.02  -0.16708
## 48    38.75 -1.064565  0.314578 30.54  3.14   0.27210
## 49    42.70 -1.047185 -0.056503 30.20  2.99   0.35205
## 50    42.91 -1.057185 -0.087102 30.23  3.02   2.43999
## 51    41.88 -0.881675  0.011091 30.41  2.96   3.82688
## 52    40.99 -0.490354 -0.072157 29.95  3.00   8.52626
## 53    41.48 -0.205298 -0.040768 30.34  3.18   7.62032
## 54    40.70  0.095075 -0.031761 30.09  3.69   4.12708
## 55    40.81  0.340439  0.003241 30.18  3.74   3.12674
## 56    38.83  0.258933 -0.024072 29.66  4.18  -1.42610
## 57    38.75  0.320507  0.041937 30.15  4.15   0.98676
## 58    38.87  0.449708 -0.035875 30.24  4.12   3.55401
## 59    40.17  0.329483 -0.012502 29.73  4.19   3.82579
## 60    39.62 -0.163463  0.352710 30.02  4.46   4.21693
## 61    40.94 -0.314221 -0.023206 29.21  4.56  10.39633
## 62    41.53 -0.268931 -0.107933 29.40  4.61  16.02494
## 63    43.82 -0.453568 -0.085618 28.65  4.73  21.24849
## 64    42.88 -0.351336 -0.078916 28.60  5.04  20.35203
## 65    42.74 -0.714792 -0.067954 28.88  5.58  21.34312
## 66    42.99 -0.752723 -0.054160 28.74  6.06  21.02614
## 67    44.24 -0.458879  0.048526 28.58  6.37  19.70469
## 68    44.83 -0.126555 -0.050025 27.85  6.17  11.40149
## 69    46.17  0.579127  0.005383 25.90  6.25   4.97896
## 70    47.41  0.861356 -0.043176 24.27  6.41  -9.92091
## 71    44.19  0.884446  0.022932 22.82  6.39 -18.36351
## 72    40.58  0.736299  0.220410 23.42  5.90 -20.83853
## 73    34.72  0.091828  0.026958 24.02  5.84 -18.91856
## 74    32.76 -0.672660 -0.112520 24.00  5.90 -20.07012
## 75    30.45 -0.733894 -0.082101 24.17  5.61 -21.37404
## 76    27.14 -1.442558 -0.057761 24.94  5.53 -18.92502
## 77    24.60 -2.056087 -0.045803 26.11  5.20 -14.76818
## 78    21.86 -2.630768 -0.038067 26.53  4.80 -13.90703
## 79    18.75 -3.104898  0.020741 27.25  4.50 -15.16523
## 80    17.05 -3.364858 -0.031876 27.34  4.36 -12.94567
## 81    12.65 -3.649087  0.037158 28.38  4.34 -15.66518
## 82    10.83 -3.716412 -0.035505 28.33  4.17 -13.11266
## 83    15.18 -3.553984 -0.004595 27.96  4.22  -9.60116
## 84    23.33 -3.080806  0.156099 27.98  4.31  -7.58065
## 85    26.04 -3.173259 -0.034792 26.80  4.59  -5.30003
## 86    25.76 -3.269471 -0.104749 27.15  4.83  -7.80481
## 87    22.68 -2.843532  0.057074 27.37  5.17  -3.71119
## 88    24.68 -2.533854 -0.040341 27.09  5.26   2.24809
## 89    24.04 -2.126972 -0.031710 26.65  5.22  -3.97862
## 90    23.49 -1.357513 -0.071240 26.53  4.84  -9.78484
## 91    23.10 -0.551745  0.036146 26.74  4.60 -10.27977
## 92    22.72  0.271782 -0.032600 26.63  4.49  -5.74835
## 93    32.96  0.615193  0.576190 26.16  4.70  -2.12806
## 94    31.28  0.494346 -0.023978 25.84  5.20   3.17489
## 95    28.45  0.513401 -0.007322 25.75  5.63   5.71843
## 96    31.52  0.568341  0.103334 25.76  5.91  11.68794
## 97    31.28  0.383891  0.042880 25.47  5.99  15.62267
## 98    32.54  0.368108 -0.140544 25.51  6.01  20.41011
## 99    36.40  0.081209 -0.074308 25.60  6.30  17.53575
## 100   34.98 -0.064811 -0.003467 25.57  6.51  21.21938
## 101   36.87  0.311090 -0.072552 25.52  6.55  16.22573
## 102   39.85  0.873357 -0.024023 25.51  6.71  14.07352
## 103   43.13  1.210317  0.052521 25.37  6.87  14.82920
## 104   42.79  1.434143 -0.052107 25.20  7.23  15.26238
## 105   36.62  1.290492 -0.003621 23.22  7.31  10.41153
## 106   37.48  1.233395 -0.025735 24.28  6.97   1.49562
## 107   38.42  1.096947 -0.050750 23.40  6.64  -0.01316
## 108   35.80  1.082214  0.182191 23.06  6.50  -3.99186
## 109   37.52  0.990408  0.021183 23.83  6.22  -0.94452
## 110   37.73  0.978324 -0.142186 24.11  5.85   2.83739
## 111   36.55  1.336777 -0.035562 23.27  5.24   2.99807
## 112   35.15  1.057632  0.044723 22.50  5.10   2.77661
## 113   33.77  1.109308 -0.064864 21.65  4.99  -2.73090
## 114   30.81  1.397577 -0.036773 21.61  4.92  -5.21084
## 115   28.42  1.562329  0.045419 21.33  5.20  -2.17051
## 116   27.92  1.794193 -0.038471 21.36  5.24  -2.87750
## 117   26.13  1.635038 -0.008730 21.29  5.28  -0.69208
## 118   25.37  1.774004 -0.016104 21.12  5.45   0.25001
## 119   21.98  1.645859 -0.001410 20.79  5.53  -0.54662
## 120   26.86  1.196291  0.084639 20.82  5.84   1.29601
## 121   27.12  1.019722  0.033345 20.89  6.15   4.63428
## 122   23.77  0.814783 -0.142175 21.38  6.31   4.96319
## 123   21.95  0.871527 -0.071057 21.22  6.59   2.60792
## 124   20.57  1.326575  0.105154 21.08  6.49   1.42349
## 125   21.20  1.538827 -0.089816 20.43  6.50   0.64795
## 126   21.74  1.860526 -0.023202 20.14  6.70  -2.76872
## 127   20.89  2.490780  0.053073 19.65  6.27  -3.58521
## 128   20.07  2.755706 -0.051143 19.38  6.09  -1.86656
## 129   17.65  3.107403  0.065061 20.42  5.86  -3.37277
## 130   16.08  3.234999  0.029150 20.46  5.84  -3.58817
## 131   23.69  3.383956 -0.007792 19.36  5.77  -2.96701
## 132   20.54  3.350088  0.052713 19.23  5.91  -1.49450
## 133   17.53  3.506977  0.110402 18.79  5.59  -0.31996
## 134   18.76  3.764056 -0.140824 19.32  5.68   3.01097
## 135   18.70  3.539647 -0.071800 19.74  6.15   7.19245
## 136   19.91  3.394357 -0.036912 19.63  6.28   9.43090
## 137   16.32  3.573645 -0.040483 19.92  6.37   6.70948
## 138   14.61  3.584077 -0.057090 20.38  6.52   5.32901
## 139   13.13  4.107984  0.037590 20.49  6.50   6.17309
## 140   10.24  4.332276  0.053447 21.04  6.51   3.85013
## 141    7.07  4.487741  0.100044 20.80  6.75   1.30827
## 142    6.50  4.613933 -0.012988 20.94  6.59   0.26242
## 143   -1.44  4.574960  0.003677 20.76  6.56  -0.21121
## 144   -6.24  4.377545  0.068888 20.78  6.41  -1.06419
## 145   -6.19  3.535062  0.029032 20.82  7.14  -2.56882
## 146   -7.15  2.545121 -0.167881 20.46  7.70  -4.23038
## 147   -7.85  1.910424 -0.134824 19.49  8.13  -6.34131
## 148   -8.67  1.517351 -0.035231 20.29  8.17  -4.78146
## 149   -7.77  0.989542 -0.108344 20.13  8.47  -2.80229
## 150   -9.21  0.721132 -0.072550 20.96  8.89  -3.76472
## 151  -10.22  0.471477  0.012491 20.31  9.56  -6.14878
## 152   -8.69  0.575994 -0.147998 19.62  9.53  -7.80209
## 153   -4.96  0.208307 -0.103726 18.88  9.49  -7.85345
## 154   -7.90 -0.367747  0.008668 19.84  9.93  -6.94283
## 155  -10.09 -1.090050 -0.052038 20.52 10.48 -11.36745
## 156  -21.42 -1.767459  0.761173 21.90 10.67 -12.51541
## 157  -20.07 -2.894777  0.075816 21.52 10.71 -12.35822
## 158  -24.28 -3.372519 -0.117014 23.22 10.36  -9.18577
## 159  -26.35 -3.561183 -0.127446 25.40  9.39  -4.60353
## 160  -27.10 -3.746563 -0.110064 25.99  9.28  -2.11385
## 161  -29.21 -4.101846 -0.135552 26.10  9.32  -1.51142
## 162  -29.24 -3.898283 -0.139504 28.55  8.84  -0.44153
## 163  -29.72 -4.152958  0.053023 29.67  8.74   1.83251
## 164  -32.46 -4.080968 -0.131206 29.79  8.97   1.38727
## 165  -36.08 -3.718121 -0.015370 30.67  8.48   0.57205
## 166  -26.54 -3.654403 -0.188127 30.92  7.87  -0.80546
## 167  -29.90 -3.277016  0.054515 30.92  6.99   1.83567
## 168  -28.93 -3.057642  0.538413 33.34  6.29   1.94252
## 169  -27.58 -2.907528 -0.089489 33.85  5.35   5.46774
## 170  -27.47 -2.903825 -0.153002 34.70  4.76   7.92593
## 171  -27.42 -2.622950 -0.116097 35.07  4.57   5.29784
## 172  -26.97 -2.494969 -0.150584 35.00  4.08   3.19813
## 173  -29.04 -2.262645 -0.023007 35.53  3.60   2.60696
## 174  -30.72 -1.712749 -0.029104 35.92  3.00   1.43207
## 175  -31.20 -1.552263  0.003540 37.27  2.71   3.20048
## 176  -28.71 -1.367941 -0.077913 37.70  2.46   3.33236
## 177  -27.54 -1.244893  0.045789 38.32  2.54   2.73971
## 178  -34.03 -1.246134 -0.108440 38.01  2.70   1.94529
## 179  -27.02 -1.132636 -0.023090 38.32  2.80   2.51638
## 180  -19.69 -1.143702  0.452119 38.48  2.95   2.75283
## 181  -18.34 -0.888422 -0.008056 38.80  2.86   7.03504
## 182  -16.97 -0.818290 -0.085150 38.88  2.84   6.99409
## 183  -19.26 -0.534192  0.107819 39.07  2.68   6.20912
## 184  -21.17 -0.067754  0.096635 38.33  2.76   6.07430
## 185  -17.05 -0.368937  0.003814 37.61  2.86   6.02020
## 186  -15.75 -1.073265  0.051434 37.59  4.39   3.40460
## 187  -13.38 -0.833925  0.162254 38.28  4.48  -0.98313
## 188  -14.49 -0.194206  0.159632 37.10  4.19  -4.50381
## 189  -14.85 -0.292749  0.259126 38.17  4.53  -4.38853
## 190  -14.42 -0.208183  0.123725 39.43  4.56  -2.84291
## 191  -16.83  0.386963  0.255124 39.03  4.05  -5.86625
## 192  -18.08  0.453318  0.630666 39.46  3.75  -5.25311
## 193  -18.47  0.394946  0.207500 40.12  3.78  -4.10467
## 194  -17.84  0.368984  0.198382 40.15  3.89  -3.49583
## 195  -16.67 -0.317310  0.354810 39.95  4.58  -4.52004
## 196  -16.08 -0.648983  0.412288 39.91  4.94  -3.34465
## 197  -16.73 -0.155936  0.302496 40.13  4.66  -6.00039
## 198  -16.55 -0.121192  0.317928 40.75  3.37  -4.15231
## 199  -16.42  0.101928  0.516980 41.31  3.22  -3.33689
## 200  -15.74  0.264523  0.447663 40.09  3.43  -7.36007
## 201  -14.79  0.730887 -0.489815 40.42  2.89  -8.56990
## 202  -14.61  0.982118 -0.477542 41.02  2.54 -10.16944
## 203  -14.44  0.723651 -0.456272 40.59  3.27 -10.26278
## 204   -9.71 -0.093822 -0.424769 41.66  4.31  -8.90578
## 205   -8.64 -0.002127 -0.382819 40.14  4.19  -7.43048
## 206   -9.43  0.126881 -0.344288 39.47  4.01 -11.61092
## 207  -10.06  0.318395 -0.288907 37.11  3.30 -16.40100
## 208  -27.75 -0.177289 -0.287973 37.77  2.40 -19.51742
## 209  -48.39 -0.507610 -0.271333 39.73  1.88 -17.83631
## 210  -77.32 -0.836642 -0.218870 42.28  2.13 -15.17894
## 211  -89.47 -1.250486 -0.209118 44.40  2.31 -14.11153
## 212 -101.07 -1.602970 -0.019930 44.87  2.44 -10.22863
## 213 -107.71 -2.077733 -0.171960 45.53  3.14 -10.67073
## 214 -108.72 -2.860358 -0.167025 45.39  3.92  -9.71893
## 215 -108.99 -3.433477 -0.138073 47.14  4.31  -7.87368
## 216 -114.21 -4.117030 -0.123753 47.98  4.52  -4.12616
## 217 -114.78 -3.747167 -0.109557 46.72  4.56   0.91741
## 218 -113.06 -3.693407 -0.085098 46.74  5.20   2.31249
## 219 -108.69 -3.125926 -0.043833 45.90  6.10   3.57083
## 220  -88.80 -1.513071 -0.059358 45.56  6.76   9.35679
## 221  -68.17 -0.700317 -0.045182 45.74  8.06  17.81337
## 222  -46.04  0.033720 -0.030577 47.01  8.35  15.55799
## 223  -34.79  0.266847 -0.024802 46.53  8.99  14.98178
## 224  -18.87  0.652599  0.166785 46.45  9.68  10.43771
## 225   -7.21  0.542047 -0.014959 45.54 10.25   4.64976
## 226   -3.07  0.159772 -0.003634 44.68 10.67   8.52905
## 227    1.51  0.151185 -0.011042 44.67 10.74   9.15492
## 228    8.87  0.132054 -0.029973 44.71 10.06  12.96216
## 229   14.32 -0.139081 -0.002951 44.78 10.38  22.30310
## 230   16.44 -0.931949  0.017200 45.78 10.54  29.54302
## 231   16.30 -2.116304  0.024471 47.32 11.30  42.76863
## 232   17.69 -2.502564  0.020591 47.12 12.13  46.30778
## 233   15.89 -2.048498  0.016299 47.84 11.73  40.56976
## 234   26.53 -1.824741  0.021348 46.77 11.89  36.63330
## 235   30.22 -0.334730  0.029135 46.41 10.07  24.33576
## 236   24.57  0.824411  0.227735 47.11  8.73  25.28860
## 237   24.12  1.776324  0.047631 47.01  7.17  22.81847
## 238   22.62  1.948396 -0.007975 47.01  6.47  25.71825
## 239   18.43  2.151769 -0.010798 46.80  5.90  31.93254
## 240   17.07  2.120454 -0.021140 47.01  5.79  37.70934
## 241   15.20  2.154914  0.012043 46.34  5.77  45.46553
## 242   11.56  1.786253  0.012072 46.91  5.60 -50.49027
## 243    9.54  1.724830  0.038861 47.16  4.65 -46.40322
## 244    7.12  1.509681  0.005023 47.19  4.18 -43.33182
## 245    5.49  1.566187  0.060209 47.79  3.94 -39.66031
## 246   -1.69  1.819502  0.017960 49.11  3.16 -35.51227
## 247   -7.97  1.800143  0.024126 49.73  3.99 -31.99829
## 248   -6.97  1.743593  0.209697 50.06  4.61 -29.57498
## 249  -10.22  1.632610 -0.006306 50.40  5.19 -25.39769
## 250  -11.73  1.672401 -0.024926 50.36  4.82 -18.06324
## 251  -13.38  1.775867  0.031735 50.70  4.68 -11.99462
## 252  -25.81  1.535193 -0.017931 52.11  4.62  -8.65547

4. Análise Estatística Descritiva (de cada uma das variáveis do modelo)

### Análise Estatística Descritiva - de cada uma das variáveis do modelo:
summary(rp)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -114.78  -14.45   21.04    9.82   39.63   48.96
summary(yvar)
##      pib_ts      
##  Min.   :-4.153  
##  1st Qu.:-1.245  
##  Median : 0.123  
##  Mean   :-0.066  
##  3rd Qu.: 1.050  
##  Max.   : 4.614
summary(gvar)
##      pib_ts       
##  Min.   :-0.4898  
##  1st Qu.:-0.0573  
##  Median :-0.0205  
##  Mean   :-0.0001  
##  3rd Qu.: 0.0298  
##  Max.   : 0.7612
summary(div)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    18.8    25.4    30.4    32.0    38.8    52.1
summary(infl)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.88    4.33    5.77    6.21    7.03   17.24
summary(comm)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -50.49   -5.32   -0.21    0.00    4.06   46.31
# Medida central (média, mediana) - de cada uma das variáveis do modelo
mean(df$rp)
## [1] 9.824
median(df$rp)
## [1] 21.04
mean(df$yvar)
## [1] -0.06593
median(df$yvar)
## [1] 0.1235
mean(df$gvar)
## [1] -0.0001417
median(df$gvar)
## [1] -0.02049
mean(df$div)
## [1] 32.04
median(df$div)
## [1] 30.4
mean(df$infl)
## [1] 6.208
median(df$infl)
## [1] 5.77
mean(df$comm)
## [1] -1.269e-16
median(df$comm)
## [1] -0.2079
# Variância e desvio padrão - de cada uma das variáveis do modelo
var(df$rp)
## [1] 1279
sd(df$rp)
## [1] 35.76
#var(df$yvar)
#sd(df$yvar)

#var(df$gvar)
#sd(df$gvar)

var(df$div)
## [1] 80.08
sd(df$div)
## [1] 8.949
var(df$infl)
## [1] 8.323
sd(df$infl)
## [1] 2.885
var(df$comm)
## [1] 174.3
sd(df$comm)
## [1] 13.2
# Curtose e assimetria - de cada uma das variáveis do modelo
library(moments)
kurtosis(df$rp)
## [1] 5.195
skewness(df$rp)
## [1] -1.416
#kurtosis(df$yvar)
#skewness(df$yvar)

#kurtosis(df$gvar)
#skewness(df$gvar)

kurtosis(df$div)
## [1] 2.104
skewness(df$div)
## [1] 0.4213
kurtosis(df$infl)
## [1] 5.897
skewness(df$infl)
## [1] 1.541
kurtosis(df$comm)
## [1] 6.229
skewness(df$comm)
## [1] 0.1303
# Análise de estabilidade e tendências - de cada uma das variáveis do modelo
acf(df$rp)

pacf(df$rp)

#acf(df$yvar)
#pacf(df$yvar)

#acf(df$gvar)
#pacf(df$gvar)

acf(df$div)

pacf(df$div)

acf(df$infl)

pacf(df$infl)

acf(df$comm)

pacf(df$comm)

5. Aplicando as Defesagens

Aplicamos as defasagens em todas nossas variáveis do modelo, com excessão de commodities, conforme foi feito no trabalho de Helder, no qual estamos nos referenciando.

##APLICANDO DEFASGAENS 

# Carregar o pacote 'dplyr' para manipulação de dados
library(dplyr)

# Adicionar defasagens no dataframe
# Atualizar o dataframe com defasagens apenas nas variáveis especificadas
df_lagged <- df %>%
  mutate(
    rp_lag1 = lag(rp, 1),
    yvar_lag1 = lag(yvar, 1),
    gvar_lag1 = lag(gvar, 1),
    div_lag1 = lag(div, 1),
    infl_lag1 = lag(infl, 1)
  ) %>%
  na.omit()  # Remover linhas com NA resultantes das defasagens

# Verificar a estrutura do novo dataframe com defasagens
str(df_lagged)
## 'data.frame':    251 obs. of  11 variables:
##  $ rp       : num  40.6 40.3 42.6 43.1 41 ...
##  $ yvar     : num  1.018 0.578 0.307 0.12 0.556 ...
##  $ gvar     : num  -0.0225 -0.0446 -0.041 -0.0235 -0.0107 ...
##  $ div      : num  37.8 36.2 32.6 33.3 33 ...
##  $ infl     : num  15.8 16.6 16.8 17.2 16.6 ...
##  $ comm     : num  1.892 0.805 0.269 0.173 -0.583 ...
##  $ rp_lag1  : num  39.5 40.6 40.3 42.6 43.1 ...
##  $ yvar_lag1: num  1.888 1.018 0.578 0.307 0.12 ...
##  $ gvar_lag1: num  0.0228 -0.0225 -0.0446 -0.041 -0.0235 ...
##  $ div_lag1 : num  37.6 37.8 36.2 32.6 33.3 ...
##  $ infl_lag1: num  14.5 15.8 16.6 16.8 17.2 ...
##  - attr(*, "na.action")= 'omit' Named int 1
##   ..- attr(*, "names")= chr "1"

6. Adicionando as Variáveis Dummies

Aplicamos as dummies ao modelo, conforme foi feito no trabalho de Helder, no qual estamos nos referenciando:

##ADICIONAR DUMMIES

start_year <- 2003
start_month <- 1
num_points <- length(df_lagged$rp) 

# Criar sequência de datas
dates <- seq(from=as.Date(paste(start_year, start_month, "1", sep="-")), 
             length.out=num_points, 
             by="month")

# Adicionar ao dataframe
df_lagged$ano <- format(dates, "%Y")
df_lagged$mes <- format(dates, "%m")

# Converter para numérico
df_lagged$ano <- as.numeric(df_lagged$ano)
df_lagged$mes <- as.numeric(df_lagged$mes)

# Criar variáveis dummy
df_lagged$dummy_2020 <- ifelse(df_lagged$ano == 2020, 1, 0)
df_lagged$dummy_teto <- ifelse(df_lagged$ano >= 2017 & df_lagged$ano <= 2019, 1, 0)
df_lagged$dummy_set10 <- ifelse(df_lagged$ano == 2010 & df_lagged$mes == 9, 1, 0)
df_lagged$dummy_pedaladas <- ifelse(df_lagged$ano >= 2011 & df_lagged$ano <= 2014, 1, 0)

head(df_lagged)
##      rp   yvar     gvar   div  infl    comm rp_lag1 yvar_lag1 gvar_lag1
## 2 40.60 1.0183 -0.02246 37.78 15.85  1.8917   39.48    1.8880   0.02280
## 3 40.33 0.5780 -0.04456 36.21 16.57  0.8051   40.60    1.0183  -0.02246
## 4 42.57 0.3075 -0.04098 32.64 16.77  0.2687   40.33    0.5780  -0.04456
## 5 43.12 0.1201 -0.02350 33.28 17.24  0.1726   42.57    0.3075  -0.04098
## 6 40.96 0.5565 -0.01066 33.05 16.57 -0.5831   43.12    0.1201  -0.02350
## 7 41.03 0.8407  0.03593 33.89 15.43 -2.4466   40.96    0.5565  -0.01066
##   div_lag1 infl_lag1  ano mes dummy_2020 dummy_teto dummy_set10 dummy_pedaladas
## 2    37.57     14.47 2003   1          0          0           0               0
## 3    37.78     15.85 2003   2          0          0           0               0
## 4    36.21     16.57 2003   3          0          0           0               0
## 5    32.64     16.77 2003   4          0          0           0               0
## 6    33.28     17.24 2003   5          0          0           0               0
## 7    33.05     16.57 2003   6          0          0           0               0

7. Rodando o MQO

Com dummies e variáveis defasadas (com exceção de commodities), O modelo de regressão linear múltipla foi estimado utilizando exatamente a mesma metodologia abordada no trabalho de Helder:

#RODANDO MQO DEFINITIVO

# Modelo de MQO com dummies e variáveis defasadas (com exceção de commodities)
modelo_final <- lm(rp_lag1 ~ yvar_lag1 + gvar_lag1 + div_lag1 + infl_lag1 + comm + dummy_2020 + dummy_teto + dummy_set10 + dummy_pedaladas, data = df_lagged)
summary(modelo_final)
## 
## Call:
## lm(formula = rp_lag1 ~ yvar_lag1 + gvar_lag1 + div_lag1 + infl_lag1 + 
##     comm + dummy_2020 + dummy_teto + dummy_set10 + dummy_pedaladas, 
##     data = df_lagged)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -96.5  -11.0    6.4   15.9   48.2 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       75.613      9.630    7.85  1.3e-13 ***
## yvar_lag1          6.255      1.062    5.89  1.3e-08 ***
## gvar_lag1          0.819     11.349    0.07    0.943    
## div_lag1          -1.411      0.248   -5.69  3.6e-08 ***
## infl_lag1         -1.135      0.654   -1.74    0.084 .  
## comm               0.320      0.134    2.38    0.018 *  
## dummy_2020       -67.062      9.058   -7.40  2.2e-12 ***
## dummy_teto       -32.799      5.468   -6.00  7.3e-09 ***
## dummy_set10       -5.741     26.523   -0.22    0.829    
## dummy_pedaladas  -26.733      6.133   -4.36  1.9e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.4 on 241 degrees of freedom
## Multiple R-squared:  0.513,  Adjusted R-squared:  0.495 
## F-statistic: 28.2 on 9 and 241 DF,  p-value: <2e-16
# Verificar os coeficientes do modelo final
coeficientes_final <- coef(modelo_final)
print(coeficientes_final)
##     (Intercept)       yvar_lag1       gvar_lag1        div_lag1       infl_lag1 
##         75.6134          6.2546          0.8188         -1.4111         -1.1347 
##            comm      dummy_2020      dummy_teto     dummy_set10 dummy_pedaladas 
##          0.3196        -67.0622        -32.7994         -5.7409        -26.7327
# Resumo detalhado do modelo, incluindo erro padrão, estatística t e p-valor
resumo_modelo_final <- summary(modelo_final)
print(resumo_modelo_final)
## 
## Call:
## lm(formula = rp_lag1 ~ yvar_lag1 + gvar_lag1 + div_lag1 + infl_lag1 + 
##     comm + dummy_2020 + dummy_teto + dummy_set10 + dummy_pedaladas, 
##     data = df_lagged)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -96.5  -11.0    6.4   15.9   48.2 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       75.613      9.630    7.85  1.3e-13 ***
## yvar_lag1          6.255      1.062    5.89  1.3e-08 ***
## gvar_lag1          0.819     11.349    0.07    0.943    
## div_lag1          -1.411      0.248   -5.69  3.6e-08 ***
## infl_lag1         -1.135      0.654   -1.74    0.084 .  
## comm               0.320      0.134    2.38    0.018 *  
## dummy_2020       -67.062      9.058   -7.40  2.2e-12 ***
## dummy_teto       -32.799      5.468   -6.00  7.3e-09 ***
## dummy_set10       -5.741     26.523   -0.22    0.829    
## dummy_pedaladas  -26.733      6.133   -4.36  1.9e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.4 on 241 degrees of freedom
## Multiple R-squared:  0.513,  Adjusted R-squared:  0.495 
## F-statistic: 28.2 on 9 and 241 DF,  p-value: <2e-16
# Acesso direto aos coeficientes, erros padrão, valores t e p
coeficientes_detalhados_final <- resumo_modelo_final$coefficients
print(coeficientes_detalhados_final)
##                 Estimate Std. Error  t value  Pr(>|t|)
## (Intercept)      75.6134     9.6300  7.85187 1.345e-13
## yvar_lag1         6.2546     1.0623  5.88785 1.306e-08
## gvar_lag1         0.8188    11.3487  0.07215 9.425e-01
## div_lag1         -1.4111     0.2478 -5.69438 3.588e-08
## infl_lag1        -1.1347     0.6540 -1.73503 8.401e-02
## comm              0.3196     0.1342  2.38134 1.803e-02
## dummy_2020      -67.0622     9.0584 -7.40333 2.214e-12
## dummy_teto      -32.7994     5.4683 -5.99809 7.261e-09
## dummy_set10      -5.7409    26.5227 -0.21645 8.288e-01
## dummy_pedaladas -26.7327     6.1327 -4.35905 1.935e-05
# Outros parâmetros como R² e estatísticas F
r_squared_final <- resumo_modelo_final$r.squared
ajustado_r_squared_final <- resumo_modelo_final$adj.r.squared
estatistica_f_final <- resumo_modelo_final$fstatistic

# Exibir os valores coletados
print(paste("R²: ", r_squared_final))
## [1] "R²:  0.512999139773806"
print(paste("R² Ajustado: ", ajustado_r_squared_final))
## [1] "R² Ajustado:  0.494812385657475"
print(paste("Estatística F: ", estatistica_f_final[1], " com ", estatistica_f_final[2], " e ", estatistica_f_final[3], " graus de liberdade."))
## [1] "Estatística F:  28.20729507269  com  9  e  241  graus de liberdade."
print(paste("Valor-p da estatística F: ", pf(estatistica_f_final[1], estatistica_f_final[2], estatistica_f_final[3], lower.tail = FALSE)))
## [1] "Valor-p da estatística F:  3.89554060177318e-33"

Os resíduos variam de -96.5 a 48.2, com a mediana em 6.4, indicando uma leve assimetria.

7.1 Interpretação dos Coeficientes:

7.2 Medidas de Ajuste do Modelo:

Os resultados indicam que várias variáveis explicativas têm impacto significativo na receita primária do governo central. Em particular, o ano de 2020 e a introdução do teto de gastos tiveram efeitos negativos significativos, refletindo grandes eventos econômicos e políticos.

Focaremos especificamente no coeficiente associado à variável “div_lag1”, que representa a dívida pública defasada para analisar se há uma reação significativa a elevações da dívida pública no Brasil.

O coeficiente estimado para “div_lag1” é -1.411, indicando que, ceteris paribus, um aumento de 1% na dívida pública (defasada) está associado a uma redução de 1.411% na receita primária (% do PIB). Este coeficiente é altamente significativo, com um valor p de 3.6e-08, sugerindo que podemos rejeitar a hipótese nula de que o coeficiente é zero com um alto nível de confiança.

Dada a significância estatística do coeficiente associado à variável “div_lag1” (dívida pública defasada), podemos concluir que há uma reação significativa a elevações da dívida pública no Brasil. Especificamente, os resultados sugerem que aumentos na dívida pública estão associados a uma redução na receita primária, o que pode indicar um efeito adverso do endividamento público sobre as finanças governamentais.

Em resumo, os resultados indicam que há uma reação negativa significativa entre a dívida pública e a receita primária, o que pode levantar preocupações sobre a sustentabilidade da política fiscal atual no Brasil. A política fiscal pode não ser sustentável se essas tendências persistirem, exigindo atenção e possíveis ajustes para garantir a estabilidade fiscal a longo prazo.

8. Testes para Verificar a Estacionariedade e Cointegração

Aqui, faremos conforme o trabalho de Helder também, utilizando as seguintes variáveis de interesse:

##TESTES PARA DECIDIRMOS SE OPTAREMOS POR VAR OU VEC

#AS VARIAVEIS UTILZADAS FORAM:
  
#  rp:  Receita Primária do Governo Central(% PIB)
#rp_SA:  Receita Primária do Governo Central, somados os juros nominais (% PIB)
#dn: Despesa Primária do Governo Central (% PIB) 
#dn_SA: Despesa Primária do Governo Central, somados os juros nominais (% PIB)

rec <- receita_primaria_ts
rec_SA <- receita_primaria_juros_ts
dn <- despesa_primaria_ts
dn_SA <- despesa_primaria_juros_ts


#Criar dataframe df2
df2 <- data.frame(
  rec = as.numeric(rec),
  rec_SA = as.numeric(rec_SA),
  dn = as.numeric(dn),
  dn_SA = as.numeric(dn_SA)
)

8.1 Teste de Raíz Unitária

# Carregar pacotes necessários
library(urca)
library(vars)
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
## Loading required package: strucchange
## Loading required package: sandwich
## Loading required package: lmtest
library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
# Testes de raiz unitária para cada série
# Receita Primária do Governo Central (% PIB)
adf.test(df2$rec, k = trunc((length(df2$rec) - 1)^(1/3)))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  df2$rec
## Dickey-Fuller = -1.8, Lag order = 6, p-value = 0.7
## alternative hypothesis: stationary
# Receita Primária do Governo Central, somados os juros nominais (% PIB)
adf.test(df2$rec_SA, k = trunc((length(df2$rec_SA) - 1)^(1/3)))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  df2$rec_SA
## Dickey-Fuller = -2.3, Lag order = 6, p-value = 0.5
## alternative hypothesis: stationary
# Despesa Primária do Governo Central (% PIB)
adf.test(df2$dn, k = trunc((length(df2$dn) - 1)^(1/3)))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  df2$dn
## Dickey-Fuller = -1.4, Lag order = 6, p-value = 0.8
## alternative hypothesis: stationary
# Despesa Primária do Governo Central, somados os juros nominais (% PIB)
adf.test(df2$dn_SA, k = trunc((length(df2$dn_SA) - 1)^(1/3)))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  df2$dn_SA
## Dickey-Fuller = -2.6, Lag order = 6, p-value = 0.3
## alternative hypothesis: stationary

A série não é estacionária para nenhuma das variáveis.

8.2 Teste de cointegração de Johansen

## Teste de cointegração de Johansen
johansen = ca.jo(df2, type = "trace", ecdet = "const", K = 2)
summary(johansen)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 3.158e-01 2.315e-01 6.000e-02 1.649e-02 1.071e-17
## 
## Values of teststatistic and critical values of test:
## 
##            test 10pct  5pct  1pct
## r <= 3 |   4.16  7.52  9.24 12.97
## r <= 2 |  19.63 17.85 19.96 24.60
## r <= 1 |  85.47 32.00 34.91 41.07
## r = 0  | 180.36 49.65 53.12 60.16
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##               rec.l2 rec_SA.l2      dn.l2   dn_SA.l2   constant
## rec.l2         1.000     1.000  1.000e+00  1.000e+00  1.000e+00
## rec_SA.l2      1.994    -1.637 -1.423e+01  1.140e+00 -1.998e+00
## dn.l2         -1.014    -1.009 -6.205e+00  4.385e+00 -8.487e-01
## dn_SA.l2      -2.582     1.980 -2.738e+00 -6.311e+00  2.900e+00
## constant  -15488.250 -3613.430  1.206e+06 -1.241e+05  3.395e+05
## 
## Weights W:
## (This is the loading matrix)
## 
##            rec.l2 rec_SA.l2    dn.l2  dn_SA.l2   constant
## rec.d    -0.18932  -0.34338 0.004610 -0.005930  4.919e-18
## rec_SA.d -0.22595   0.07236 0.007510  0.001442  3.792e-18
## dn.d      0.24369  -0.02545 0.005992 -0.005502 -3.634e-18
## dn_SA.d   0.01479  -0.11452 0.006571  0.001958  3.526e-18

Conclui-se que existem duas relações de cointegração entre as variáveis analisadas

8.3 Teste de causalidade de Granger

# Teste de causalidade de Granger
grangertest(rec_SA ~ dn_SA, order = 1, data = df2)
## Granger causality test
## 
## Model 1: rec_SA ~ Lags(rec_SA, 1:1) + Lags(dn_SA, 1:1)
## Model 2: rec_SA ~ Lags(rec_SA, 1:1)
##   Res.Df Df    F  Pr(>F)    
## 1    248                    
## 2    249 -1 34.1 1.6e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
grangertest(dn_SA ~ rec_SA, order = 1, data = df2)
## Granger causality test
## 
## Model 1: dn_SA ~ Lags(dn_SA, 1:1) + Lags(rec_SA, 1:1)
## Model 2: dn_SA ~ Lags(dn_SA, 1:1)
##   Res.Df Df  F Pr(>F)
## 1    248             
## 2    249 -1  0   0.95
grangertest(rec ~ dn, order = 1, data = df2)
## Granger causality test
## 
## Model 1: rec ~ Lags(rec, 1:1) + Lags(dn, 1:1)
## Model 2: rec ~ Lags(rec, 1:1)
##   Res.Df Df    F Pr(>F)    
## 1    248                   
## 2    249 -1 87.5 <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
grangertest(dn ~ rec, order = 1, data = df2)
## Granger causality test
## 
## Model 1: dn ~ Lags(dn, 1:1) + Lags(rec, 1:1)
## Model 2: dn ~ Lags(dn, 1:1)
##   Res.Df Df    F Pr(>F)  
## 1    248                 
## 2    249 -1 3.45  0.065 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Há causalidade entre rec_sa/rec e dn_sa/dn, mas não há o contrário.

9. VEC

data_vec <- df2[, c("rec", "rec_SA", "dn", "dn_SA")]

vecm <- ca.jo(data_vec, type="eigen", ecdet="none", K=2, spec="longrun")

vec_fit <- vec2var(vecm, r=2)  # Usando o objeto 'ca.jo' diretamente

summary(vec_fit)
##               Length Class  Mode   
## deterministic    4   -none- numeric
## A                2   -none- list   
## p                1   -none- numeric
## K                1   -none- numeric
## y             1008   -none- numeric
## obs              1   -none- numeric
## totobs           1   -none- numeric
## call             3   -none- call   
## vecm             1   ca.jo  S4     
## datamat       3250   -none- numeric
## resid         1000   -none- numeric
## r                1   -none- numeric

9.1 Previsões

pred <- predict(vec_fit, n.ahead=10)
print(pred)
## $rec
##        fcst    lower  upper    CI
##  [1,] 48975  23690.5  74260 25285
##  [2,] 42516   8123.6  76909 34393
##  [3,] 42702   4169.6  81234 38532
##  [4,] 42637   -811.5  86086 43449
##  [5,] 41843  -5728.0  89414 47571
##  [6,] 42079  -9183.8  93343 51263
##  [7,] 42042 -12750.5  96834 54792
##  [8,] 42024 -16046.9 100094 58071
##  [9,] 42092 -19081.8 103266 61174
## [10,] 42120 -22011.6 106252 64132
## 
## $rec_SA
##        fcst  lower upper    CI
##  [1,] 43353  19602 67104 23751
##  [2,] 38438   8651 68225 29787
##  [3,] 41033   6951 75114 34081
##  [4,] 40482   2000 78965 38483
##  [5,] 40498  -1687 82682 42184
##  [6,] 40685  -4934 86304 45619
##  [7,] 40668  -8164 89499 48831
##  [8,] 40728 -11104 92559 51831
##  [9,] 40780 -13890 95450 54670
## [10,] 40822 -16547 98192 57369
## 
## $dn
##        fcst  lower upper    CI
##  [1,] 30943   5466 56421 25478
##  [2,] 28978  -1238 59193 30215
##  [3,] 30879  -4289 66047 35168
##  [4,] 30157  -9891 70205 40048
##  [5,] 30200 -13811 74212 44012
##  [6,] 30441 -17353 78236 47795
##  [7,] 30357 -20943 81658 51301
##  [8,] 30435 -24126 84995 54560
##  [9,] 30480 -27169 88129 57649
## [10,] 30510 -30068 91088 60578
## 
## $dn_SA
##        fcst  lower upper    CI
##  [1,] 31885  11776 51993 20109
##  [2,] 29172   5296 53049 23876
##  [3,] 30608   3100 58115 27507
##  [4,] 29592  -1366 60551 30959
##  [5,] 29734  -4107 63575 33841
##  [6,] 29779  -6788 66346 36567
##  [7,] 29744  -9359 68846 39102
##  [8,] 29796 -11676 71269 41473
##  [9,] 29829 -13891 73550 43721
## [10,] 29862 -15996 75719 45857
plot(pred)

9.2 Análise de Impulso-Resposta

#Análise de Impulso-Resposta
irf <- irf(vec_fit, impulse="rec", response=c("rec", "rec_SA", "dn", "dn_SA"), n.ahead=10)
print(irf)
## 
## Impulse response coefficients
## $rec
##         rec rec_SA   dn dn_SA
##  [1,] 12901   5079 9248  3638
##  [2,]  9645   1941 5924  1031
##  [3,]  7934   2191 8042  2022
##  [4,]  9115   2473 8373  1941
##  [5,]  8510   2194 8022  1740
##  [6,]  8455   2275 8270  1836
##  [7,]  8540   2278 8243  1803
##  [8,]  8466   2258 8222  1792
##  [9,]  8473   2268 8246  1800
## [10,]  8476   2266 8239  1795
## [11,]  8469   2265 8239  1795
## 
## 
## Lower Band, CI= 0.95 
## $rec
##         rec  rec_SA   dn   dn_SA
##  [1,] 10076 2607.12 5664 1562.38
##  [2,]  6028 -566.66 2927 -788.11
##  [3,]  4879  -19.12 4931  205.76
##  [4,]  5591   53.64 5052  -56.54
##  [5,]  5138 -280.96 4822 -157.82
##  [6,]  5145 -191.26 4973  -75.70
##  [7,]  5178 -190.90 4927 -118.67
##  [8,]  5139 -240.03 4920 -146.09
##  [9,]  5147 -221.18 4931 -128.66
## [10,]  5147 -221.81 4924 -137.75
## [11,]  5144 -231.38 4925 -142.06
## 
## 
## Upper Band, CI= 0.95 
## $rec
##         rec rec_SA    dn dn_SA
##  [1,] 15735   7739 12547  5870
##  [2,] 13049   4223  8867  2767
##  [3,] 10919   4637 11046  3910
##  [4,] 12055   5139 11507  3956
##  [5,] 11680   4704 11186  3710
##  [6,] 11530   4863 11244  3852
##  [7,] 11628   4834 11291  3807
##  [8,] 11595   4794 11255  3798
##  [9,] 11592   4819 11273  3815
## [10,] 11599   4806 11273  3804
## [11,] 11595   4804 11272  3805
plot(irf)

O gráfico de resposta a impulso ortogonal mostra o impacto de um choque positivo na receita primária do governo central (rec) sobre a própria receita primária (rec), receita primária somada aos juros nominais (rec_SA), despesa primária (dn) e despesa primária somada aos juros nominais (dn_SA) ao longo de 10 períodos.

Observa-se que um choque positivo na receita primária leva a um aumento inicial na receita primária e na receita primária somada aos juros nominais, seguido por uma estabilização. Da mesma forma, a despesa primária e a despesa primária somada aos juros nominais também respondem positivamente ao choque inicial, mas essa resposta se estabiliza rapidamente. Os intervalos de confiança de 95% (em linhas vermelhas tracejadas) indicam que esses efeitos são estatisticamente significativos no curto prazo, mas a significância diminui com o tempo.

Esses resultados sugerem que a política fiscal brasileira é inicialmente reativa a aumentos de receita, mas possui mecanismos de ajuste que estabilizam os efeitos dos choques na receita ao longo do tempo, o que é crucial para a sustentabilidade fiscal.

10. Conclusão

Os resultados das análises realizadas revelam que a receita primária do governo central é substancialmente influenciada por diversas variáveis econômicas. A análise de impulso-resposta destacou que choques positivos na receita primária resultam em aumentos iniciais significativos tanto na própria receita primária quanto na receita primária ajustada pelos juros nominais. Além disso, esses choques também impactam as despesas primárias, refletindo a complexidade das interações fiscais. No entanto, os efeitos tendem a se estabilizar ao longo do tempo, sugerindo a presença de mecanismos de ajuste fiscal que mitigam os impactos de curto prazo. Essa estabilização é crucial para evitar flutuações extremas e manter a previsibilidade das finanças públicas.

A relação negativa e significativa observada entre a dívida pública e a receita primária indica que aumentos na dívida pública podem diminuir a capacidade do governo de arrecadar receitas. Este é um sinal de alerta importante para a sustentabilidade fiscal, pois um elevado endividamento pode restringir a capacidade do governo de financiar suas operações e investir em áreas essenciais. O governo brasileiro deve, portanto, manter um rigoroso controle sobre os níveis de dívida pública, adotando políticas que aumentem a eficiência na arrecadação de receitas e limitem o crescimento da dívida. Políticas fiscais prudentes são necessárias para garantir que os níveis de endividamento não comprometam a capacidade do governo de cumprir suas obrigações futuras.

Ademais, a análise sugere que a política fiscal brasileira, embora resiliente, precisa de ajustes contínuos para manter a sustentabilidade a longo prazo. A capacidade de ajuste fiscal é evidenciada pela estabilização das variáveis após choques iniciais, mas a dependência de mecanismos de ajuste em vez de reformas estruturais pode não ser suficiente a longo prazo. A sustentabilidade fiscal de longo prazo depende de um monitoramento constante e de políticas que possam responder adequadamente às mudanças econômicas e financeiras. Reformas fiscais que aumentem a transparência, melhorem a gestão da dívida e incentivem a responsabilidade fiscal são fundamentais para garantir a sustentabilidade das finanças públicas.

Em resumo, a política fiscal brasileira demonstra uma capacidade notável de resiliência e ajuste frente aos choques econômicos, como evidenciado pelas análises realizadas. No entanto, para assegurar a sustentabilidade fiscal a longo prazo, é imperativo que haja um compromisso contínuo com o monitoramento rigoroso das finanças públicas, transparência nas ações fiscais e a implementação de reformas estruturais abrangentes. Essas reformas devem incluir melhorias na gestão da dívida pública, aumentos na eficiência da arrecadação de receitas e a promoção de uma maior responsabilidade fiscal. A capacidade de responder eficazmente a choques econômicos, juntamente com uma política fiscal estável e previsível, será crucial para o desenvolvimento econômico sustentável do Brasil nas próximas décadas. Garantir a sustentabilidade fiscal não apenas promove a estabilidade macroeconômica, mas também cria um ambiente propício para investimentos, crescimento econômico e melhoria do bem-estar da população brasileira.