Questão A

Fase preparatória dos dados e de convencimento do leitor

Enunciado 1

Explique a motivação econômica da escolha das variáveis, realçando a relação econômica que possuem conjuntamente.

Para esse trabalho iremos estar lidando com 5 séries temporais. Abaixo apresentamos quais são essas séries e de onde extraimos os dados:

A motivação econômica de criar um VAR com essas variáveis é bastante intuitiva. Para mostrar isso, pensaremos em como essas variáveis impactam o PIB: um choque inflacionário tende a afetar o PIB de diversas maneiras, mas um aumento na inflação, por exemplo, tende a reduzir o poder de compra da população, o que, por sua vez, tende a reduzir o PIB; um aumento no desemprego gera efeitos similares ao do exposto acima para a inflação, ou seja, menos indivíduos trabalhando implica em menos pessoas recebendo salários o que tende a reduzir o consumo; um aumento na incerteza, por sua vez, torna empresários mais avessos ao risco, o que reduz o investimento e, por consequência o PIB; por fim, um aumento na taxa básica de juros (SELIC) tende a aumentar o custo de empréstimo e o custo de oportunidade de projetos, o que tende a gerar uma redução no investimento e no PIB.

Enunciado 2

Apresentar gráficos das séries originais.

PIB

pib <- sidrar::get_sidra(api = "/t/6613/n1/all/v/all/p/all/c11255/90707/d/v9319%202") %>% 
  dplyr::select(`Trimestre (Código)`, Valor) %>%
  set_names("Data", "Valores")

pib$Data <- ymd(19960301) %m+% months(seq(0, 308, by = 3))
##       Data               Valores      
##  Min.   :1996-03-01   Min.   :175699  
##  1st Qu.:2002-07-17   1st Qu.:204609  
##  Median :2008-12-01   Median :258516  
##  Mean   :2008-11-30   Mean   :251959  
##  3rd Qu.:2015-04-16   3rd Qu.:295538  
##  Max.   :2021-09-01   Max.   :312558

IPCA

ipca <- sidrar::get_sidra(api = "/t/1737/n1/all/v/63/p/all/d/v63%202") %>% 
  dplyr::select(`Mês (Código)`, Valor) %>%
  set_names("Data", "Valores")

ipca$Data <- as.Date(ym(ipca$Data))
ipca$Valores <- ipca$Valores / 100
ipca <- ipca[-1, ]
##       Data               Valores        
##  Min.   :1980-01-01   Min.   :-0.00510  
##  1st Qu.:1990-06-23   1st Qu.: 0.00380  
##  Median :2000-12-16   Median : 0.00780  
##  Mean   :2000-12-15   Mean   : 0.06068  
##  3rd Qu.:2011-06-08   3rd Qu.: 0.07125  
##  Max.   :2021-12-01   Max.   : 0.82390

Desemprego

desemprego <- read_excel("Desemprego.xlsx")

data <- strsplit(desemprego$Data, ".", fixed = TRUE)
data <- lapply(data, function(x) paste0(x[3], x[2], x[1]))
data <- do.call("c", data)
desemprego$Data <- as.Date(lubridate::ymd(data))

valor <- substr(desemprego$Atual,1,nchar(desemprego$Atual)-1)
desemprego$Atual <- as.numeric(gsub(",", ".", valor))/100
##       Data                Atual        
##  Min.   :2001-11-01   Min.   :0.04300  
##  1st Qu.:2006-10-16   1st Qu.:0.07100  
##  Median :2011-10-27   Median :0.10200  
##  Mean   :2011-12-02   Mean   :0.09636  
##  3rd Qu.:2017-02-12   3rd Qu.:0.12000  
##  Max.   :2022-01-28   Max.   :0.14700

Incerteza

theurl <- "http://www.yahii.com.br/iieBR.html"
file<-read_html(theurl)
tables<-html_nodes(file, "table")

lista_tabelas <- list()
for (i in 1:3) {
  aux <- html_table(tables[i+5], fill = TRUE)[[1]]
  colnames(aux) <- aux[1, ]
  aux <- aux[-1, ]
  aux$Data_mes <- 1:12
  aux <- aux %>% dplyr::select(Data_mes, everything()) %>% dplyr::select(!`M/A`) 
  lista_tabelas[[i]] <- aux
}

