UNIVERSIDADE FEDERAL DA PARAÍBA
CENTRO DE CIÊNCIAS SOCIAIS APLICADAS
DEPARTAMENTO DE ECONOMIA
ORIENTADOR: PROF.DR. SINÉZIO FERNANDES MAIA
DISCENTE: LETÍCIA CAVALCANTE LIMA
UMA ANÁLISE DOS EFEITOS DOS CHOQUES FISCAIS SOBRE A ECONOMIA BRASILEIRA (2000 - 2024)
DADOS TRIMESTRAIS
DADOS REAIS
TESTE DE RAIZ UNITÁRIA
#========= TESTE DE RAIZ UNITÁRIA
# ADF (Dickey-Fuller aumentado)
adf_receita<- ur.df(dados_log$log_receita, type = "trend", lags = 4, selectlags = "AIC")
summary(adf_receita)@teststat tau3 phi2 phi3
statistic -1.856816 3.709098 2.129326
summary(adf_receita)@cval 1pct 5pct 10pct
tau3 -4.04 -3.45 -3.15
phi2 6.50 4.88 4.16
phi3 8.73 6.49 5.47
adf_despesa<- ur.df(dados_log$log_despesa, type = "trend", lags = 4, selectlags = "AIC")
summary(adf_despesa)@teststat tau3 phi2 phi3
statistic -2.012027 3.092934 2.548794
summary(adf_despesa)@cval 1pct 5pct 10pct
tau3 -4.04 -3.45 -3.15
phi2 6.50 4.88 4.16
phi3 8.73 6.49 5.47
adf_pib<- ur.df(dados_log$log_pib, type = "trend", lags = 4, selectlags = "AIC")
summary(adf_pib)@teststat tau3 phi2 phi3
statistic -1.532247 2.63882 1.468831
summary(adf_pib)@cval 1pct 5pct 10pct
tau3 -4.04 -3.45 -3.15
phi2 6.50 4.88 4.16
phi3 8.73 6.49 5.47
#Todos são raiz unitária.
adf_ipca<- ur.df(dados_log$ipca_trimestral, type = "drift", lags = 4, selectlags = "AIC")
summary(adf_ipca)@teststat tau2 phi1
statistic -4.003087 8.020787
summary(adf_ipca)@cval 1pct 5pct 10pct
tau2 -3.51 -2.89 -2.58
phi1 6.70 4.71 3.86
adf_selic<- ur.df(dados_log$selic_trimestral, type = "drift", lags = 4, selectlags = "AIC")
summary(adf_selic)@teststat tau2 phi1
statistic -1.634234 1.349363
summary(adf_selic)@cval 1pct 5pct 10pct
tau2 -3.51 -2.89 -2.58
phi1 6.70 4.71 3.86
#A selic é raiz unitária.
# Phillips-Perron
pp_receita<- ur.pp(dados_log$log_receita, type = "Z-tau", model = "trend", lags = "short")
summary(pp_receita)@teststat[1] -4.248561
summary(pp_receita)@cval 1pct 5pct 10pct
critical values -4.053014 -3.455217 -3.153098
pp_despesa<- ur.pp(dados_log$log_despesa, type = "Z-tau", model = "trend", lags = "short")
summary(pp_despesa)@teststat[1] -6.344243
summary(pp_despesa)@cval 1pct 5pct 10pct
critical values -4.053014 -3.455217 -3.153098
pp_pib<- ur.pp(dados_log$log_pib, type = "Z-tau", model = "trend", lags = "short")
summary(pp_pib)@teststat[1] -1.809367
summary(pp_pib)@cval 1pct 5pct 10pct
critical values -4.053014 -3.455217 -3.153098
#Apenas o pib é raiz unitária.
pp_ipca <- ur.pp(dados_log$ipca_trimestral, type = "Z-tau", model = "const", lags = "short")
summary(pp_ipca)@teststat[1] -6.28218
summary(pp_ipca)@cval 1pct 5pct 10pct
critical values -3.49708 -2.89061 -2.582082
pp_selic <- ur.pp(dados_log$selic_trimestral, type = "Z-tau", model = "const", lags = "short")
summary(pp_selic)@teststat[1] -2.099326
summary(pp_selic)@cval 1pct 5pct 10pct
critical values -3.49708 -2.89061 -2.582082
#selic é raiz unitária.
# DF-GLS (Elliot-Rothenberg-Stock)
dfgls_receita <- ur.ers(dados_log$log_receita, type = "DF-GLS", model = "trend", lag.max = 4)
summary(dfgls_receita)@teststat[1] -1.330135
summary(dfgls_receita)@cval 1pct 5pct 10pct
critical values -3.46 -2.93 -2.64
dfgls_despesa <- ur.ers(dados_log$log_despesa, type = "DF-GLS", model = "trend", lag.max = 4)
summary(dfgls_despesa)@teststat[1] -1.665303
summary(dfgls_despesa)@cval 1pct 5pct 10pct
critical values -3.46 -2.93 -2.64
dfgls_pib <- ur.ers(dados_log$log_pib, type = "DF-GLS", model = "trend", lag.max = 4)
summary(dfgls_pib)@teststat[1] -1.321736
summary(dfgls_pib)@cval 1pct 5pct 10pct
critical values -3.46 -2.93 -2.64
#Todos são raiz unitária.
dfgls_ipca <- ur.ers(dados_log$ipca_trimestral, type = "DF-GLS", model = "const", lag.max = 4)
summary(dfgls_ipca)@teststat[1] -2.866372
summary(dfgls_ipca)@cval 1pct 5pct 10pct
critical values -2.59 -1.94 -1.62
dfgls_selic <- ur.ers(dados_log$selic_trimestral, type = "DF-GLS", model = "const", lag.max = 4)
summary(dfgls_selic)@teststat[1] -1.113304
summary(dfgls_selic)@cval 1pct 5pct 10pct
critical values -2.59 -1.94 -1.62
#A selic é raiz unitária.TESTE DE QUEBRA ESTRUTURAL
#========= TESTE DE QUEBRA ESTRUTURAL
# Zivot-Andrews (1992)
za_receita <- ur.za(dados_log$log_receita, model = "both", lag = 4)
za_despesa <- ur.za(dados_log$log_despesa, model = "both", lag = 4)
za_pib <- ur.za(dados_log$log_pib, model = "both", lag = 4)
summary(za_receita)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.47349 -0.04464 -0.00150 0.04834 0.33039
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.797553 2.077317 3.272 0.001537 **
y.l1 0.443975 0.171248 2.593 0.011192 *
trend 0.008581 0.002891 2.968 0.003884 **
y.dl1 -0.192001 0.169916 -1.130 0.261628
y.dl2 -0.342051 0.150504 -2.273 0.025537 *
y.dl3 -0.223188 0.128965 -1.731 0.087109 .
y.dl4 0.110027 0.106468 1.033 0.304301
du -0.171701 0.050227 -3.418 0.000964 ***
dt -0.004016 0.002532 -1.586 0.116374
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.09017 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.887, Adjusted R-squared: 0.8765
F-statistic: 84.42 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -3.2469
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 58
summary(za_despesa)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.18033 -0.05272 -0.01646 0.03044 0.53682
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.436776 2.358377 4.849 0.00000545 ***
y.l1 0.047119 0.196830 0.239 0.811372
trend 0.016860 0.003654 4.613 0.00001371 ***
y.dl1 0.200274 0.187607 1.068 0.288726
y.dl2 0.054656 0.156740 0.349 0.728166
y.dl3 -0.078770 0.123575 -0.637 0.525541
y.dl4 0.394324 0.098361 4.009 0.000129 ***
du 0.103157 0.048132 2.143 0.034922 *
dt -0.011154 0.002652 -4.206 0.00006344 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.09719 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.9286, Adjusted R-squared: 0.9219
F-statistic: 139.7 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -4.8411
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 42
summary(za_pib)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.087948 -0.010939 0.000188 0.010557 0.060821
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.2875111 0.9939694 4.314 0.00004269245312932 ***
y.l1 0.6924703 0.0715429 9.679 0.00000000000000204 ***
trend 0.0043975 0.0010355 4.247 0.00005468922195808 ***
y.dl1 -0.0513875 0.0949303 -0.541 0.58969
y.dl2 -0.1305787 0.0854989 -1.527 0.13037
y.dl3 -0.2756271 0.0814809 -3.383 0.00108 **
y.dl4 0.5046801 0.0863966 5.841 0.00000009008567159 ***
du -0.0687197 0.0149587 -4.594 0.00001477862339190 ***
dt -0.0020593 0.0007512 -2.742 0.00744 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02249 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.9925, Adjusted R-squared: 0.9918
F-statistic: 1421 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -4.2985
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 60
#A despesa tem comportamento que lembra estacionariedade,
#mas existe um salto ou mudança estrutural que influencia o teste.
za_ipca <- ur.za(dados_log$ipca_trimestral, model = "both", lag = 4)
za_selic <- ur.za(dados_log$selic_trimestral, model = "both", lag = 4)
summary(za_ipca)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.94429 -0.12828 -0.00381 0.12836 0.79979
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.69405 0.39928 -1.738 0.08574 .
y.l1 0.35836 0.14147 2.533 0.01312 *
trend 0.14075 0.04199 3.352 0.00119 **
y.dl1 0.08564 0.13615 0.629 0.53098
y.dl2 -0.29136 0.12547 -2.322 0.02258 *
y.dl3 -0.01923 0.10133 -0.190 0.84997
y.dl4 -0.02879 0.09182 -0.314 0.75462
du -0.85922 0.19083 -4.503 0.000021 ***
dt -0.14043 0.04202 -3.342 0.00123 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.2584 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.4573, Adjusted R-squared: 0.4068
F-statistic: 9.058 on 8 and 86 DF, p-value: 0.000000006077
Teststatistic: -4.5356
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 13
summary(za_selic)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-1.6412 -0.3568 -0.0620 0.3320 3.2996
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.401860 0.680581 3.529 0.000672 ***
y.l1 0.882950 0.032752 26.959 < 0.0000000000000002 ***
trend -0.021156 0.006539 -3.235 0.001725 **
y.dl1 1.082691 0.097587 11.095 < 0.0000000000000002 ***
y.dl2 -0.505862 0.143890 -3.516 0.000703 ***
y.dl3 0.061674 0.137478 0.449 0.654841
y.dl4 0.065340 0.100186 0.652 0.516023
du -0.468186 0.411617 -1.137 0.258517
dt 0.087242 0.032633 2.673 0.008983 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.743 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.9796, Adjusted R-squared: 0.9777
F-statistic: 515.8 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -3.5738
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 78
#IPCA é provavelmente I(1), mas a quebra estrutural influencia a série.
#Selic também é I(1), mas com quebra estrutural relevante.MQO
#====== MQO COM 3 VARIÁVEIS
mqo_pib_3v <- lm(dlog_pib ~ dlog_despesa + dlog_receita,
data = dados_dif)
summary(mqo_pib_3v)
Call:
lm(formula = dlog_pib ~ dlog_despesa + dlog_receita, data = dados_dif)
Residuals:
Min 1Q Median 3Q Max
-0.05108 -0.02025 -0.00040 0.02247 0.08445
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.006552 0.002960 2.213 0.0292 *
dlog_despesa 0.089141 0.018891 4.719 0.0000080615 ***
dlog_receita 0.156331 0.025586 6.110 0.0000000213 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02929 on 96 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.4489, Adjusted R-squared: 0.4375
F-statistic: 39.1 on 2 and 96 DF, p-value: 0.0000000000003781
#======= MQO COM 5 VARIÁVEIS
mqo_pib_5v <- lm(dlog_pib ~ dlog_despesa + dlog_receita + ipca_trimestral + dselic,
data = dados_dif)
summary(mqo_pib_5v)
Call:
lm(formula = dlog_pib ~ dlog_despesa + dlog_receita + ipca_trimestral +
dselic, data = dados_dif)
Residuals:
Min 1Q Median 3Q Max
-0.054944 -0.017308 -0.000658 0.020570 0.089631
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0201150 0.0059476 3.382 0.001050 **
dlog_despesa 0.0759138 0.0188540 4.026 0.000115 ***
dlog_receita 0.1646399 0.0249872 6.589 0.00000000254 ***
ipca_trimestral -0.0267440 0.0101326 -2.639 0.009723 **
dselic 0.0006364 0.0025658 0.248 0.804641
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02836 on 94 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.4943, Adjusted R-squared: 0.4727
F-statistic: 22.97 on 4 and 94 DF, p-value: 0.0000000000002944
O MODELO COM 3 VARIÁVEIS
TESTE DE COINTEGRAÇÃO
johansen_test <- ca.jo(dados_johansen, type = "trace", ecdet = "const", K = 5)
summary(johansen_test)
######################
# Johansen-Procedure #
######################
Test type: trace statistic , without linear trend and constant in cointegration
Eigenvalues (lambda):
[1] 0.2063409236167832727649 0.1353052404507800732247
[3] 0.0564645692188446499116 -0.0000000000000002220446
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 2 | 5.52 7.52 9.24 12.97
r <= 1 | 19.33 17.85 19.96 24.60
r = 0 | 41.29 32.00 34.91 41.07
Eigenvectors, normalised to first column:
(These are the cointegration relations)
receita.l5 despesa.l5 pib.l5 constant
receita.l5 1.0000000 1.000000 1.000000 1.0000000
despesa.l5 0.5501608 -1.600070 -3.863524 0.3216523
pib.l5 -1.7041544 1.021099 6.511620 -1.8686402
constant 4.9228801 -7.073097 -58.873122 10.1119000
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 constant
receita.d -0.59662382 -0.11285905 -0.012036749 -0.0000000000032733820
despesa.d -0.31430477 0.21835631 -0.005612171 -0.0000000000024396591
pib.d 0.08269093 -0.01486267 -0.005051043 0.0000000000006502894
johansen_test <- ca.jo(dados_johansen, type = "eigen", ecdet = "const", K = 5)
summary(johansen_test)
######################
# Johansen-Procedure #
######################
Test type: maximal eigenvalue statistic (lambda max) , without linear trend and constant in cointegration
Eigenvalues (lambda):
[1] 0.2063409236167832727649 0.1353052404507800732247
[3] 0.0564645692188446499116 -0.0000000000000002220446
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 2 | 5.52 7.52 9.24 12.97
r <= 1 | 13.81 13.75 15.67 20.20
r = 0 | 21.95 19.77 22.00 26.81
Eigenvectors, normalised to first column:
(These are the cointegration relations)
receita.l5 despesa.l5 pib.l5 constant
receita.l5 1.0000000 1.000000 1.000000 1.0000000
despesa.l5 0.5501608 -1.600070 -3.863524 0.3216523
pib.l5 -1.7041544 1.021099 6.511620 -1.8686402
constant 4.9228801 -7.073097 -58.873122 10.1119000
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 constant
receita.d -0.59662382 -0.11285905 -0.012036749 -0.0000000000032733820
despesa.d -0.31430477 0.21835631 -0.005612171 -0.0000000000024396591
pib.d 0.08269093 -0.01486267 -0.005051043 0.0000000000006502894
VAR PADRÃO
#Seleção do número de defasagens
lagselect <- VARselect(dados_var, lag.max = 8, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
8 5 5 8
$criteria
1 2 3
AIC(n) -15.9977500804743 -16.0666883790425 -16.31949506343803
HQ(n) -15.8649915713105 -15.8343609880058 -15.98759879052844
SC(n) -15.6688211356418 -15.4910627255856 -15.49717270135682
FPE(n) 0.0000001128072 0.0000001053683 0.00000008197035
4 5 6
AIC(n) -16.82385691063498 -17.27655382714432 -17.22179776297843
HQ(n) -16.39239175585253 -16.74551979048899 -16.59119484445023
SC(n) -15.75483783992941 -15.96083804781438 -15.65938527502414
FPE(n) 0.00000004965605 0.00000003173523 0.00000003376923
7 8
AIC(n) -17.16597554186461 -17.33127676077850
HQ(n) -16.43580374146353 -16.50153607850455
SC(n) -15.35686634528595 -15.27547085557548
FPE(n) 0.00000003607562 0.00000003100034
#Estimação do VAR
var_model <- VAR(dados_var, p = 5, type = "const")
summary(var_model)
VAR Estimation Results:
=========================
Endogenous variables: log_receita, log_despesa, log_pib
Deterministic variables: const
Sample size: 95
Log Likelihood: 467.65
Roots of the characteristic polynomial:
0.9795 0.979 0.9625 0.9625 0.8787 0.7639 0.7128 0.7128 0.6765 0.6765 0.6124 0.6124 0.5871 0.436 0.436
Call:
VAR(y = dados_var, p = 5, type = "const")
Estimation results for equation log_receita:
============================================
log_receita = log_receita.l1 + log_despesa.l1 + log_pib.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + log_receita.l3 + log_despesa.l3 + log_pib.l3 + log_receita.l4 + log_despesa.l4 + log_pib.l4 + log_receita.l5 + log_despesa.l5 + log_pib.l5 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 0.122114 0.134462 0.908 0.366552
log_despesa.l1 -0.006810 0.095366 -0.071 0.943251
log_pib.l1 1.439198 0.409293 3.516 0.000728 ***
log_receita.l2 -0.311562 0.137368 -2.268 0.026055 *
log_despesa.l2 -0.004602 0.088263 -0.052 0.958551
log_pib.l2 0.656190 0.414389 1.584 0.117300
log_receita.l3 0.291961 0.138633 2.106 0.038380 *
log_despesa.l3 -0.020615 0.090052 -0.229 0.819520
log_pib.l3 -1.182630 0.415288 -2.848 0.005610 **
log_receita.l4 0.062095 0.146873 0.423 0.673606
log_despesa.l4 0.068290 0.092611 0.737 0.463072
log_pib.l4 0.990333 0.459393 2.156 0.034147 *
log_receita.l5 0.113872 0.139555 0.816 0.416974
log_despesa.l5 -0.137416 0.089892 -1.529 0.130339
log_pib.l5 -1.079970 0.416823 -2.591 0.011395 *
const -1.430204 1.448852 -0.987 0.326593
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08047 on 79 degrees of freedom
Multiple R-Squared: 0.9173, Adjusted R-squared: 0.9017
F-statistic: 58.45 on 15 and 79 DF, p-value: < 0.00000000000000022
Estimation results for equation log_despesa:
============================================
log_despesa = log_receita.l1 + log_despesa.l1 + log_pib.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + log_receita.l3 + log_despesa.l3 + log_pib.l3 + log_receita.l4 + log_despesa.l4 + log_pib.l4 + log_receita.l5 + log_despesa.l5 + log_pib.l5 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 -0.36903 0.15965 -2.312 0.023411 *
log_despesa.l1 0.36212 0.11323 3.198 0.001991 **
log_pib.l1 0.80642 0.48595 1.659 0.100989
log_receita.l2 0.20888 0.16310 1.281 0.204036
log_despesa.l2 0.03262 0.10479 0.311 0.756419
log_pib.l2 -0.37912 0.49200 -0.771 0.443267
log_receita.l3 0.13462 0.16460 0.818 0.415877
log_despesa.l3 -0.07571 0.10692 -0.708 0.480969
log_pib.l3 -0.62603 0.49307 -1.270 0.207938
log_receita.l4 -0.24684 0.17438 -1.416 0.160845
log_despesa.l4 0.38673 0.10996 3.517 0.000726 ***
log_pib.l4 1.64425 0.54544 3.015 0.003459 **
log_receita.l5 0.17080 0.16569 1.031 0.305765
log_despesa.l5 -0.20638 0.10673 -1.934 0.056735 .
log_pib.l5 -0.72347 0.49489 -1.462 0.147741
const -2.76133 1.72022 -1.605 0.112436
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.09555 on 79 degrees of freedom
Multiple R-Squared: 0.9366, Adjusted R-squared: 0.9245
F-statistic: 77.78 on 15 and 79 DF, p-value: < 0.00000000000000022
Estimation results for equation log_pib:
========================================
log_pib = log_receita.l1 + log_despesa.l1 + log_pib.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + log_receita.l3 + log_despesa.l3 + log_pib.l3 + log_receita.l4 + log_despesa.l4 + log_pib.l4 + log_receita.l5 + log_despesa.l5 + log_pib.l5 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 0.005414 0.036470 0.148 0.88237
log_despesa.l1 0.025728 0.025866 0.995 0.32292
log_pib.l1 0.879463 0.111010 7.922 0.0000000000123 ***
log_receita.l2 -0.002820 0.037258 -0.076 0.93986
log_despesa.l2 0.043196 0.023939 1.804 0.07498 .
log_pib.l2 0.008709 0.112392 0.077 0.93843
log_receita.l3 0.071115 0.037601 1.891 0.06225 .
log_despesa.l3 0.062871 0.024424 2.574 0.01192 *
log_pib.l3 -0.342585 0.112636 -3.042 0.00319 **
log_receita.l4 -0.028917 0.039835 -0.726 0.47003
log_despesa.l4 0.035421 0.025118 1.410 0.16241
log_pib.l4 0.832190 0.124599 6.679 0.0000000030506 ***
log_receita.l5 0.017986 0.037851 0.475 0.63597
log_despesa.l5 -0.078427 0.024381 -3.217 0.00188 **
log_pib.l5 -0.566762 0.113052 -5.013 0.0000032098786 ***
const 0.809573 0.392964 2.060 0.04267 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02183 on 79 degrees of freedom
Multiple R-Squared: 0.9935, Adjusted R-squared: 0.9923
F-statistic: 805.8 on 15 and 79 DF, p-value: < 0.00000000000000022
Covariance matrix of residuals:
log_receita log_despesa log_pib
log_receita 0.0064761 -0.0020302 0.0009517
log_despesa -0.0020302 0.0091292 -0.0002549
log_pib 0.0009517 -0.0002549 0.0004764
Correlation matrix of residuals:
log_receita log_despesa log_pib
log_receita 1.0000 -0.2640 0.5418
log_despesa -0.2640 1.0000 -0.1222
log_pib 0.5418 -0.1222 1.0000
#Causalidade de Granger
causality(var_model, cause = "log_receita")$Granger
Granger causality H0: log_receita do not Granger-cause log_despesa
log_pib
data: VAR object var_model
F-Test = 1.7466, df1 = 10, df2 = 237, p-value = 0.07145
$Instant
H0: No instantaneous causality between: log_receita and log_despesa
log_pib
data: VAR object var_model
Chi-squared = 23.747, df = 2, p-value = 0.000006972
causality(var_model, cause = "log_despesa")$Granger
Granger causality H0: log_despesa do not Granger-cause log_receita
log_pib
data: VAR object var_model
F-Test = 3.7479, df1 = 10, df2 = 237, p-value = 0.0001078
$Instant
H0: No instantaneous causality between: log_despesa and log_receita
log_pib
data: VAR object var_model
Chi-squared = 6.2422, df = 2, p-value = 0.04411
causality(var_model, cause = "log_pib")$Granger
Granger causality H0: log_pib do not Granger-cause log_receita
log_despesa
data: VAR object var_model
F-Test = 5.0832, df1 = 10, df2 = 237, p-value = 0.00000102
$Instant
H0: No instantaneous causality between: log_pib and log_receita
log_despesa
data: VAR object var_model
Chi-squared = 21.586, df = 2, p-value = 0.00002055
#Funções de Impulso-Resposta (IRF)
#Ordem de Granger
irf_var_padrão <- irf(var_model,
impulse = c("log_pib", "log_despesa", "log_receita"),
response = c("log_pib", "log_despesa", "log_receita"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_padrão)irf_var_padrão_pib <- irf(var_model,
impulse = c("log_pib", "log_despesa", "log_receita"),
response = c("log_pib"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_padrão_pib)irf_var_padrão_despesa <- irf(var_model,
impulse = c("log_pib", "log_despesa", "log_receita"),
response = c("log_despesa"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_padrão_despesa)irf_var_padrão_receita <- irf(var_model,
impulse = c("log_pib", "log_despesa", "log_receita"),
response = c("log_receita"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_padrão_receita)#Decomposição da variância (FEVD)
fevd_var <- fevd(var_model, n.ahead = 12)
plot(fevd_var)#Testes de robustez / Diagnóstico
#Teste de autocorrelação dos resíduos (LM test)
serial.test(var_model, lags.pt = 16, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object var_model
Chi-squared = 106.54, df = 99, p-value = 0.2843
#Teste de normalidade dos resíduos
normality.test(var_model)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 939.82, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 67.831, df = 3, p-value = 0.00000000000001243
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 871.99, df = 3, p-value < 0.00000000000000022
## Teste de heterocedasticidade (ARCH LM test)
arch.test(var_model, lags.multi = 12)
ARCH (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 450.27, df = 432, p-value = 0.2625
#Estabilidade do modelo (roots dentro do círculo unitário)
roots(var_model) #estabilidade [1] 0.9794564 0.9790216 0.9625213 0.9625213 0.8787395 0.7639417 0.7127645
[8] 0.7127645 0.6764669 0.6764669 0.6124081 0.6124081 0.5870530 0.4359686
[15] 0.4359686
plot(var_model) VAR EM 1° DIFERENÇA
#Seleção do número de defasagens
lagselect <- VARselect(dados_diff, lag.max = 8, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
7 4 4 7
$criteria
1 2 3 4
AIC(n) -15.3598469825066 -15.866485844223 -16.46542112481361 -17.08567765960795
HQ(n) -15.2262678053730 -15.632722284239 -16.13147318197939 -16.65154533392346
SC(n) -15.0287446299989 -15.287056727334 -15.63766524354432 -16.00959501395787
FPE(n) 0.0000002134898 0.000000128727 0.00000007084668 0.00000003822507
5 6 7
AIC(n) -16.9974308412076 -16.96356815905752 -17.13894637559417
HQ(n) -16.4631141326729 -16.32906706767250 -16.40426090135889
SC(n) -15.6730214311768 -15.39083198464587 -15.31788343680173
FPE(n) 0.0000000419682 0.00000004374569 0.00000003709989
8
AIC(n) -17.1290633632819
HQ(n) -16.2941935061963
SC(n) -15.0596736601086
FPE(n) 0.0000000380027
#Estimação do VAR em diferenças
var_diff <- VAR(dados_diff, p = 4, type = "const")
summary(var_diff)
VAR Estimation Results:
=========================
Endogenous variables: dlog_receita, dlog_despesa, dlog_pib
Deterministic variables: const
Sample size: 95
Log Likelihood: 448.998
Roots of the characteristic polynomial:
0.9801 0.9643 0.9643 0.782 0.7381 0.7381 0.6981 0.6981 0.695 0.5122 0.5122 0.103
Call:
VAR(y = dados_diff, p = 4, type = "const")
Estimation results for equation dlog_receita:
=============================================
dlog_receita = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.6897631 0.1274125 -5.414 0.000000601 ***
dlog_despesa.l1 -0.0238427 0.0947080 -0.252 0.801864
dlog_pib.l1 0.9590197 0.3720744 2.577 0.011742 *
dlog_receita.l2 -0.8602912 0.1534899 -5.605 0.000000272 ***
dlog_despesa.l2 -0.0120574 0.1045202 -0.115 0.908442
dlog_pib.l2 1.4910741 0.3859656 3.863 0.000223 ***
dlog_receita.l3 -0.3836274 0.1621628 -2.366 0.020356 *
dlog_despesa.l3 0.0027594 0.1004029 0.027 0.978141
dlog_pib.l3 0.0542510 0.4171131 0.130 0.896835
dlog_receita.l4 -0.1901460 0.1428224 -1.331 0.186765
dlog_despesa.l4 0.1199118 0.0870639 1.377 0.172172
dlog_pib.l4 0.8800373 0.4276797 2.058 0.042796 *
const -0.0003239 0.0124062 -0.026 0.979232
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.0849 on 82 degrees of freedom
Multiple R-Squared: 0.5697, Adjusted R-squared: 0.5067
F-statistic: 9.045 on 12 and 82 DF, p-value: 0.00000000008739
Estimation results for equation dlog_despesa:
=============================================
dlog_despesa = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.35671 0.15019 -2.375 0.01988 *
dlog_despesa.l1 -0.51222 0.11164 -4.588 0.0000159 ***
dlog_pib.l1 0.66910 0.43858 1.526 0.13096
dlog_receita.l2 -0.08766 0.18093 -0.484 0.62932
dlog_despesa.l2 -0.37610 0.12320 -3.053 0.00306 **
dlog_pib.l2 0.07278 0.45496 0.160 0.87329
dlog_receita.l3 0.06667 0.19115 0.349 0.72813
dlog_despesa.l3 -0.36694 0.11835 -3.100 0.00265 **
dlog_pib.l3 -0.61090 0.49167 -1.243 0.21759
dlog_receita.l4 -0.19483 0.16835 -1.157 0.25052
dlog_despesa.l4 0.11792 0.10263 1.149 0.25389
dlog_pib.l4 1.06883 0.50413 2.120 0.03702 *
const 0.01705 0.01462 1.166 0.24693
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.1001 on 82 degrees of freedom
Multiple R-Squared: 0.665, Adjusted R-squared: 0.616
F-statistic: 13.56 on 12 and 82 DF, p-value: 0.000000000000006386
Estimation results for equation dlog_pib:
=========================================
dlog_pib = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.004386 0.033191 -0.132 0.89519
dlog_despesa.l1 0.012151 0.024672 0.493 0.62368
dlog_pib.l1 -0.041488 0.096926 -0.428 0.66974
dlog_receita.l2 -0.023160 0.039984 -0.579 0.56403
dlog_despesa.l2 0.039469 0.027228 1.450 0.15099
dlog_pib.l2 0.005791 0.100545 0.058 0.95421
dlog_receita.l3 0.033427 0.042244 0.791 0.43106
dlog_despesa.l3 0.086261 0.026155 3.298 0.00144 **
dlog_pib.l3 -0.313572 0.108659 -2.886 0.00499 **
dlog_receita.l4 -0.004708 0.037205 -0.127 0.89961
dlog_despesa.l4 0.099483 0.022680 4.386 0.00003400 ***
dlog_pib.l4 0.540161 0.111411 4.848 0.00000582 ***
const 0.003817 0.003232 1.181 0.24094
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02212 on 82 degrees of freedom
Multiple R-Squared: 0.7231, Adjusted R-squared: 0.6826
F-statistic: 17.84 on 12 and 82 DF, p-value: < 0.00000000000000022
Covariance matrix of residuals:
dlog_receita dlog_despesa dlog_pib
dlog_receita 0.007209 -0.0022495 0.0009440
dlog_despesa -0.002249 0.0100162 -0.0003774
dlog_pib 0.000944 -0.0003774 0.0004892
Correlation matrix of residuals:
dlog_receita dlog_despesa dlog_pib
dlog_receita 1.0000 -0.2647 0.5027
dlog_despesa -0.2647 1.0000 -0.1705
dlog_pib 0.5027 -0.1705 1.0000
#Causalidade de Granger
causality(var_diff, cause = "dlog_receita")$Granger
Granger causality H0: dlog_receita do not Granger-cause dlog_despesa
dlog_pib
data: VAR object var_diff
F-Test = 2.1873, df1 = 8, df2 = 246, p-value = 0.029
$Instant
H0: No instantaneous causality between: dlog_receita and dlog_despesa
dlog_pib
data: VAR object var_diff
Chi-squared = 21.111, df = 2, p-value = 0.00002605
causality(var_diff, cause = "dlog_despesa")$Granger
Granger causality H0: dlog_despesa do not Granger-cause dlog_receita
dlog_pib
data: VAR object var_diff
F-Test = 3.6884, df1 = 8, df2 = 246, p-value = 0.0004372
$Instant
H0: No instantaneous causality between: dlog_despesa and dlog_receita
dlog_pib
data: VAR object var_diff
Chi-squared = 6.377, df = 2, p-value = 0.04123
causality(var_diff, cause = "dlog_pib")$Granger
Granger causality H0: dlog_pib do not Granger-cause dlog_receita
dlog_despesa
data: VAR object var_diff
F-Test = 5.0876, df1 = 8, df2 = 246, p-value = 0.000007164
$Instant
H0: No instantaneous causality between: dlog_pib and dlog_receita
dlog_despesa
data: VAR object var_diff
Chi-squared = 19.255, df = 2, p-value = 0.00006588
#Impulso-resposta
#Ordem de Granger
irf_diff1 <- irf(var_diff,
impulse = c("dlog_pib", "dlog_despesa", "dlog_receita"),
response = c("dlog_pib", "dlog_despesa", "dlog_receita"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff1)irf_diff_granger_pib <- irf(var_diff,
impulse = c("dlog_pib", "dlog_despesa", "dlog_receita"),
response = c("dlog_pib"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_granger_pib)irf_diff_granger_despesa <- irf(var_diff,
impulse = c("dlog_pib", "dlog_despesa", "dlog_receita"),
response = c("dlog_despesa"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_granger_despesa)irf_diff_granger_receita <- irf(var_diff,
impulse = c("dlog_pib", "dlog_despesa", "dlog_receita"),
response = c("dlog_receita"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_granger_receita)#Decomposição da variância
fevd_diff <- fevd(var_diff, n.ahead = 12)
plot(fevd_diff)#Testes de robustez
#Autocorrelação dos resíduos
serial.test(var_diff, lags.pt = 16, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object var_diff
Chi-squared = 112.02, df = 108, p-value = 0.3761
#Normalidade dos resíduos
normality.test(var_diff)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 486.54, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 36.055, df = 3, p-value = 0.0000000729
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 450.49, df = 3, p-value < 0.00000000000000022
#Heterocedasticidade (ARCH)
arch.test(var_diff, lags.multi = 12)
ARCH (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 457.67, df = 432, p-value = 0.1897
## Estabilidade do VAR
roots(var_diff) [1] 0.9800989 0.9642764 0.9642764 0.7820165 0.7381440 0.7381440 0.6980939
[8] 0.6980939 0.6949913 0.5122106 0.5122106 0.1030124
plot(var_diff) stab_diff <- stability(var_diff, type = "OLS-CUSUM")
plot(stab_diff)VECM
#Estimar VECM
vec_model <- cajorls(johansen_test, r = 1)
summary(vec_model$rlm)Response receita.d :
Call:
lm(formula = receita.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
receita.dl2 + despesa.dl2 + pib.dl2 + receita.dl3 + despesa.dl3 +
pib.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.41493 -0.03333 0.00486 0.03632 0.31445
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.59662 0.23780 -2.509 0.014077 *
receita.dl1 -0.83303 0.13514 -6.164 0.0000000253 ***
despesa.dl1 -0.05734 0.08887 -0.645 0.520563
pib.dl1 1.47774 0.38173 3.871 0.000217 ***
receita.dl2 -1.13439 0.18383 -6.171 0.0000000246 ***
despesa.dl2 -0.10454 0.10261 -1.019 0.311284
pib.dl2 2.19637 0.44793 4.903 0.0000046934 ***
receita.dl3 -0.80589 0.22967 -3.509 0.000733 ***
despesa.dl3 -0.15982 0.11301 -1.414 0.161106
pib.dl3 0.97301 0.53141 1.831 0.070733 .
receita.dl4 -0.71263 0.24936 -2.858 0.005405 **
despesa.dl4 -0.13597 0.13034 -1.043 0.299910
pib.dl4 1.94878 0.56831 3.429 0.000950 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08182 on 82 degrees of freedom
Multiple R-squared: 0.6037, Adjusted R-squared: 0.5409
F-statistic: 9.608 on 13 and 82 DF, p-value: 0.000000000008793
Response despesa.d :
Call:
lm(formula = despesa.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
receita.dl2 + despesa.dl2 + pib.dl2 + receita.dl3 + despesa.dl3 +
pib.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.19459 -0.02837 -0.00109 0.04161 0.52861
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.31430 0.29120 -1.079 0.28360
receita.dl1 -0.44549 0.16549 -2.692 0.00861 **
despesa.dl1 -0.49446 0.10883 -4.544 0.0000188 ***
pib.dl1 1.17612 0.46746 2.516 0.01382 *
receita.dl2 -0.24050 0.22512 -1.068 0.28850
despesa.dl2 -0.38040 0.12566 -3.027 0.00330 **
pib.dl2 0.63509 0.54853 1.158 0.25031
receita.dl3 -0.16134 0.28125 -0.574 0.56777
despesa.dl3 -0.41312 0.13840 -2.985 0.00374 **
pib.dl3 0.04492 0.65076 0.069 0.94514
receita.dl4 -0.49002 0.30536 -1.605 0.11240
despesa.dl4 0.01225 0.15961 0.077 0.93899
pib.dl4 1.88113 0.69594 2.703 0.00835 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.1002 on 82 degrees of freedom
Multiple R-squared: 0.6659, Adjusted R-squared: 0.6129
F-statistic: 12.57 on 13 and 82 DF, p-value: 0.00000000000001346
Response pib.d :
Call:
lm(formula = pib.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
receita.dl2 + despesa.dl2 + pib.dl2 + receita.dl3 + despesa.dl3 +
pib.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.076563 -0.011763 0.000682 0.014586 0.048731
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 0.08269 0.06418 1.288 0.201206
receita.dl1 0.01256 0.03647 0.344 0.731502
despesa.dl1 0.02455 0.02398 1.024 0.309046
pib.dl1 -0.06218 0.10302 -0.604 0.547781
receita.dl2 0.01298 0.04961 0.262 0.794261
despesa.dl2 0.06202 0.02769 2.239 0.027838 *
pib.dl2 -0.05018 0.12089 -0.415 0.679157
receita.dl3 0.09074 0.06198 1.464 0.147058
despesa.dl3 0.11744 0.03050 3.850 0.000233 ***
pib.dl3 -0.40328 0.14342 -2.812 0.006160 **
receita.dl4 0.06334 0.06730 0.941 0.349387
despesa.dl4 0.14133 0.03518 4.018 0.000130 ***
pib.dl4 0.44663 0.15338 2.912 0.004625 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02208 on 82 degrees of freedom
Multiple R-squared: 0.7382, Adjusted R-squared: 0.6966
F-statistic: 17.78 on 13 and 82 DF, p-value: < 0.00000000000000022
#Converter VECM para VAR em nível (para IRF e FEVD)
vec_var <- vars::vec2var(johansen_test, r = 1)
vec_var
Coefficient matrix of lagged endogenous variables:
A1:
receita.l1 despesa.l1 pib.l1
receita 0.16696533 -0.05734175 1.4777373
despesa -0.44548540 0.50554270 1.1761172
pib 0.01255772 0.02454935 0.9378164
A2:
receita.l2 despesa.l2 pib.l2
receita -0.301360068 -0.04720220 0.71862817
despesa 0.204981781 0.11405375 -0.54102813
pib 0.000422892 0.03746762 0.01200234
A3:
receita.l3 despesa.l3 pib.l3
receita 0.32850150 -0.05527445 -1.2233559
despesa 0.07916635 -0.03271469 -0.5901707
pib 0.07775439 0.05542073 -0.3530975
A4:
receita.l4 despesa.l4 pib.l4
receita 0.09326295 0.02384866 0.9757664
despesa -0.32868297 0.42537280 1.8362099
pib -0.02739569 0.02389133 0.8499133
A5:
receita.l5 despesa.l5 pib.l5
receita 0.11600647 -0.19226930 -0.9320369
despesa 0.17571547 -0.18517272 -1.3455043
pib 0.01935162 -0.09583571 -0.5875527
Coefficient matrix of deterministic regressor(s).
constant
receita -2.9371076
despesa -1.5472847
pib 0.4070775
#Impulso-resposta
#Ordem da literatura
irf_vec_lit <- irf(vec2var(ca.jo(dados_johansen[, c("despesa", "pib", "receita")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita"),
response = c("despesa", "pib", "receita"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_lit)irf_vec_lit_despesa <- irf(vec2var(ca.jo(dados_johansen[, c("despesa", "pib", "receita")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita"),
response = c("despesa"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_lit_despesa)irf_vec_lit_pib <- irf(vec2var(ca.jo(dados_johansen[, c("despesa", "pib", "receita")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita"),
response = c("pib"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_lit_pib)irf_vec_lit_receita <- irf(vec2var(ca.jo(dados_johansen[, c("despesa", "pib", "receita")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita"),
response = c("receita"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_lit_receita)#Decomposição da variância (FEVD)
fevd_result <- fevd(vec_var, n.ahead = 12) # 12 períodos à frente
# Ver decomposição da receita
fevd_result$receita receita despesa pib
[1,] 1.0000000 0.000000000 0.00000000
[2,] 0.9131060 0.002086924 0.08480703
[3,] 0.7615581 0.002468901 0.23597300
[4,] 0.7695333 0.003249050 0.22721765
[5,] 0.7416532 0.032993989 0.22535278
[6,] 0.6901545 0.034824783 0.27502068
[7,] 0.6379051 0.030564433 0.33153045
[8,] 0.6395510 0.030663967 0.32978502
[9,] 0.6069127 0.053220774 0.33986652
[10,] 0.5744588 0.062896747 0.36264447
[11,] 0.5517966 0.062264113 0.38593928
[12,] 0.5533826 0.063003055 0.38361436
# Ver decomposição da despesa
fevd_result$despesa receita despesa pib
[1,] 0.09473532 0.9052647 0.00000000
[2,] 0.16437700 0.8034423 0.03218071
[3,] 0.15594724 0.8106071 0.03344564
[4,] 0.14805741 0.8183810 0.03356157
[5,] 0.14693472 0.7914091 0.06165613
[6,] 0.14788546 0.7691868 0.08292770
[7,] 0.13787485 0.7783083 0.08381690
[8,] 0.13281236 0.7900848 0.07710285
[9,] 0.12537893 0.7824021 0.09221895
[10,] 0.12259401 0.7725011 0.10490487
[11,] 0.11617521 0.7759294 0.10789536
[12,] 0.11339786 0.7859123 0.10068984
# Ver decomposição do PIB
fevd_result$pib receita despesa pib
[1,] 0.3152796 0.001432746 0.6832877
[2,] 0.3168591 0.011222522 0.6719184
[3,] 0.2823710 0.050222016 0.6674070
[4,] 0.2515834 0.164138440 0.5842782
[5,] 0.1972906 0.247851555 0.5548579
[6,] 0.1848282 0.251010020 0.5641618
[7,] 0.1868491 0.254376752 0.5587742
[8,] 0.1794374 0.294612663 0.5259499
[9,] 0.1551490 0.332961489 0.5118895
[10,] 0.1480732 0.340859881 0.5110669
[11,] 0.1501148 0.344551130 0.5053340
[12,] 0.1475010 0.363826118 0.4886729
# Gráfico de todos
plot(fevd_result)#Testes de robustez / diagnóstico
# Autocorrelação dos resíduos (Portmanteau)
serial.test(vec_var, lags.pt = 16, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object vec_var
Chi-squared = 114.43, df = 102, p-value = 0.1886
# Normalidade dos resíduos
normality.test(vec_var)$JB
JB-Test (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 519.21, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 34.049, df = 3, p-value = 0.0000001934
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 485.16, df = 3, p-value < 0.00000000000000022
# Heterocedasticidade (ARCH)
arch.test(vec_var, lags.multi = 12)
ARCH (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 454.11, df = 432, p-value = 0.223
O MODELO COM 5 VARIÁVEIS
TESTE DE COINTEGRAÇÃO
# Rodar o teste de cointegração de Johansen
teste_johansen_5 <- ca.jo(dados_johansen_5, type = "trace", ecdet = "const", K = 5)
summary(teste_johansen_5)
######################
# Johansen-Procedure #
######################
Test type: trace statistic , without linear trend and constant in cointegration
Eigenvalues (lambda):
[1] 0.268777316409723798785 0.204049118611524082922 0.130496797562932975723
[4] 0.114261948948984323748 0.060058937493336322921 -0.000000000000000721645
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 4 | 5.88 7.52 9.24 12.97
r <= 3 | 17.41 17.85 19.96 24.60
r <= 2 | 30.70 32.00 34.91 41.07
r <= 1 | 52.38 49.65 53.12 60.16
r = 0 | 82.11 71.86 76.07 84.45
Eigenvectors, normalised to first column:
(These are the cointegration relations)
receita.l5 despesa.l5 pib.l5 ipca.l5 selic.l5
receita.l5 1.000000000 1.000000000 1.000000000 1.00000000 1.00000000
despesa.l5 0.798030723 -1.058987539 -0.079624756 0.59851098 -1.08974040
pib.l5 -1.929853464 -0.096327502 -0.798304625 -2.48862790 0.61924739
ipca.l5 -0.040706997 -0.743726944 0.450414829 0.16859545 -0.14846848
selic.l5 0.008052631 -0.006794895 -0.004960134 -0.04761605 -0.02308534
constant 4.944086611 2.767151480 -0.345891584 16.22686299 -7.66891921
constant
receita.l5 1.000000000
despesa.l5 0.069627634
pib.l5 -1.602252551
ipca.l5 0.209427010
selic.l5 -0.007679112
constant 9.439294319
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 ipca.l5 selic.l5
receita.d -0.41036858 -0.110511371 -0.11718394 0.03363406 -0.0644799988
despesa.d -0.44463974 0.275919366 0.04668032 -0.01120790 -0.0001314674
pib.d 0.04868564 -0.007803817 0.01642280 0.03601963 -0.0150124890
ipca.d -0.65246367 -0.077622942 -1.08765718 0.18108836 0.1397568601
selic.d -6.15201205 -1.003526515 0.34469619 0.70607852 0.3411914359
constant
receita.d -0.0000000000003465874
despesa.d -0.0000000000011653062
pib.d 0.0000000000002045444
ipca.d -0.0000000000007741372
selic.d -0.0000000000081403305
teste_johansen_5 <- ca.jo(dados_johansen_5, type = "eigen", ecdet = "const", K = 5)
summary(teste_johansen_5)
######################
# Johansen-Procedure #
######################
Test type: maximal eigenvalue statistic (lambda max) , without linear trend and constant in cointegration
Eigenvalues (lambda):
[1] 0.268777316409723798785 0.204049118611524082922 0.130496797562932975723
[4] 0.114261948948984323748 0.060058937493336322921 -0.000000000000000721645
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 4 | 5.88 7.52 9.24 12.97
r <= 3 | 11.53 13.75 15.67 20.20
r <= 2 | 13.28 19.77 22.00 26.81
r <= 1 | 21.68 25.56 28.14 33.24
r = 0 | 29.74 31.66 34.40 39.79
Eigenvectors, normalised to first column:
(These are the cointegration relations)
receita.l5 despesa.l5 pib.l5 ipca.l5 selic.l5
receita.l5 1.000000000 1.000000000 1.000000000 1.00000000 1.00000000
despesa.l5 0.798030723 -1.058987539 -0.079624756 0.59851098 -1.08974040
pib.l5 -1.929853464 -0.096327502 -0.798304625 -2.48862790 0.61924739
ipca.l5 -0.040706997 -0.743726944 0.450414829 0.16859545 -0.14846848
selic.l5 0.008052631 -0.006794895 -0.004960134 -0.04761605 -0.02308534
constant 4.944086611 2.767151480 -0.345891584 16.22686299 -7.66891921
constant
receita.l5 1.000000000
despesa.l5 0.069627634
pib.l5 -1.602252551
ipca.l5 0.209427010
selic.l5 -0.007679112
constant 9.439294319
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 ipca.l5 selic.l5
receita.d -0.41036858 -0.110511371 -0.11718394 0.03363406 -0.0644799988
despesa.d -0.44463974 0.275919366 0.04668032 -0.01120790 -0.0001314674
pib.d 0.04868564 -0.007803817 0.01642280 0.03601963 -0.0150124890
ipca.d -0.65246367 -0.077622942 -1.08765718 0.18108836 0.1397568601
selic.d -6.15201205 -1.003526515 0.34469619 0.70607852 0.3411914359
constant
receita.d -0.0000000000003465874
despesa.d -0.0000000000011653062
pib.d 0.0000000000002045444
ipca.d -0.0000000000007741372
selic.d -0.0000000000081403305
VAR PADRÃO
#Seleção do número de defasagens
lagselect <- VARselect(dados_var_5, lag.max = 8, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
8 4 2 5
$criteria
1 2 3
AIC(n) -18.68465966343689 -19.374324416742894 -19.754008124816821
HQ(n) -18.35276339052730 -18.765847916408664 -18.868951397057941
SC(n) -17.86233730135568 -17.866733419594009 -17.561148492600264
FPE(n) 0.00000000768702 0.000000003875553 0.000000002683486
4 5 6
AIC(n) -20.285164227536072 -20.555869007867589 -20.462622385529841
HQ(n) -19.123527272352547 -19.117651825259408 -18.747824975497014
SC(n) -17.407035960251843 -16.992472105515681 -16.213956848110261
FPE(n) 0.000000001614512 0.000000001279487 0.000000001488294
7 8
AIC(n) -20.607248447621561 -20.781838954707720
HQ(n) -18.615870810164086 -18.513881089825592
SC(n) -15.673314275134310 -15.162636147152790
FPE(n) 0.000000001399852 0.000000001319856
#Estimação do VAR
var_model_5 <- VAR(dados_var_5, p = 2, type = "const")
summary(var_model_5)
VAR Estimation Results:
=========================
Endogenous variables: log_receita, log_despesa, log_pib, ipca, selic
Deterministic variables: const
Sample size: 98
Log Likelihood: 294.154
Roots of the characteristic polynomial:
0.9842 0.8332 0.8332 0.6567 0.6567 0.4192 0.2605 0.2429 0.1891 0.1891
Call:
VAR(y = dados_var_5, p = 2, type = "const")
Estimation results for equation log_receita:
============================================
log_receita = log_receita.l1 + log_despesa.l1 + log_pib.l1 + ipca.l1 + selic.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + ipca.l2 + selic.l2 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 0.118350 0.129712 0.912 0.3641
log_despesa.l1 -0.137896 0.096327 -1.432 0.1559
log_pib.l1 0.938828 0.366008 2.565 0.0120 *
ipca.l1 -0.039079 0.037356 -1.046 0.2984
selic.l1 0.009675 0.010626 0.911 0.3650
log_receita.l2 -0.147224 0.148402 -0.992 0.3239
log_despesa.l2 -0.087620 0.091947 -0.953 0.3433
log_pib.l2 0.318187 0.420815 0.756 0.4516
ipca.l2 -0.050461 0.038857 -1.299 0.1975
selic.l2 -0.011150 0.010180 -1.095 0.2764
const -2.120112 1.186222 -1.787 0.0774 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.09569 on 87 degrees of freedom
Multiple R-Squared: 0.8883, Adjusted R-squared: 0.8754
F-statistic: 69.15 on 10 and 87 DF, p-value: < 0.00000000000000022
Estimation results for equation log_despesa:
============================================
log_despesa = log_receita.l1 + log_despesa.l1 + log_pib.l1 + ipca.l1 + selic.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + ipca.l2 + selic.l2 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 -0.735329 0.150064 -4.900 0.00000439 ***
log_despesa.l1 0.088856 0.111441 0.797 0.427422
log_pib.l1 1.396930 0.423436 3.299 0.001407 **
ipca.l1 -0.107495 0.043218 -2.487 0.014779 *
selic.l1 -0.002293 0.012293 -0.187 0.852451
log_receita.l2 0.134132 0.171687 0.781 0.436771
log_despesa.l2 -0.013264 0.106374 -0.125 0.901058
log_pib.l2 0.288323 0.486842 0.592 0.555231
ipca.l2 0.017640 0.044954 0.392 0.695722
selic.l2 -0.003361 0.011778 -0.285 0.776062
const -4.822601 1.372344 -3.514 0.000703 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.1107 on 87 degrees of freedom
Multiple R-Squared: 0.9152, Adjusted R-squared: 0.9055
F-statistic: 93.94 on 10 and 87 DF, p-value: < 0.00000000000000022
Estimation results for equation log_pib:
========================================
log_pib = log_receita.l1 + log_despesa.l1 + log_pib.l1 + ipca.l1 + selic.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + ipca.l2 + selic.l2 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 -0.1177701 0.0462951 -2.544 0.01273 *
log_despesa.l1 -0.0904308 0.0343796 -2.630 0.01009 *
log_pib.l1 0.9387386 0.1306307 7.186 0.000000000216 ***
ipca.l1 -0.0364022 0.0133327 -2.730 0.00766 **
selic.l1 -0.0016367 0.0037924 -0.432 0.66712
log_receita.l2 0.0088617 0.0529657 0.167 0.86751
log_despesa.l2 0.0353934 0.0328167 1.079 0.28378
log_pib.l2 0.1932880 0.1501916 1.287 0.20153
ipca.l2 0.0179467 0.0138683 1.294 0.19906
selic.l2 -0.0003035 0.0036335 -0.084 0.93362
const 0.2246433 0.4233708 0.531 0.59704
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.03415 on 87 degrees of freedom
Multiple R-Squared: 0.9843, Adjusted R-squared: 0.9825
F-statistic: 546.2 on 10 and 87 DF, p-value: < 0.00000000000000022
Estimation results for equation ipca:
=====================================
ipca = log_receita.l1 + log_despesa.l1 + log_pib.l1 + ipca.l1 + selic.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + ipca.l2 + selic.l2 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 -0.24570 0.38551 -0.637 0.525567
log_despesa.l1 -0.11440 0.28628 -0.400 0.690434
log_pib.l1 0.54789 1.08778 0.504 0.615764
ipca.l1 0.38093 0.11102 3.431 0.000922 ***
selic.l1 0.08057 0.03158 2.551 0.012478 *
log_receita.l2 -1.13359 0.44105 -2.570 0.011866 *
log_despesa.l2 -0.23730 0.27327 -0.868 0.387582
log_pib.l2 1.04358 1.25067 0.834 0.406332
ipca.l2 -0.33430 0.11548 -2.895 0.004796 **
selic.l2 -0.08174 0.03026 -2.701 0.008298 **
const -0.45391 3.52547 -0.129 0.897851
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.2844 on 87 degrees of freedom
Multiple R-Squared: 0.3548, Adjusted R-squared: 0.2806
F-statistic: 4.784 on 10 and 87 DF, p-value: 0.00001844
Estimation results for equation selic:
======================================
selic = log_receita.l1 + log_despesa.l1 + log_pib.l1 + ipca.l1 + selic.l1 + log_receita.l2 + log_despesa.l2 + log_pib.l2 + ipca.l2 + selic.l2 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 -0.26732 1.09532 -0.244 0.8078
log_despesa.l1 -0.88200 0.81340 -1.084 0.2812
log_pib.l1 2.19449 3.09065 0.710 0.4796
ipca.l1 1.38638 0.31544 4.395 0.0000311546132 ***
selic.l1 1.52986 0.08973 17.050 < 0.0000000000000002 ***
log_receita.l2 -0.69784 1.25314 -0.557 0.5790
log_despesa.l2 -1.06421 0.77642 -1.371 0.1740
log_pib.l2 0.12764 3.55345 0.036 0.9714
ipca.l2 -0.63159 0.32812 -1.925 0.0575 .
selic.l2 -0.64710 0.08597 -7.527 0.0000000000447 ***
const 4.52274 10.01672 0.452 0.6527
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.808 on 87 degrees of freedom
Multiple R-Squared: 0.9761, Adjusted R-squared: 0.9734
F-statistic: 355.4 on 10 and 87 DF, p-value: < 0.00000000000000022
Covariance matrix of residuals:
log_receita log_despesa log_pib ipca selic
log_receita 0.0091570 0.0003319 0.0019675 0.001232 0.0097744
log_despesa 0.0003319 0.0122560 0.0010925 -0.004420 -0.0071154
log_pib 0.0019675 0.0010925 0.0011664 -0.001595 -0.0007418
ipca 0.0012318 -0.0044202 -0.0015952 0.080883 0.0864051
selic 0.0097744 -0.0071154 -0.0007418 0.086405 0.6529399
Correlation matrix of residuals:
log_receita log_despesa log_pib ipca selic
log_receita 1.00000 0.03133 0.60201 0.04526 0.12641
log_despesa 0.03133 1.00000 0.28894 -0.14039 -0.07954
log_pib 0.60201 0.28894 1.00000 -0.16423 -0.02688
ipca 0.04526 -0.14039 -0.16423 1.00000 0.37599
selic 0.12641 -0.07954 -0.02688 0.37599 1.00000
#Causalidade de Granger
causality(var_model_5, cause = "log_receita")$Granger
Granger causality H0: log_receita do not Granger-cause log_despesa
log_pib ipca selic
data: VAR object var_model_5
F-Test = 4.6971, df1 = 8, df2 = 435, p-value = 0.00001555
$Instant
H0: No instantaneous causality between: log_receita and log_despesa
log_pib ipca selic
data: VAR object var_model_5
Chi-squared = 28.496, df = 4, p-value = 0.000009894
causality(var_model_5, cause = "log_despesa")$Granger
Granger causality H0: log_despesa do not Granger-cause log_receita
log_pib ipca selic
data: VAR object var_model_5
F-Test = 1.8215, df1 = 8, df2 = 435, p-value = 0.07119
$Instant
H0: No instantaneous causality between: log_despesa and log_receita
log_pib ipca selic
data: VAR object var_model_5
Chi-squared = 10.476, df = 4, p-value = 0.03314
causality(var_model_5, cause = "log_pib")$Granger
Granger causality H0: log_pib do not Granger-cause log_receita
log_despesa ipca selic
data: VAR object var_model_5
F-Test = 7.7477, df1 = 8, df2 = 435, p-value = 0.0000000009856
$Instant
H0: No instantaneous causality between: log_pib and log_receita
log_despesa ipca selic
data: VAR object var_model_5
Chi-squared = 30.882, df = 4, p-value = 0.000003236
causality(var_model_5, cause = "ipca")$Granger
Granger causality H0: ipca do not Granger-cause log_receita log_despesa
log_pib selic
data: VAR object var_model_5
F-Test = 4.6203, df1 = 8, df2 = 435, p-value = 0.00001977
$Instant
H0: No instantaneous causality between: ipca and log_receita
log_despesa log_pib selic
data: VAR object var_model_5
Chi-squared = 15.024, df = 4, p-value = 0.004653
causality(var_model_5, cause = "selic")$Granger
Granger causality H0: selic do not Granger-cause log_receita
log_despesa log_pib ipca
data: VAR object var_model_5
F-Test = 1.6795, df1 = 8, df2 = 435, p-value = 0.1012
$Instant
H0: No instantaneous causality between: selic and log_receita
log_despesa log_pib ipca
data: VAR object var_model_5
Chi-squared = 13.183, df = 4, p-value = 0.01042
#Funções de Impulso-Resposta (IRF)
#Ordem de Granger
irf_var_5v <- irf(var_model_5,
impulse = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
response = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_5v)irf_var_5receita <- irf(var_model_5,
impulse = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
response = c("log_receita"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_5receita)irf_var_5despesa <- irf(var_model_5,
impulse = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
response = c("log_despesa"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_5despesa)irf_var_5vpib <- irf(var_model_5,
impulse = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
response = c("log_pib"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_5vpib)irf_var_5vselic <- irf(var_model_5,
impulse = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
response = c("selic"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_5vselic)irf_var_5ipca <- irf(var_model_5,
impulse = c("log_pib", "log_receita", "ipca", "log_despesa", "selic"),
response = c("ipca"),
n.ahead = 12,
boot = TRUE)
plot(irf_var_5ipca)#Decomposição da variância (FEVD)
fevd_var_5 <- fevd(var_model_5, n.ahead = 12)
plot(fevd_var_5)#Testes de robustez / Diagnóstico
#Teste de autocorrelação dos resíduos (LM test)
serial.test(var_model_5, lags.pt = 16, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object var_model_5
Chi-squared = 456.43, df = 350, p-value = 0.0001081
#Teste de normalidade dos resíduos
normality.test(var_model_5)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_model_5
Chi-squared = 579.26, df = 10, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_model_5
Chi-squared = 65.158, df = 5, p-value = 0.000000000001039
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_model_5
Chi-squared = 514.1, df = 5, p-value < 0.00000000000000022
## Teste de heterocedasticidade (ARCH LM test)
arch.test(var_model_5, lags.multi = 12)
ARCH (multivariate)
data: Residuals of VAR object var_model_5
Chi-squared = 1290, df = 2700, p-value = 1
#Estabilidade do modelo (roots dentro do círculo unitário)
roots(var_model_5) #estabilidade [1] 0.9841688 0.8331953 0.8331953 0.6567053 0.6567053 0.4191566 0.2605049
[8] 0.2428698 0.1890992 0.1890992
plot(var_model_5) VAR EM 1° DIFERENÇA
# Seleção do número de defasagens
lagselect <- VARselect(na.omit(dados_diff_5v), lag.max = 8, type = "const")
lagselect$selection
AIC(n) HQ(n) SC(n) FPE(n)
4 4 3 4
$criteria
1 2 3
AIC(n) -18.22357976619848 -19.081019361451254 -19.806154130087286
HQ(n) -17.88963182336426 -18.468781466255180 -18.915626282529363
SC(n) -17.39582388492919 -17.563466912457553 -17.598805113369178
FPE(n) 0.00000001219034 0.000000005197544 0.000000002548675
4 5 6
AIC(n) -20.295780781474001 -20.031520850901057 -19.965407749542507
HQ(n) -19.126962981554222 -18.584413098619429 -18.240010044899027
SC(n) -17.398635197031481 -16.444578698734130 -15.688669029651169
FPE(n) 0.000000001599692 0.000000002167416 0.000000002458735
7 8
AIC(n) -20.144142933520591 -20.222969335225727
HQ(n) -18.140455276515262 -17.940991725858545
SC(n) -15.177607645904844 -14.566637479885573
FPE(n) 0.000000002241955 0.000000002336599
# Estimação do VAR em diferenças
var_diff_5v <- VAR(na.omit(dados_diff_5v), p = 4, type = "const")
summary(var_diff_5v)
VAR Estimation Results:
=========================
Endogenous variables: dlog_receita, dlog_despesa, dlog_pib, ipca, dselic
Deterministic variables: const
Sample size: 95
Log Likelihood: 382.169
Roots of the characteristic polynomial:
0.9824 0.9679 0.9679 0.784 0.7406 0.7406 0.7371 0.7371 0.7224 0.7212 0.6983 0.6983 0.571 0.571 0.5299 0.5299 0.3971 0.3971 0.2458 0.2458
Call:
VAR(y = na.omit(dados_diff_5v), p = 4, type = "const")
Estimation results for equation dlog_receita:
=============================================
dlog_receita = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + ipca.l1 + dselic.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + ipca.l2 + dselic.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + ipca.l3 + dselic.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + ipca.l4 + dselic.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.712981 0.138559 -5.146 0.00000212 ***
dlog_despesa.l1 -0.024222 0.102885 -0.235 0.81453
dlog_pib.l1 0.973324 0.423997 2.296 0.02453 *
ipca.l1 0.052034 0.041838 1.244 0.21753
dselic.l1 -0.007926 0.014206 -0.558 0.57858
dlog_receita.l2 -0.876602 0.164934 -5.315 0.00000109 ***
dlog_despesa.l2 -0.011521 0.114882 -0.100 0.92039
dlog_pib.l2 1.482761 0.435511 3.405 0.00107 **
ipca.l2 -0.018025 0.043211 -0.417 0.67778
dselic.l2 0.002670 0.018478 0.145 0.88549
dlog_receita.l3 -0.378197 0.177569 -2.130 0.03651 *
dlog_despesa.l3 0.012982 0.110117 0.118 0.90648
dlog_pib.l3 -0.030162 0.464860 -0.065 0.94844
ipca.l3 0.031333 0.040817 0.768 0.44515
dselic.l3 -0.008251 0.017647 -0.468 0.64148
dlog_receita.l4 -0.175983 0.155066 -1.135 0.26008
dlog_despesa.l4 0.119033 0.096049 1.239 0.21915
dlog_pib.l4 0.868320 0.465207 1.867 0.06593 .
ipca.l4 -0.001509 0.039843 -0.038 0.96989
dselic.l4 -0.004053 0.011748 -0.345 0.73107
const -0.033025 0.036799 -0.897 0.37239
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08722 on 74 degrees of freedom
Multiple R-Squared: 0.5902, Adjusted R-squared: 0.4795
F-statistic: 5.329 on 20 and 74 DF, p-value: 0.0000000527
Estimation results for equation dlog_despesa:
=============================================
dlog_despesa = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + ipca.l1 + dselic.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + ipca.l2 + dselic.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + ipca.l3 + dselic.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + ipca.l4 + dselic.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.291955 0.159770 -1.827 0.07168 .
dlog_despesa.l1 -0.548067 0.118635 -4.620 0.0000159 ***
dlog_pib.l1 0.335712 0.488903 0.687 0.49444
ipca.l1 -0.095234 0.048243 -1.974 0.05211 .
dselic.l1 0.010980 0.016381 0.670 0.50474
dlog_receita.l2 0.001229 0.190182 0.006 0.99486
dlog_despesa.l2 -0.429136 0.132468 -3.240 0.00179 **
dlog_pib.l2 -0.249739 0.502180 -0.497 0.62044
ipca.l2 -0.001005 0.049826 -0.020 0.98396
dselic.l2 -0.016465 0.021307 -0.773 0.44211
dlog_receita.l3 0.069059 0.204752 0.337 0.73686
dlog_despesa.l3 -0.429743 0.126974 -3.384 0.00114 **
dlog_pib.l3 -0.521188 0.536022 -0.972 0.33406
ipca.l3 -0.023119 0.047066 -0.491 0.62474
dselic.l3 0.012789 0.020348 0.629 0.53159
dlog_receita.l4 -0.222700 0.178804 -1.246 0.21688
dlog_despesa.l4 0.088131 0.110753 0.796 0.42872
dlog_pib.l4 1.032448 0.536422 1.925 0.05811 .
ipca.l4 0.046541 0.045942 1.013 0.31435
dselic.l4 -0.007490 0.013547 -0.553 0.58200
const 0.059821 0.042433 1.410 0.16279
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.1006 on 74 degrees of freedom
Multiple R-Squared: 0.6947, Adjusted R-squared: 0.6122
F-statistic: 8.42 on 20 and 74 DF, p-value: 0.000000000003971
Estimation results for equation dlog_pib:
=========================================
dlog_pib = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + ipca.l1 + dselic.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + ipca.l2 + dselic.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + ipca.l3 + dselic.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + ipca.l4 + dselic.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 0.0086128 0.0352848 0.244 0.807835
dlog_despesa.l1 0.0125753 0.0262002 0.480 0.632664
dlog_pib.l1 -0.0605318 0.1079733 -0.561 0.576751
ipca.l1 0.0007820 0.0106543 0.073 0.941687
dselic.l1 -0.0038111 0.0036177 -1.053 0.295559
dlog_receita.l2 -0.0116968 0.0420013 -0.278 0.781415
dlog_despesa.l2 0.0406444 0.0292554 1.389 0.168909
dlog_pib.l2 0.0104519 0.1109054 0.094 0.925172
ipca.l2 0.0045418 0.0110039 0.413 0.680985
dselic.l2 -0.0026800 0.0047056 -0.570 0.570715
dlog_receita.l3 0.0405307 0.0452191 0.896 0.372990
dlog_despesa.l3 0.0846063 0.0280419 3.017 0.003497 **
dlog_pib.l3 -0.2994908 0.1183793 -2.530 0.013536 *
ipca.l3 0.0115358 0.0103944 1.110 0.270675
dselic.l3 0.0010207 0.0044938 0.227 0.820948
dlog_receita.l4 0.0014088 0.0394884 0.036 0.971636
dlog_despesa.l4 0.0946050 0.0244595 3.868 0.000234 ***
dlog_pib.l4 0.5535664 0.1184677 4.673 0.000013 ***
ipca.l4 -0.0061897 0.0101463 -0.610 0.543699
dselic.l4 0.0005584 0.0029918 0.187 0.852460
const -0.0023027 0.0093711 -0.246 0.806578
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02221 on 74 degrees of freedom
Multiple R-Squared: 0.748, Adjusted R-squared: 0.6799
F-statistic: 10.98 on 20 and 74 DF, p-value: 0.000000000000006224
Estimation results for equation ipca:
=====================================
ipca = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + ipca.l1 + dselic.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + ipca.l2 + dselic.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + ipca.l3 + dselic.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + ipca.l4 + dselic.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.09100 0.43622 -0.209 0.8353
dlog_despesa.l1 0.13439 0.32390 0.415 0.6794
dlog_pib.l1 0.80163 1.33484 0.601 0.5500
ipca.l1 0.54223 0.13172 4.117 0.0000989 ***
dselic.l1 0.09136 0.04472 2.043 0.0446 *
dlog_receita.l2 -0.83848 0.51925 -1.615 0.1106
dlog_despesa.l2 0.00342 0.36168 0.009 0.9925
dlog_pib.l2 3.30634 1.37109 2.411 0.0184 *
ipca.l2 -0.25876 0.13604 -1.902 0.0611 .
dselic.l2 -0.07395 0.05817 -1.271 0.2076
dlog_receita.l3 -0.49639 0.55903 -0.888 0.3774
dlog_despesa.l3 0.16050 0.34667 0.463 0.6447
dlog_pib.l3 0.68115 1.46349 0.465 0.6430
ipca.l3 0.33380 0.12850 2.598 0.0113 *
dselic.l3 -0.02466 0.05556 -0.444 0.6584
dlog_receita.l4 0.01235 0.48818 0.025 0.9799
dlog_despesa.l4 0.32897 0.30239 1.088 0.2802
dlog_pib.l4 -0.33848 1.46458 -0.231 0.8179
ipca.l4 0.02313 0.12543 0.184 0.8542
dselic.l4 0.02674 0.03699 0.723 0.4720
const 0.14732 0.11585 1.272 0.2075
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.2746 on 74 degrees of freedom
Multiple R-Squared: 0.4728, Adjusted R-squared: 0.3304
F-statistic: 3.319 on 20 and 74 DF, p-value: 0.0000897
Estimation results for equation dselic:
=======================================
dselic = dlog_receita.l1 + dlog_despesa.l1 + dlog_pib.l1 + ipca.l1 + dselic.l1 + dlog_receita.l2 + dlog_despesa.l2 + dlog_pib.l2 + ipca.l2 + dselic.l2 + dlog_receita.l3 + dlog_despesa.l3 + dlog_pib.l3 + ipca.l3 + dselic.l3 + dlog_receita.l4 + dlog_despesa.l4 + dlog_pib.l4 + ipca.l4 + dselic.l4 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 0.132305 1.247260 0.106 0.91581
dlog_despesa.l1 -0.002579 0.926135 -0.003 0.99779
dlog_pib.l1 4.774873 3.816680 1.251 0.21486
ipca.l1 0.997350 0.376613 2.648 0.00988 **
dselic.l1 0.957881 0.127880 7.490 0.000000000118 ***
dlog_receita.l2 0.244999 1.484677 0.165 0.86938
dlog_despesa.l2 0.112571 1.034130 0.109 0.91361
dlog_pib.l2 2.516100 3.920325 0.642 0.52298
ipca.l2 -0.466345 0.388971 -1.199 0.23438
dselic.l2 -0.498511 0.166334 -2.997 0.00371 **
dlog_receita.l3 1.877261 1.598420 1.174 0.24398
dlog_despesa.l3 -0.238584 0.991236 -0.241 0.81046
dlog_pib.l3 1.082322 4.184515 0.259 0.79662
ipca.l3 -0.160103 0.367425 -0.436 0.66429
dselic.l3 0.035610 0.158848 0.224 0.82324
dlog_receita.l4 0.847073 1.395851 0.607 0.54581
dlog_despesa.l4 0.268336 0.864603 0.310 0.75716
dlog_pib.l4 0.760796 4.187641 0.182 0.85633
ipca.l4 0.076920 0.358654 0.214 0.83077
dselic.l4 0.002259 0.105754 0.021 0.98302
const -0.348702 0.331254 -1.053 0.29592
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7851 on 74 degrees of freedom
Multiple R-Squared: 0.7118, Adjusted R-squared: 0.6339
F-statistic: 9.139 on 20 and 74 DF, p-value: 0.0000000000005809
Covariance matrix of residuals:
dlog_receita dlog_despesa dlog_pib ipca dselic
dlog_receita 0.007607 -0.0021387 0.0010318 0.001524 0.012410
dlog_despesa -0.002139 0.0101137 -0.0004775 -0.002255 -0.008629
dlog_pib 0.001032 -0.0004775 0.0004933 -0.001606 -0.001623
ipca 0.001524 -0.0022547 -0.0016060 0.075391 0.098880
dselic 0.012410 -0.0086288 -0.0016231 0.098880 0.616359
Correlation matrix of residuals:
dlog_receita dlog_despesa dlog_pib ipca dselic
dlog_receita 1.00000 -0.24384 0.53268 0.06364 0.18124
dlog_despesa -0.24384 1.00000 -0.21379 -0.08165 -0.10929
dlog_pib 0.53268 -0.21379 1.00000 -0.26336 -0.09309
ipca 0.06364 -0.08165 -0.26336 1.00000 0.45870
dselic 0.18124 -0.10929 -0.09309 0.45870 1.00000
# Causalidade de Granger
causality(var_diff_5v, cause = "dlog_receita")$Granger
Granger causality H0: dlog_receita do not Granger-cause dlog_despesa
dlog_pib ipca dselic
data: VAR object var_diff_5v
F-Test = 1.4268, df1 = 16, df2 = 370, p-value = 0.1258
$Instant
H0: No instantaneous causality between: dlog_receita and dlog_despesa
dlog_pib ipca dselic
data: VAR object var_diff_5v
Chi-squared = 25.158, df = 4, p-value = 0.00004675
causality(var_diff_5v, cause = "dlog_despesa")$Granger
Granger causality H0: dlog_despesa do not Granger-cause dlog_receita
dlog_pib ipca dselic
data: VAR object var_diff_5v
F-Test = 2.038, df1 = 16, df2 = 370, p-value = 0.01051
$Instant
H0: No instantaneous causality between: dlog_despesa and dlog_receita
dlog_pib ipca dselic
data: VAR object var_diff_5v
Chi-squared = 7.3285, df = 4, p-value = 0.1195
causality(var_diff_5v, cause = "dlog_pib")$Granger
Granger causality H0: dlog_pib do not Granger-cause dlog_receita
dlog_despesa ipca dselic
data: VAR object var_diff_5v
F-Test = 2.39, df1 = 16, df2 = 370, p-value = 0.00205
$Instant
H0: No instantaneous causality between: dlog_pib and dlog_receita
dlog_despesa ipca dselic
data: VAR object var_diff_5v
Chi-squared = 26.589, df = 4, p-value = 0.00002407
causality(var_diff_5v, cause = "ipca")$Granger
Granger causality H0: ipca do not Granger-cause dlog_receita
dlog_despesa dlog_pib dselic
data: VAR object var_diff_5v
F-Test = 0.94327, df1 = 16, df2 = 370, p-value = 0.5195
$Instant
H0: No instantaneous causality between: ipca and dlog_receita
dlog_despesa dlog_pib dselic
data: VAR object var_diff_5v
Chi-squared = 20.792, df = 4, p-value = 0.0003482
causality(var_diff_5v, cause = "dselic")$Granger
Granger causality H0: dselic do not Granger-cause dlog_receita
dlog_despesa dlog_pib ipca
data: VAR object var_diff_5v
F-Test = 1.0524, df1 = 16, df2 = 370, p-value = 0.4003
$Instant
H0: No instantaneous causality between: dselic and dlog_receita
dlog_despesa dlog_pib ipca
data: VAR object var_diff_5v
Chi-squared = 18.438, df = 4, p-value = 0.001013
# Impulso-resposta
# Ordem com base em Granger
irf_diff_5v <- irf(var_diff_5v,
impulse = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
response = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_5v)irf_diff_5v_despesa <- irf(var_diff_5v,
impulse = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
response = c("dlog_despesa"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_5v_despesa)irf_diff_5v_pib <- irf(var_diff_5v,
impulse = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
response = c("dlog_pib"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_5v_pib)irf_diff_5v_receita<- irf(var_diff_5v,
impulse = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
response = c("dlog_receita"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_5v_receita)irf_diff_5v_selic <- irf(var_diff_5v,
impulse = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
response = c("dselic"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_5v_selic)irf_diff_5v_ipca <- irf(var_diff_5v,
impulse = c("dlog_despesa","dlog_pib","dlog_receita","dselic", "ipca"),
response = c("ipca"),
n.ahead = 12,
boot = TRUE)
plot(irf_diff_5v_ipca)# Decomposição da variância
fevd_diff_5v <- fevd(var_diff_5v, n.ahead = 12)
plot(fevd_diff_5v)# Testes de robustez
serial.test(var_diff_5v, lags.pt = 16, type = "PT.asymptotic") # Autocorrelação
Portmanteau Test (asymptotic)
data: Residuals of VAR object var_diff_5v
Chi-squared = 289.48, df = 300, p-value = 0.6581
normality.test(var_diff_5v) # Normalidade$JB
JB-Test (multivariate)
data: Residuals of VAR object var_diff_5v
Chi-squared = 602.38, df = 10, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_diff_5v
Chi-squared = 44.43, df = 5, p-value = 0.00000001894
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_diff_5v
Chi-squared = 557.95, df = 5, p-value < 0.00000000000000022
arch.test(var_diff_5v, lags.multi = 12) # Heterocedasticidade
ARCH (multivariate)
data: Residuals of VAR object var_diff_5v
Chi-squared = 1245, df = 2700, p-value = 1
roots(var_diff_5v) # Estabilidade [1] 0.9823894 0.9678787 0.9678787 0.7840429 0.7405742 0.7405742 0.7370764
[8] 0.7370764 0.7223511 0.7211838 0.6982609 0.6982609 0.5709819 0.5709819
[15] 0.5298816 0.5298816 0.3970834 0.3970834 0.2458360 0.2458360
plot(var_diff_5v)stab_diff_5v <- stability(var_diff_5v, type = "OLS-CUSUM")
plot(stab_diff_5v)VECM
#======== O MODELO VECM
#ESTIMAÇÃO DO VECM (supondo r = 1 relação de cointegração)
vec_model_5 <- cajorls(teste_johansen_5, r = 1)
summary(vec_model_5$rlm)Response receita.d :
Call:
lm(formula = receita.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
ipca.dl1 + selic.dl1 + receita.dl2 + despesa.dl2 + pib.dl2 +
ipca.dl2 + selic.dl2 + receita.dl3 + despesa.dl3 + pib.dl3 +
ipca.dl3 + selic.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 +
ipca.dl4 + selic.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.41407 -0.03217 0.00223 0.03428 0.32169
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.410369 0.216640 -1.894 0.062101 .
receita.dl1 -0.796824 0.144512 -5.514 0.000000490 ***
despesa.dl1 -0.092730 0.096632 -0.960 0.340371
pib.dl1 1.287459 0.401416 3.207 0.001980 **
ipca.dl1 0.044168 0.038946 1.134 0.260416
selic.dl1 -0.011396 0.014133 -0.806 0.422632
receita.dl2 -1.050714 0.190821 -5.506 0.000000505 ***
despesa.dl2 -0.141370 0.116679 -1.212 0.229512
pib.dl2 1.896262 0.465430 4.074 0.000115 ***
ipca.dl2 0.012414 0.045440 0.273 0.785458
selic.dl2 0.005802 0.018258 0.318 0.751560
receita.dl3 -0.638494 0.231380 -2.760 0.007292 **
despesa.dl3 -0.190710 0.135550 -1.407 0.163633
pib.dl3 0.476554 0.530971 0.898 0.372356
ipca.dl3 0.027028 0.043719 0.618 0.538335
selic.dl3 -0.005966 0.017406 -0.343 0.732770
receita.dl4 -0.501991 0.234788 -2.138 0.035814 *
despesa.dl4 -0.167029 0.163747 -1.020 0.311030
pib.dl4 1.510728 0.533880 2.830 0.005994 **
ipca.dl4 -0.005473 0.038620 -0.142 0.887689
selic.dl4 -0.007541 0.012474 -0.605 0.547341
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08564 on 74 degrees of freedom
Multiple R-squared: 0.6082, Adjusted R-squared: 0.497
F-statistic: 5.469 on 21 and 74 DF, p-value: 0.00000002239
Response despesa.d :
Call:
lm(formula = despesa.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
ipca.dl1 + selic.dl1 + receita.dl2 + despesa.dl2 + pib.dl2 +
ipca.dl2 + selic.dl2 + receita.dl3 + despesa.dl3 + pib.dl3 +
ipca.dl3 + selic.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 +
ipca.dl4 + selic.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.17573 -0.03836 -0.00598 0.04690 0.48105
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.444640 0.251484 -1.768 0.081172 .
receita.dl1 -0.433351 0.167755 -2.583 0.011761 *
despesa.dl1 -0.536389 0.112174 -4.782 0.00000863 ***
pib.dl1 1.126441 0.465978 2.417 0.018097 *
ipca.dl1 -0.070733 0.045210 -1.565 0.121955
selic.dl1 0.001753 0.016407 0.107 0.915212
receita.dl2 -0.236153 0.221512 -1.066 0.289846
despesa.dl2 -0.467026 0.135445 -3.448 0.000935 ***
pib.dl2 0.581760 0.540288 1.077 0.285086
ipca.dl2 -0.054527 0.052748 -1.034 0.304635
selic.dl2 -0.017319 0.021195 -0.817 0.416467
receita.dl3 -0.254798 0.268595 -0.949 0.345894
despesa.dl3 -0.555677 0.157351 -3.531 0.000716 ***
pib.dl3 0.344882 0.616371 0.560 0.577486
ipca.dl3 -0.058335 0.050751 -1.149 0.254073
selic.dl3 0.015789 0.020205 0.781 0.437054
receita.dl4 -0.625250 0.272550 -2.294 0.024626 *
despesa.dl4 -0.144884 0.190083 -0.762 0.448355
pib.dl4 2.164122 0.619748 3.492 0.000813 ***
ipca.dl4 -0.025649 0.044831 -0.572 0.568970
selic.dl4 -0.016311 0.014481 -1.126 0.263627
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.09942 on 74 degrees of freedom
Multiple R-squared: 0.7032, Adjusted R-squared: 0.6189
F-statistic: 8.347 on 21 and 74 DF, p-value: 0.000000000002888
Response pib.d :
Call:
lm(formula = pib.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
ipca.dl1 + selic.dl1 + receita.dl2 + despesa.dl2 + pib.dl2 +
ipca.dl2 + selic.dl2 + receita.dl3 + despesa.dl3 + pib.dl3 +
ipca.dl3 + selic.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 +
ipca.dl4 + selic.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.078851 -0.010670 0.000914 0.015170 0.051231
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 0.0486856 0.0565689 0.861 0.392214
receita.dl1 0.0210429 0.0377348 0.558 0.578765
despesa.dl1 0.0224292 0.0252326 0.889 0.376939
pib.dl1 -0.0619667 0.1048175 -0.591 0.556197
ipca.dl1 -0.0029232 0.0101695 -0.287 0.774574
selic.dl1 -0.0027046 0.0036905 -0.733 0.465959
receita.dl2 0.0126381 0.0498270 0.254 0.800477
despesa.dl2 0.0594194 0.0304670 1.950 0.054930 .
pib.dl2 -0.0163024 0.1215328 -0.134 0.893656
ipca.dl2 -0.0022577 0.0118652 -0.190 0.849611
selic.dl2 -0.0019757 0.0047676 -0.414 0.679780
receita.dl3 0.0762053 0.0604179 1.261 0.211161
despesa.dl3 0.1106000 0.0353947 3.125 0.002542 **
pib.dl3 -0.3402769 0.1386469 -2.454 0.016469 *
ipca.dl3 0.0070375 0.0114159 0.616 0.539478
selic.dl3 0.0014611 0.0045450 0.321 0.748762
receita.dl4 0.0390695 0.0613077 0.637 0.525916
despesa.dl4 0.1293220 0.0427574 3.025 0.003422 **
pib.dl4 0.5171431 0.1394065 3.710 0.000399 ***
ipca.dl4 -0.0008263 0.0100844 -0.082 0.934918
selic.dl4 0.0014732 0.0032573 0.452 0.652402
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.02236 on 74 degrees of freedom
Multiple R-squared: 0.7577, Adjusted R-squared: 0.6889
F-statistic: 11.02 on 21 and 74 DF, p-value: 0.000000000000003142
Response ipca.d :
Call:
lm(formula = ipca.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
ipca.dl1 + selic.dl1 + receita.dl2 + despesa.dl2 + pib.dl2 +
ipca.dl2 + selic.dl2 + receita.dl3 + despesa.dl3 + pib.dl3 +
ipca.dl3 + selic.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 +
ipca.dl4 + selic.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-0.88914 -0.14794 -0.04604 0.09245 1.08707
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.65246 0.70828 -0.921 0.35994
receita.dl1 -0.32126 0.47247 -0.680 0.49865
despesa.dl1 0.03227 0.31593 0.102 0.91892
pib.dl1 1.23085 1.31239 0.938 0.35136
ipca.dl1 -0.36573 0.12733 -2.872 0.00531 **
selic.dl1 0.06898 0.04621 1.493 0.13972
receita.dl2 -1.21296 0.62387 -1.944 0.05567 .
despesa.dl2 -0.20722 0.38147 -0.543 0.58861
pib.dl2 3.77890 1.52167 2.483 0.01528 *
ipca.dl2 -0.58359 0.14856 -3.928 0.00019 ***
selic.dl2 -0.08087 0.05969 -1.355 0.17964
receita.dl3 -0.98058 0.75647 -1.296 0.19892
despesa.dl3 -0.16740 0.44317 -0.378 0.70671
pib.dl3 1.21848 1.73595 0.702 0.48494
ipca.dl3 -0.16079 0.14293 -1.125 0.26426
selic.dl3 -0.02571 0.05691 -0.452 0.65272
receita.dl4 -0.50735 0.76761 -0.661 0.51070
despesa.dl4 -0.11173 0.53535 -0.209 0.83526
pib.dl4 0.41992 1.74546 0.241 0.81055
ipca.dl4 -0.13543 0.12626 -1.073 0.28692
selic.dl4 -0.01031 0.04078 -0.253 0.80118
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.28 on 74 degrees of freedom
Multiple R-squared: 0.512, Adjusted R-squared: 0.3735
F-statistic: 3.697 on 21 and 74 DF, p-value: 0.00001604
Response selic.d :
Call:
lm(formula = selic.d ~ ect1 + receita.dl1 + despesa.dl1 + pib.dl1 +
ipca.dl1 + selic.dl1 + receita.dl2 + despesa.dl2 + pib.dl2 +
ipca.dl2 + selic.dl2 + receita.dl3 + despesa.dl3 + pib.dl3 +
ipca.dl3 + selic.dl3 + receita.dl4 + despesa.dl4 + pib.dl4 +
ipca.dl4 + selic.dl4 - 1, data = data.mat)
Residuals:
Min 1Q Median 3Q Max
-2.1391 -0.4156 -0.0169 0.3111 2.5878
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -6.15201 1.87030 -3.289 0.00154 **
receita.dl1 -1.16542 1.24760 -0.934 0.35328
despesa.dl1 -1.06644 0.83425 -1.278 0.20513
pib.dl1 7.75398 3.46551 2.237 0.02827 *
ipca.dl1 1.02799 0.33623 3.057 0.00311 **
selic.dl1 0.88518 0.12202 7.255 0.000000000329 ***
receita.dl2 -2.47982 1.64740 -1.505 0.13651
despesa.dl2 -1.94042 1.00731 -1.926 0.05790 .
pib.dl2 7.98842 4.01816 1.988 0.05050 .
ipca.dl2 0.63231 0.39229 1.612 0.11126
selic.dl2 -0.50420 0.15763 -3.199 0.00203 **
receita.dl3 -2.25214 1.99756 -1.127 0.26320
despesa.dl3 -3.30772 1.17023 -2.827 0.00605 **
pib.dl3 8.22256 4.58399 1.794 0.07694 .
ipca.dl3 0.32857 0.37744 0.871 0.38682
selic.dl3 0.03282 0.15027 0.218 0.82771
receita.dl4 -4.02191 2.02697 -1.984 0.05094 .
despesa.dl4 -4.01785 1.41366 -2.842 0.00579 **
pib.dl4 8.72897 4.60910 1.894 0.06215 .
ipca.dl4 0.21470 0.33341 0.644 0.52161
selic.dl4 -0.03221 0.10769 -0.299 0.76571
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7394 on 74 degrees of freedom
Multiple R-squared: 0.7447, Adjusted R-squared: 0.6722
F-statistic: 10.28 on 21 and 74 DF, p-value: 0.00000000000001845
#CONVERSÃO PARA VAR EQUIVALENTE
vec_var_5 <- vec2var(teste_johansen_5, r = 1)
# IMPULSO-RESPOSTA (IRF)
#Impulso-resposta
irf_vec_5v <- irf(vec2var(ca.jo(dados_johansen_5[, c("despesa", "pib", "receita", "ipca", "selic")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita", "ipca", "selic"),
response = c("despesa", "pib", "receita", "ipca", "selic"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_5v)irf_vec_5v_despesa <- irf(vec2var(ca.jo(dados_johansen_5[, c("despesa", "pib", "receita", "ipca", "selic")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita", "ipca", "selic"),
response = c("despesa"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_5v_despesa)irf_vec_5v_pib <- irf(vec2var(ca.jo(dados_johansen_5[, c("despesa", "pib", "receita", "ipca", "selic")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita", "ipca", "selic"),
response = c("pib"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_5v_pib)irf_vec_5v_receita <- irf(vec2var(ca.jo(dados_johansen_5[, c("despesa", "pib", "receita", "ipca", "selic")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita", "ipca", "selic"),
response = c("receita"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_5v_receita)irf_vec_5v_ipca <- irf(vec2var(ca.jo(dados_johansen_5[, c("despesa", "pib", "receita", "ipca", "selic")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita", "ipca", "selic"),
response = c("ipca"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_5v_ipca)irf_vec_5v_selic <- irf(vec2var(ca.jo(dados_johansen_5[, c("despesa", "pib", "receita", "ipca", "selic")],
type = "trace", ecdet = "const", K = 5), r = 1),
impulse = c("despesa", "pib", "receita", "ipca", "selic"),
response = c("selic"),
n.ahead = 12, boot = TRUE)
plot(irf_vec_5v_selic)#DECOMPOSIÇÃO DA VARIÂNCIA (FEVD)
fevd_vec_5 <- fevd(vec_var_5, n.ahead = 20)
plot(fevd_vec_5)#TESTES DE DIAGNÓSTICO
#Testes de robustez / diagnóstico
# Autocorrelação dos resíduos (Portmanteau)
serial.test(vec_var_5, lags.pt = 16, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object vec_var_5
Chi-squared = 300.4, df = 280, p-value = 0.1921
# Normalidade dos resíduos
normality.test(vec_var_5)$JB
JB-Test (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 608.26, df = 10, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 44.624, df = 5, p-value = 0.0000000173
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 563.64, df = 5, p-value < 0.00000000000000022
# Heterocedasticidade (ARCH)
arch.test(vec_var_5, lags.multi = 12)
ARCH (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 1245, df = 2700, p-value = 1
O MODELO DE BLANCHARD E PEROTTI (2002) - 3 VARIÁVEIS
O MODELO EM NÍVEL
#====================== IDENTIFICANDO OS CHOQUES FISCAIS - BLANCHARD E PEROTTI (2002)========================#
#====================== O MODELO COM 3 VARIÁVEIS
#MODELO SEM DIFERENCIAR
dados_var_3 <- tibble(
log_receita = log(as.numeric(receita_real_tri_ts)),
log_despesa = log(as.numeric(despesa_real_tri_ts)),
log_pib = log(as.numeric(pib_real_tri_ts))
) |> drop_na()
# Ordem [PIB, Gasto, Receita]
dados_var_3 <- dplyr::select(dados_var_3, log_despesa , log_pib, log_receita)
#Estimar VAR reduzido
var_red <- VAR(dados_var_3, p = 8, type = "const")
#Resíduos reduzidos
U <- residuals(var_red) %>% as.matrix()
colnames(U) <- c("u_G", "u_Y","u_T") # Y=PIB, G=Gasto, T=Receita
# Estimar b1 e choques estruturais
a1 <- 2.08 # elasticidade receita ao PIB
a2 <- 0 # elasticidade gasto ao PIB
b2 <- 0 # resposta gasto a choque receita
cov_u <- cov(U)
b1 <- cov_u["u_G","u_T"] / cov_u["u_G","u_G"]
#Calcula b1 usando a covariância dos resíduos para obter a relação entre gasto e receita.
# Choques estruturais
e_Y <- U[,"u_Y"]
e_G <- U[,"u_G"] # já é choque de gasto
e_T <- U[,"u_T"] - a1*e_Y - b1*e_G
E <- cbind(e_Y, e_G, e_T)
colnames(E) <- c("choque_Gasto", "choque_PIB","choque_Receita")
round(cov(E), 4) # checar ortogonalidade choque_Gasto choque_PIB choque_Receita
choque_Gasto 0.0003 -0.0002 0.0000
choque_PIB -0.0002 0.0064 0.0004
choque_Receita 0.0000 0.0004 0.0031
# IRFs estruturais via SVAR
Bmat <- matrix(c(
NA, a2, b2, # Gasto
0, NA, 0, # PIB
b1, a1, NA # Receita
), nrow = 3, byrow = TRUE)
colnames(Bmat) <- rownames(Bmat) <- c("despesa","pib","receita")
svar_bp <- SVAR(var_red, Bmat = Bmat, estmethod = "scoring", hessian = FALSE, max.iter = 1000)
summary(svar_bp)
SVAR Estimation Results:
========================
Call:
SVAR(x = var_red, estmethod = "scoring", Bmat = Bmat, max.iter = 1000,
hessian = FALSE)
Type: B-model
Sample size: 92
Log Likelihood: 102.708
Method: scoring
Number of iterations: 372
LR overidentification test:
LR overidentification
data: dados_var_3
Chi^2 = 668, df = 3, p-value <0.0000000000000002
Estimated A matrix:
log_despesa log_pib log_receita
log_despesa 1 0 0
log_pib 0 1 0
log_receita 0 0 1
Estimated B matrix:
log_despesa log_pib log_receita
log_despesa 0.1024 0.00000 0.000
log_pib 0.0000 0.06372 0.000
log_receita -0.2859 2.08000 0.711
Estimated standard errors for B matrix:
log_despesa log_pib log_receita
log_despesa 0.007262 0.000000 0.00000
log_pib 0.000000 0.002044 0.00000
log_receita 0.000000 0.000000 0.05242
Covariance matrix of reduced form residuals (*100):
log_despesa log_pib log_receita
log_despesa 1.049 0.000 -2.928
log_pib 0.000 0.406 13.253
log_receita -2.928 13.253 491.369
colnames(var_red$y)[1] "log_despesa" "log_pib" "log_receita"
irf_gasto <- irf(svar_bp,
impulse = "log_despesa",
response = c("log_despesa","log_pib","log_receita"),
n.ahead = 12, boot = TRUE, runs = 1000)
irf_receita <- irf(svar_bp,
impulse = "log_receita",
response = c("log_despesa","log_pib","log_receita"),
n.ahead = 12, boot = TRUE, runs = 1000)
irf_pib <- irf(svar_bp,
impulse = c("log_despesa","log_receita"),
response = c("log_pib"),
n.ahead = 12, boot = TRUE, runs = 1000)
plot(irf_gasto)plot(irf_receita)plot(irf_pib)#Diagnóstico do modelo
roots(var_red, modulus = TRUE) # TRUE para ver o módulo [1] 0.9880800 0.9879321 0.9879321 0.9720380 0.9115649 0.9115649 0.8766005
[8] 0.8766005 0.8621370 0.8621370 0.8505247 0.8505247 0.8408671 0.8284857
[15] 0.8284857 0.7995889 0.7995889 0.7578406 0.7578406 0.7344127 0.7344127
[22] 0.7228424 0.7228424 0.6906508
plot(roots(var_red)) # gráfico das raízesserial.test(var_red, lags.pt = 12, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object var_red
Chi-squared = 47.174, df = 36, p-value = 0.1007
arch.test(var_red, lags.multi = 12, multivariate.only = TRUE)
ARCH (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 427.92, df = 432, p-value = 0.5464
normality.test(var_red, multivariate.only = TRUE)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 991.29, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 133.62, df = 3, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 857.66, df = 3, p-value < 0.00000000000000022
O MODELO EM 1° DIFERENÇA
#MODELO EM 1°DIFERENÇA
dados_var_3_diff <- tibble(
receita_diff = c(NA, diff(log(as.numeric(receita_real_tri_ts)))),
despesa_diff = c(NA, diff(log(as.numeric(despesa_real_tri_ts)))),
pib_diff = c(NA, diff(log(as.numeric(pib_real_tri_ts))))
) |> drop_na()
# Ordem [PIB, Gasto, Receita]
dados_var_3_diff <- dplyr::select(dados_var_3_diff, despesa_diff, pib_diff, receita_diff)
# Estimar VAR reduzido
var_red_diff <- VAR(dados_var_3_diff, p = 8, type = "const")
# Resíduos
U_diff <- residuals(var_red_diff) %>% as.matrix()
colnames(U_diff) <- c("u_G", "u_Y","u_T")
# Estimar b1 e choques estruturais
a1 <- 2.08
a2 <- 0
b2 <- 0
cov_u_diff <- cov(U_diff)
b1_diff <- cov_u_diff["u_G","u_T"] / cov_u_diff["u_G","u_G"]
# Choques estruturais
e_Y_diff <- U_diff[,"u_Y"]
e_G_diff <- U_diff[,"u_G"]
e_T_diff <- U_diff[,"u_T"] - a1*e_Y_diff - b1_diff*e_G_diff
E_diff <- cbind(e_Y_diff, e_G_diff, e_T_diff)
colnames(E_diff) <- c("choque_Gasto", "choque_PIB","choque_Receita")
round(cov(E_diff), 4) choque_Gasto choque_PIB choque_Receita
choque_Gasto 0.0003 -0.0003 0.0000
choque_PIB -0.0003 0.0071 0.0007
choque_Receita 0.0000 0.0007 0.0033
# Matriz B
Bmat_diff <- matrix(c(
NA, a2, b2,
0, NA, 0,
b1_diff, a1, NA
), nrow = 3, byrow = TRUE)
colnames(Bmat_diff) <- rownames(Bmat_diff) <- c("despesa_diff","pib_diff","receita_diff")
# Estimar SVAR
svar_bp_diff <- SVAR(var_red_diff, Bmat = Bmat_diff, estmethod = "scoring",
hessian = FALSE, max.iter = 1000)
summary(svar_bp_diff)
SVAR Estimation Results:
========================
Call:
SVAR(x = var_red_diff, estmethod = "scoring", Bmat = Bmat_diff,
max.iter = 1000, hessian = FALSE)
Type: B-model
Sample size: 91
Log Likelihood: 90.948
Method: scoring
Number of iterations: 280
LR overidentification test:
LR overidentification
data: dados_var_3_diff
Chi^2 = 664, df = 3, p-value <0.0000000000000002
Estimated A matrix:
despesa_diff pib_diff receita_diff
despesa_diff 1 0 0
pib_diff 0 1 0
receita_diff 0 0 1
Estimated B matrix:
despesa_diff pib_diff receita_diff
despesa_diff 0.1094 0.00000 0.0000
pib_diff 0.0000 0.05777 0.0000
receita_diff -0.3413 2.08000 0.8249
Estimated standard errors for B matrix:
despesa_diff pib_diff receita_diff
despesa_diff 0.007786 0.000000 0.00000
pib_diff 0.000000 0.002095 0.00000
receita_diff 0.000000 0.000000 0.06114
Covariance matrix of reduced form residuals (*100):
despesa_diff pib_diff receita_diff
despesa_diff 1.198 0.0000 -3.735
pib_diff 0.000 0.3337 12.015
receita_diff -3.735 12.0154 512.328
# IRFs
irf_gasto_diff <- irf(svar_bp_diff,
impulse = "despesa_diff",
response = c("despesa_diff","pib_diff","receita_diff"),
n.ahead = 12, boot = TRUE, runs = 1000)
irf_receita_diff <- irf(svar_bp_diff,
impulse = "receita_diff",
response = c("despesa_diff","pib_diff","receita_diff"),
n.ahead = 12, boot = TRUE, runs = 1000)
irf_pib_diff <- irf(svar_bp_diff,
impulse = c("despesa_diff", "receita_diff"),
response = c("pib_diff"),
n.ahead = 12, boot = TRUE, runs = 1000)
plot(irf_gasto_diff)plot(irf_receita_diff)plot(irf_pib_diff)# Diagnósticos
roots(var_red_diff, modulus = TRUE) [1] 0.9947867 0.9863954 0.9863954 0.8951649 0.8951649 0.8909904 0.8890891
[8] 0.8890891 0.8470743 0.8470743 0.8416659 0.8416659 0.8358617 0.8358617
[15] 0.8170451 0.8170451 0.7896216 0.7896216 0.7648401 0.7648401 0.6572448
[22] 0.6572448 0.5013074 0.4004599
plot(roots(var_red_diff))serial.test(var_red_diff, lags.pt = 12, type = "PT.asymptotic")
Portmanteau Test (asymptotic)
data: Residuals of VAR object var_red_diff
Chi-squared = 42.187, df = 36, p-value = 0.221
arch.test(var_red_diff, lags.multi = 12, multivariate.only = TRUE)
ARCH (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 426.01, df = 432, p-value = 0.5722
normality.test(var_red_diff, multivariate.only = TRUE)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 506.96, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 84.573, df = 3, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 422.38, df = 3, p-value < 0.00000000000000022