incerteza <- merge(merge(lista_tabelas[[1]], lista_tabelas[[2]], by = "Data_mes"), lista_tabelas[[3]], by = "Data_mes")
incerteza <- incerteza[,c(-(ncol(incerteza)-1), -ncol(incerteza))]

incerteza <- incerteza %>% gather(year, value, -Data_mes)
incerteza$Data <- ym(200001) %m+% months(0:(nrow(incerteza)-1))
incerteza <- incerteza %>% dplyr::select(Data, value)

incerteza$value <- as.numeric(gsub(",", ".", incerteza$value))
##       Data                value       
##  Min.   :2000-01-01   Min.   : 83.60  
##  1st Qu.:2005-06-23   1st Qu.: 94.25  
##  Median :2010-12-16   Median :100.80  
##  Mean   :2010-12-16   Mean   :105.74  
##  3rd Qu.:2016-06-08   3rd Qu.:113.60  
##  Max.   :2021-12-01   Max.   :210.50

Selic

theurl <- "https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/pagamentos-e-parcelamentos/taxa-de-juros-selic"
file<-read_html(theurl)
tables<-html_nodes(file, "table")

lista_tabelas <- list()
for (i in 1:3) {
  aux <- html_table(tables[5-i], fill = TRUE)[[1]]
  colnames(aux) <- aux[1, ]
  aux <- aux[-1, ]
  aux$Data_mes <- 1:12
  aux <- aux %>% dplyr::select(Data_mes, everything()) %>% dplyr::select(!`Mês/Ano`) 
  lista_tabelas[[i]] <- aux
}

selic <- merge(merge(lista_tabelas[[1]], lista_tabelas[[2]], by = "Data_mes"), lista_tabelas[[3]], by = "Data_mes")
selic <- selic[,c(-(ncol(selic)-1), -ncol(selic))]

selic <- selic %>% gather(year, value, -Data_mes)
selic$Data <- ym(199501) %m+% months(0:(nrow(selic)-1))
selic <- selic %>% dplyr::select(Data, value)

selic$value <- substr(selic$value,1,nchar(selic$value)-1)
selic$value <- as.numeric(gsub(",", ".", selic$value))/100
##       Data                value        
##  Min.   :1995-01-01   Min.   :0.00000  
##  1st Qu.:2001-06-23   1st Qu.:0.00790  
##  Median :2007-12-16   Median :0.01075  
##  Mean   :2007-12-16   Mean   :0.01223  
##  3rd Qu.:2014-06-08   3rd Qu.:0.01500  
##  Max.   :2020-12-01   Max.   :0.04260

Enunciado 3

Apresentar as séries após feitos ajustes necessários para o trabalho. Ex: série dessazonaidada, logaritmos, primeiras diferenças. Mostre a evolução em gráficos.

PIB

Como fica claro pelo gráfico apresentado, a série PIB não é estacionária. Por isso, calculamos a diferença percentual dessa série.

pib$Valores <- append(NA, diff(pib$Valores)/pib$Valore[-length(pib$Valore)])

Inflação

A série de inflação possui um “problema” a mais que a série de PIB: a frequência é mensal. Para transformar essa série em trimestral, primeiro calculamos a taxa acumulada; em seguida, transformamos essa série em trimestral; por fim, calculamos a variação percentual dessa série. Ou seja, no fim teremos a variação percentual da inflação em cada trimestre.

ipca$Valores <- cumprod(ipca$Valores + 1)

ipca <- xts(ipca[,-1], ipca$Data)
ipca <- ipca[endpoints(ipca, on = "quarters"), ]
ipca <- PerformanceAnalytics::Return.calculate(ipca)

Desemprego

Para o desemprego, apenas transformamos os dados de mensal para trimestral.

desemprego <- xts(desemprego[,-1], desemprego$Data)
desemprego <- desemprego[endpoints(desemprego, on = "quarters"), ]

Incerteza

Para o índice de incerteza calculada pela FGV, primeiro transformamos a série em trimestral e, em seguida, calculamos a variação percentual.

incerteza <- xts(incerteza[,-1], incerteza$Data)
incerteza <- incerteza[endpoints(incerteza, on = "quarters"), ]

incerteza <- PerformanceAnalytics::Return.calculate(incerteza)

Selic

Para a Selic adotamos a mesma abordagem utilizada para a inflação.

selic$value <- cumprod(selic$value + 1)

selic <- xts(selic[,-1], selic$Data)
selic <- selic[endpoints(selic, on = "quarters"), ]
selic <- PerformanceAnalytics::Return.calculate(selic)

Dados Final

Como podemos perceber, temos séries na mesma frequência (trimestral), mas com datas de inicio e fim diferentes. Para corrigir esses problemas, primeiro fazemos um “merge” em todas essas bases de dados. Como podemos perceber pelo “resumo” dos nossos dados, temos valores nulos frutos da diferença supracitada.

dados_lista <- list(pib, ipca, desemprego, incerteza, selic)
dados <- do.call("merge.xts", dados_lista)
##      Index                 PIB                IPCA            Desemprego     
##  Min.   :1980-06-01   Min.   :-0.08854   Min.   :-0.00848   Min.   :0.04600  
##  1st Qu.:1990-11-08   1st Qu.:-0.00077   1st Qu.: 0.01230   1st Qu.:0.07400  
##  Median :2001-04-16   Median : 0.00758   Median : 0.02175   Median :0.10200  
##  Mean   :2001-04-16   Mean   : 0.00547   Mean   : 0.23399   Mean   :0.09624  
##  3rd Qu.:2011-09-23   3rd Qu.: 0.01352   3rd Qu.: 0.24600   3rd Qu.:0.12000  
##  Max.   :2022-03-01   Max.   : 0.07768   Max.   : 4.37021   Max.   :0.14700  
##                       NA's   :66         NA's   :1          NA's   :86       
##    Incerteza            Selic        
##  Min.   :-0.16014   Min.   :0.00471  
##  1st Qu.:-0.04473   1st Qu.:0.02409  
##  Median :-0.01799   Median :0.03255  
##  Mean   : 0.00863   Mean   :0.03702  
##  3rd Qu.: 0.04777   3rd Qu.:0.04429  
##  Max.   : 0.48665   Max.   :0.13082  
##  NA's   :81         NA's   :65

Para corrigir esse problema, restringimos nossa base de dados para trabalharmos apenas com aqueles trimestres que são comuns a todas as séries.

dados <- dados["2001-12-01/2019-12-01"]

Enunciado 4

Conduzam testes de raiz unitária para verificar se as séries a serem trabalhadas possuem raiz unitária. (Não é obrigado a estimar o VAR com séries estacionárias, como mencionei na aula.)

estats_adf <- function(serie){
  teste <- tseries::adf.test(serie)
  teste_estat <- c(as.numeric(teste$statistic), teste$p.value)
  return(as.data.frame(teste_estat))
}
lista_estat <- lapply(dados, estats_adf)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Warning in tseries::adf.test(serie): p-value smaller than printed p-value
as.data.frame(round(t(do.call("cbind", lista_estat)), 3), row.names = colnames(dados)) %>% set_names("Estat. D-F", "pvalor")
##            Estat. D-F pvalor
## PIB            -3.432  0.057
## IPCA           -3.944  0.017
## Desemprego     -1.870  0.628
## Incerteza      -4.395  0.010
## Selic          -2.455  0.390

Como podemos perceber, “IPCA” e “Incerteza” são estacionários ao nível de significância de 5% e “PIB” ao nível de 10%. Desemprego e Selic não podemos considerar como sendo estacionários.

Questão B

Estimação do VAR em forma reduzida.

Enunciado 5

Expliquem o processo de escolha das defasagens do VAR e eventuais restrições ao modelo em forma reduzida.

Para definição do número de defasagens, iremos utilizar a função VARSelect, que compara alguns critérios de informação para vários modelos com diferentes números de lags. Como não temos uma amostra muito grande (73 observações para cada indicador), precisamos garantir que nosso modelo não possua um número muito grande de lags - isso iria consumir muitos graus de liberdade. Assim, definimos que o número máximo de lags é 4 (1 ano).

VARselect(dados, lag.max = 4)
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      2      1      2 
## 
## $criteria
##                    1             2             3             4
## AIC(n) -4.566814e+01 -4.635799e+01 -4.637050e+01 -4.637955e+01
## HQ(n)  -4.528278e+01 -4.565149e+01 -4.534285e+01 -4.503077e+01
## SC(n)  -4.469679e+01 -4.457718e+01 -4.378023e+01 -4.297983e+01
## FPE(n)  1.470730e-20  7.463382e-21  7.589333e-21  7.958968e-21

Como base nos dados acima, selecionamos que o nosso modelo terá 2 lags.

Uma outra questão que precisa ser definida é relacionada às possíveis restrições ao VAR restrito. Nesse caso, não temos, a priori, nenhuma motivação econômica para restringir alguma variável - todas podem impactar e serem impactadas por todas as outras.

Enunciado 6

Estimem um VAR com as séries.

modelo_var <- VAR(dados, p = 2, type = "const")
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: PIB, IPCA, Desemprego, Incerteza, Selic 
## Deterministic variables: const 
## Sample size: 71 
## Log Likelihood: 1200.376 
## Roots of the characteristic polynomial:
## 0.9524 0.9246 0.7109 0.7109 0.6338 0.6338 0.4383 0.4383 0.226 0.226
## Call:
## VAR(y = dados, p = 2, type = "const")
## 
## 
## Estimation results for equation PIB: 
## ==================================== 
## PIB = PIB.l1 + IPCA.l1 + Desemprego.l1 + Incerteza.l1 + Selic.l1 + PIB.l2 + IPCA.l2 + Desemprego.l2 + Incerteza.l2 + Selic.l2 + const 
## 
##                Estimate Std. Error t value Pr(>|t|)  
## PIB.l1         0.195710   0.120816   1.620   0.1105  
## IPCA.l1       -0.123386   0.152704  -0.808   0.4223  
## Desemprego.l1 -0.154199   0.227705  -0.677   0.5009  
## Incerteza.l1  -0.026830   0.016754  -1.601   0.1145  
## Selic.l1      -0.893612   0.552998  -1.616   0.1114  
## PIB.l2        -0.062223   0.133770  -0.465   0.6435  
## IPCA.l2       -0.156791   0.196471  -0.798   0.4280  
## Desemprego.l2  0.165647   0.232204   0.713   0.4784  
## Incerteza.l2  -0.030290   0.017590  -1.722   0.0902 .
## Selic.l2       1.031769   0.525663   1.963   0.0543 .
## const          0.003879   0.005227   0.742   0.4608  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.01028 on 60 degrees of freedom
## Multiple R-Squared: 0.3672,  Adjusted R-squared: 0.2618 
## F-statistic: 3.482 on 10 and 60 DF,  p-value: 0.00116 
## 
## 
## Estimation results for equation IPCA: 
## ===================================== 
## IPCA = PIB.l1 + IPCA.l1 + Desemprego.l1 + Incerteza.l1 + Selic.l1 + PIB.l2 + IPCA.l2 + Desemprego.l2 + Incerteza.l2 + Selic.l2 + const 
## 
##                 Estimate Std. Error t value Pr(>|t|)    
## PIB.l1         4.037e-03  9.437e-02   0.043   0.9660    
## IPCA.l1        5.248e-01  1.193e-01   4.400 4.51e-05 ***
## Desemprego.l1 -3.650e-01  1.779e-01  -2.052   0.0445 *  
## Incerteza.l1   1.765e-02  1.309e-02   1.349   0.1826    
## Selic.l1       8.867e-01  4.320e-01   2.053   0.0445 *  
## PIB.l2        -1.198e-01  1.045e-01  -1.147   0.2561    
## IPCA.l2       -3.649e-01  1.535e-01  -2.378   0.0206 *  
## Desemprego.l2  3.377e-01  1.814e-01   1.862   0.0675 .  
## Incerteza.l2   2.676e-05  1.374e-02   0.002   0.9985    
## Selic.l2      -6.325e-01  4.106e-01  -1.540   0.1287    
## const          8.520e-03  4.083e-03   2.087   0.0412 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.008027 on 60 degrees of freedom
## Multiple R-Squared: 0.4541,  Adjusted R-squared: 0.3631 
## F-statistic: 4.991 on 10 and 60 DF,  p-value: 3.009e-05 
## 
## 
## Estimation results for equation Desemprego: 
## =========================================== 
## Desemprego = PIB.l1 + IPCA.l1 + Desemprego.l1 + Incerteza.l1 + Selic.l1 + PIB.l2 + IPCA.l2 + Desemprego.l2 + Incerteza.l2 + Selic.l2 + const 
## 
##                Estimate Std. Error t value Pr(>|t|)    
## PIB.l1        -0.337052   0.062037  -5.433 1.06e-06 ***
## IPCA.l1        0.368148   0.078411   4.695 1.59e-05 ***
## Desemprego.l1  1.011513   0.116923   8.651 3.83e-12 ***
## Incerteza.l1  -0.019539   0.008603  -2.271   0.0267 *  
## Selic.l1      -0.598806   0.283957  -2.109   0.0391 *  
## PIB.l2        -0.021029   0.068689  -0.306   0.7605    
## IPCA.l2       -0.033869   0.100885  -0.336   0.7383    
## Desemprego.l2 -0.035480   0.119233  -0.298   0.7671    
## Incerteza.l2  -0.019427   0.009032  -2.151   0.0355 *  
## Selic.l2       0.564886   0.269920   2.093   0.0406 *  
## const          0.000113   0.002684   0.042   0.9666    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.005277 on 60 degrees of freedom
## Multiple R-Squared: 0.9682,  Adjusted R-squared: 0.9629 
## F-statistic: 182.6 on 10 and 60 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation Incerteza: 
## ========================================== 
## Incerteza = PIB.l1 + IPCA.l1 + Desemprego.l1 + Incerteza.l1 + Selic.l1 + PIB.l2 + IPCA.l2 + Desemprego.l2 + Incerteza.l2 + Selic.l2 + const 
## 
##               Estimate Std. Error t value Pr(>|t|)   
## PIB.l1        -1.66148    0.96540  -1.721  0.09040 . 
## IPCA.l1       -0.03122    1.22021  -0.026  0.97967   
## Desemprego.l1  2.51026    1.81952   1.380  0.17282   
## Incerteza.l1  -0.35898    0.13387  -2.682  0.00945 **
## Selic.l1       3.11268    4.41883   0.704  0.48390   
## PIB.l2         2.13788    1.06891   2.000  0.05003 . 
## IPCA.l2       -1.87382    1.56993  -1.194  0.23735   
## Desemprego.l2 -2.82687    1.85547  -1.524  0.13288   
## Incerteza.l2  -0.06576    0.14056  -0.468  0.64160   
## Selic.l2      -2.69816    4.20041  -0.642  0.52309   
## const          0.05046    0.04176   1.208  0.23175   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.08212 on 60 degrees of freedom
## Multiple R-Squared: 0.1803,  Adjusted R-squared: 0.0437 
## F-statistic:  1.32 on 10 and 60 DF,  p-value: 0.241 
## 
## 
## Estimation results for equation Selic: 
## ====================================== 
## Selic = PIB.l1 + IPCA.l1 + Desemprego.l1 + Incerteza.l1 + Selic.l1 + PIB.l2 + IPCA.l2 + Desemprego.l2 + Incerteza.l2 + Selic.l2 + const 
## 
##                 Estimate Std. Error t value Pr(>|t|)    
## PIB.l1         0.0691342  0.0242334   2.853 0.005937 ** 
## IPCA.l1        0.1119577  0.0306294   3.655 0.000542 ***
## Desemprego.l1 -0.0190401  0.0456732  -0.417 0.678256    
## Incerteza.l1   0.0074597  0.0033604   2.220 0.030219 *  
## Selic.l1       1.2118054  0.1109208  10.925 6.75e-16 ***
## PIB.l2         0.0301693  0.0268317   1.124 0.265326    
## IPCA.l2        0.0890508  0.0394082   2.260 0.027484 *  
## Desemprego.l2  0.0175532  0.0465757   0.377 0.707596    
## Incerteza.l2   0.0015179  0.0035283   0.430 0.668583    
## Selic.l2      -0.3266919  0.1054379  -3.098 0.002959 ** 
## const         -0.0003912  0.0010484  -0.373 0.710327    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.002061 on 60 degrees of freedom
## Multiple R-Squared: 0.9679,  Adjusted R-squared: 0.9625 
## F-statistic: 180.7 on 10 and 60 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##                   PIB       IPCA Desemprego  Incerteza     Selic
## PIB         1.056e-04  9.116e-06 -1.085e-05 -2.535e-04 3.765e-06
## IPCA        9.116e-06  6.444e-05 -2.520e-06  5.587e-05 5.268e-06
## Desemprego -1.085e-05 -2.520e-06  2.784e-05  2.875e-05 1.944e-06
## Incerteza  -2.535e-04  5.587e-05  2.875e-05  6.743e-03 5.021e-05
## Selic       3.765e-06  5.268e-06  1.944e-06  5.021e-05 4.249e-06
## 
## Correlation matrix of residuals:
##                PIB     IPCA Desemprego Incerteza  Selic
## PIB         1.0000  0.11051   -0.20015  -0.30042 0.1777
## IPCA        0.1105  1.00000   -0.05948   0.08477 0.3184
## Desemprego -0.2001 -0.05948    1.00000   0.06634 0.1787
## Incerteza  -0.3004  0.08477    0.06634   1.00000 0.2966
## Selic       0.1777  0.31837    0.17870   0.29665 1.0000

Enunciado 7

Mostre os correlogramas dos resíduos de cada equação do modelo para certificar-se (e convencer o leitor) que estão branqueados.

residuos_var <- as.data.frame(residuals(modelo_var))

Questão C

Análise Estrutural

Enunciado 8

Explique as restrições impostas para realizar as análises estruturais.

Como sabemos, para sermos capazes de identificar o VAR estrutural, precisamos impor \(\frac{n^2 - n}{2}\) restrições. Como temos, 5 váriaveis, precisamos impor 10 restrições (\(\frac{5^2 - 5}{2}\)) ao nosso modelo.

matriz_rest <- diag(1, 5)

matriz_rest[lower.tri(matriz_rest)] <- NA
modelo_svar <- SVAR(modelo_var, Amat = matriz_rest, max.iter = 10000)
## Warning in SVAR(modelo_var, Amat = matriz_rest, max.iter = 10000): Convergence
## not achieved after 10000 iterations. Convergence value: 8.82835421471828e-05 .
## 
## SVAR Estimation Results:
## ======================== 
## 
## 
## Estimated A matrix:
##                  PIB      IPCA Desemprego Incerteza Selic
## PIB         1.000000  0.000000   0.000000  0.000000     0
## IPCA       -0.021512  1.000000   0.000000  0.000000     0
## Desemprego  0.096942  0.064463   1.000000  0.000000     0
## Incerteza   1.602843 -0.400037   0.005441  1.000000     0
## Selic      -0.007766  0.006273   0.043577 -0.008805     1

Enunciado 9

Mostre a função de resposta ao impulso de todas variáveis a todos os choques, quando fizer sentido, naturalmente.

resp_impul_plot <- vector("list", length = ncol(dados)^2)
cont <- 1
for (var_impluse in colnames(dados)) {
  for (var_reponse in colnames(dados)) {
    
    resp_impul <- irf(modelo_svar, impulse = var_impluse, response = var_reponse, boot = FALSE)
    
    df_plot <- data.frame(1:11, resp_impul$irf[[1]]) %>% set_names("X_axis", "Y_axis")
  
    
    resp_impul_plot[[cont]] <- ggplot(data = df_plot, aes(x = X_axis, y = Y_axis)) + geom_line() +       ylab("") + xlab("") + ggtitle(paste("FRI:", var_impluse, var_reponse, sep = " ")) +               theme(plot.title = element_text(size=8))
    
    cont <- cont + 1
  }
}

Enunciado 10

Estime as decomposições da variância do erro de previsão para 1, 2 e 4 anos após os choques. Comente os resultados.

fevd(modelo_svar, n.ahead = 16)
## $PIB
##             PIB         IPCA   Desemprego    Incerteza     Selic
##  [1,] 1.0000000 1.199439e-33 2.965239e-37 0.0000000000 0.0000000
##  [2,] 0.5622288 8.157183e-03 6.997047e-03 0.0006362409 0.4219807
##  [3,] 0.4908593 8.546765e-02 6.150849e-03 0.0011051126 0.4164171
##  [4,] 0.4558197 1.110568e-01 1.126826e-02 0.0010272007 0.4208280
##  [5,] 0.4468837 1.083938e-01 2.281009e-02 0.0010207000 0.4208917
##  [6,] 0.4418873 1.159392e-01 2.320858e-02 0.0010068035 0.4179580
##  [7,] 0.4256958 1.155065e-01 2.234423e-02 0.0009833997 0.4354700
##  [8,] 0.4072130 1.114423e-01 2.138330e-02 0.0009609852 0.4590004
##  [9,] 0.3969172 1.099783e-01 2.098176e-02 0.0009465180 0.4711762
## [10,] 0.3909904 1.102555e-01 2.069130e-02 0.0009347670 0.4771281
## [11,] 0.3863577 1.100299e-01 2.044572e-02 0.0009252747 0.4822414
## [12,] 0.3825414 1.093154e-01 2.024314e-02 0.0009179651 0.4869821
## [13,] 0.3797663 1.088002e-01 2.013146e-02 0.0009126632 0.4903893
## [14,] 0.3776923 1.086120e-01 2.006678e-02 0.0009084852 0.4927204
## [15,] 0.3758449 1.085093e-01 1.999042e-02 0.0009047420 0.4947507
## [16,] 0.3740920 1.083235e-01 1.991125e-02 0.0009013449 0.4967719
## 
## $IPCA
##                PIB      IPCA   Desemprego    Incerteza     Selic
##  [1,] 0.0004625398 0.9995375 1.855733e-40 0.0000000000 0.0000000
##  [2,] 0.0004039650 0.5791523 7.215379e-02 0.0002867904 0.3480032
##  [3,] 0.0004239016 0.3548387 6.032058e-02 0.0003695887 0.5840472
##  [4,] 0.0035099029 0.3277914 5.489607e-02 0.0003964522 0.6134062
##  [5,] 0.0079578617 0.3276149 5.450306e-02 0.0003947136 0.6095295
##  [6,] 0.0102664779 0.3278959 5.657924e-02 0.0003962515 0.6048621
##  [7,] 0.0106442851 0.3240017 5.886654e-02 0.0003919860 0.6060955
##  [8,] 0.0107345844 0.3218894 5.870927e-02 0.0003909288 0.6082758
##  [9,] 0.0110187409 0.3210327 5.859716e-02 0.0003903155 0.6089611
## [10,] 0.0113365165 0.3205584 5.877622e-02 0.0003893538 0.6089396
## [11,] 0.0115229541 0.3192215 5.924739e-02 0.0003880744 0.6096201
## [12,] 0.0116466250 0.3176324 5.947396e-02 0.0003873706 0.6108597
## [13,] 0.0118096134 0.3165868 5.954994e-02 0.0003868889 0.6116668
## [14,] 0.0120025737 0.3159153 5.968008e-02 0.0003863345 0.6120157
## [15,] 0.0121684251 0.3153009 5.988782e-02 0.0003857718 0.6122571
## [16,] 0.0122963646 0.3146997 6.008255e-02 0.0003853090 0.6125360
## 
## $Desemprego
##               PIB        IPCA Desemprego    Incerteza      Selic
##  [1,] 0.009536733 0.004098857  0.9863644 0.0000000000 0.00000000
##  [2,] 0.061854360 0.033864488  0.7709516 0.0002285083 0.13310105
##  [3,] 0.100124506 0.073136156  0.7249320 0.0002900184 0.10151736
##  [4,] 0.132657333 0.094075605  0.6818609 0.0002267121 0.09117949
##  [5,] 0.146177487 0.106235429  0.6340807 0.0001913312 0.11331502
##  [6,] 0.145849749 0.122344499  0.5952835 0.0001739621 0.13634829
##  [7,] 0.142528664 0.137961853  0.5632463 0.0001614674 0.15610169
##  [8,] 0.139140831 0.146849505  0.5378906 0.0001535451 0.17596551
##  [9,] 0.136439613 0.151028323  0.5203216 0.0001484211 0.19206200
## [10,] 0.134366077 0.154185275  0.5088470 0.0001434589 0.20245819
## [11,] 0.132769503 0.157396060  0.5003717 0.0001387180 0.20932407
## [12,] 0.131526875 0.160076230  0.4931092 0.0001347985 0.21515289
## [13,] 0.130485679 0.161956110  0.4867148 0.0001318277 0.22071158
## [14,] 0.129536689 0.163402918  0.4811901 0.0001294941 0.22574076
## [15,] 0.128640976 0.164729194  0.4763405 0.0001275266 0.23016176
## [16,] 0.127797736 0.165927525  0.4719412 0.0001258753 0.23420768
## 
## $Incerteza
##             PIB       IPCA   Desemprego  Incerteza     Selic
##  [1,] 0.6864140 0.04332441 8.002050e-06 0.27025355 0.0000000
##  [2,] 0.2062604 0.01298843 2.681011e-01 0.05269238 0.4599576
##  [3,] 0.2927418 0.01459615 2.625843e-01 0.04440370 0.3856740
##  [4,] 0.2662460 0.01728402 2.396507e-01 0.04047198 0.4363474
##  [5,] 0.2647274 0.02048926 2.431190e-01 0.04000918 0.4316551
##  [6,] 0.2614647 0.02945048 2.416296e-01 0.03951237 0.4279428
##  [7,] 0.2595739 0.03133393 2.398699e-01 0.03922630 0.4299960
##  [8,] 0.2580479 0.03112164 2.385930e-01 0.03894953 0.4332879
##  [9,] 0.2573778 0.03108585 2.391034e-01 0.03883169 0.4336013
## [10,] 0.2569598 0.03177437 2.396706e-01 0.03875273 0.4328425
## [11,] 0.2566479 0.03245367 2.397453e-01 0.03868389 0.4324693
## [12,] 0.2563364 0.03266312 2.396909e-01 0.03860740 0.4327021
## [13,] 0.2560132 0.03278679 2.397974e-01 0.03853118 0.4328715
## [14,] 0.2557209 0.03305170 2.399806e-01 0.03846657 0.4327802
## [15,] 0.2554511 0.03338913 2.400586e-01 0.03840852 0.4326926
## [16,] 0.2551948 0.03363493 2.400614e-01 0.03835326 0.4327556
## 
## $Selic
##                PIB         IPCA  Desemprego    Incerteza     Selic
##  [1,] 4.473589e-06 3.770785e-09 0.001899381 7.737795e-05 0.9980188
##  [2,] 1.396273e-03 5.420564e-03 0.002839748 1.629489e-04 0.9901805
##  [3,] 4.246703e-03 2.188893e-02 0.004745562 1.891527e-04 0.9689297
##  [4,] 7.061131e-03 3.064296e-02 0.009056001 1.979745e-04 0.9530419
##  [5,] 9.170061e-03 3.007774e-02 0.012547681 2.048614e-04 0.9479997
##  [6,] 1.104759e-02 2.815841e-02 0.014135087 2.080228e-04 0.9464509
##  [7,] 1.282289e-02 2.733901e-02 0.015055452 2.064282e-04 0.9445762
##  [8,] 1.424882e-02 2.709124e-02 0.016019541 2.032630e-04 0.9424371
##  [9,] 1.522359e-02 2.669737e-02 0.016963627 2.008690e-04 0.9409145
## [10,] 1.590081e-02 2.618615e-02 0.017677159 1.995449e-04 0.9400363
## [11,] 1.644760e-02 2.579119e-02 0.018202249 1.986489e-04 0.9393603
## [12,] 1.692007e-02 2.554187e-02 0.018673778 1.978346e-04 0.9386664
## [13,] 1.731908e-02 2.533784e-02 0.019137139 1.971660e-04 0.9380088
## [14,] 1.765641e-02 2.512798e-02 0.019565419 1.966973e-04 0.9374535
## [15,] 1.795490e-02 2.493204e-02 0.019942996 1.963448e-04 0.9369737
## [16,] 1.822645e-02 2.476762e-02 0.020284476 1.960236e-04 0.9365254