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
AJUSTE SAZONAL (ARIMA X-12)
TESTE DE RAIZ UNITÁRIA
#========= TESTE DE RAIZ UNITÁRIA
# ADF (Dickey-Fuller aumentado)
adf_receita_sa <- ur.df(dados_log_sa$log_receita, type = "trend", lags = 4, selectlags = "AIC")
summary(adf_receita_sa)@teststat tau3 phi2 phi3
statistic -2.18879 3.166583 2.647387
summary(adf_receita_sa)@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_sa <- ur.df(dados_log_sa$log_despesa, type = "trend", lags = 4, selectlags = "AIC")
summary(adf_despesa_sa)@teststat tau3 phi2 phi3
statistic -2.448134 3.490294 3.323567
summary(adf_despesa_sa)@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_sa <- ur.df(dados_log_sa$log_pib, type = "trend", lags = 4, selectlags = "AIC")
summary(adf_pib_sa)@teststat tau3 phi2 phi3
statistic -0.9795855 5.64447 1.198357
summary(adf_pib_sa)@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_ipca <- ur.df(dados_log_sa$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_sa$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
# Phillips-Perron
pp_receita_sa <- ur.pp(dados_log_sa$log_receita, type = "Z-tau", model = "trend", lags = "short")
summary(pp_receita_sa)@teststat[1] -3.446343
summary(pp_receita_sa)@cval 1pct 5pct 10pct
critical values -4.053014 -3.455217 -3.153098
pp_despesa_sa <- ur.pp(dados_log_sa$log_despesa, type = "Z-tau", model = "trend", lags = "short")
summary(pp_despesa_sa)@teststat[1] -3.670175
summary(pp_despesa_sa)@cval 1pct 5pct 10pct
critical values -4.053014 -3.455217 -3.153098
pp_pib_sa <- ur.pp(dados_log_sa$log_pib, type = "Z-tau", model = "trend", lags = "short")
summary(pp_pib_sa)@teststat[1] -1.24222
summary(pp_pib_sa)@cval 1pct 5pct 10pct
critical values -4.053014 -3.455217 -3.153098
pp_ipca <- ur.pp(dados_log_sa$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_sa$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
# DF-GLS (Elliot-Rothenberg-Stock)
dfgls_receita_sa <- ur.ers(dados_log_sa$log_receita, type = "DF-GLS", model = "trend", lag.max = 4)
summary(dfgls_receita_sa)@teststat[1] -1.388735
summary(dfgls_receita_sa)@cval 1pct 5pct 10pct
critical values -3.46 -2.93 -2.64
dfgls_despesa_sa <- ur.ers(dados_log_sa$log_despesa, type = "DF-GLS", model = "trend", lag.max = 4)
summary(dfgls_despesa_sa)@teststat[1] -1.692198
summary(dfgls_despesa_sa)@cval 1pct 5pct 10pct
critical values -3.46 -2.93 -2.64
dfgls_pib_sa <- ur.ers(dados_log_sa$log_pib, type = "DF-GLS", model = "trend", lag.max = 4)
summary(dfgls_pib_sa)@teststat[1] -0.9574495
summary(dfgls_pib_sa)@cval 1pct 5pct 10pct
critical values -3.46 -2.93 -2.64
dfgls_ipca <- ur.ers(dados_log_sa$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_sa$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
TESTE DE QUEBRA ESTRUTURAL
#========= TESTE DE QUEBRA ESTRUTURAL
za_receita_sa <- ur.za(dados_log_sa$log_receita, model = "both", lag = 4)
za_despesa_sa <- ur.za(dados_log_sa$log_despesa, model = "both", lag = 4)
za_pib_sa <- ur.za(dados_log_sa$log_pib, model = "both", lag = 4)
summary(za_receita_sa)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.48422 -0.03577 0.00348 0.03173 0.35952
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.4772770 1.9226822 3.369 0.001131 **
y.l1 0.4702896 0.1584442 2.968 0.003880 **
trend 0.0080150 0.0026389 3.037 0.003160 **
y.dl1 -0.1363833 0.1564396 -0.872 0.385747
y.dl2 -0.2285960 0.1461840 -1.564 0.121548
y.dl3 -0.0379381 0.1262850 -0.300 0.764585
y.dl4 -0.0001307 0.1069691 -0.001 0.999028
du -0.1627197 0.0475721 -3.420 0.000958 ***
dt -0.0036230 0.0022413 -1.616 0.109662
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08013 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.9071, Adjusted R-squared: 0.8985
F-statistic: 105 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -3.3432
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 59
summary(za_despesa_sa)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.17176 -0.03092 -0.01293 0.01232 0.48680
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.117875 2.017099 4.520 0.0000196 ***
y.l1 0.240724 0.168310 1.430 0.156271
trend 0.013490 0.003089 4.367 0.0000350 ***
y.dl1 0.166418 0.154999 1.074 0.285973
y.dl2 0.078219 0.140216 0.558 0.578401
y.dl3 0.094622 0.122427 0.773 0.441709
y.dl4 0.070841 0.110051 0.644 0.521480
du 0.077756 0.039455 1.971 0.051969 .
dt -0.008886 0.002215 -4.012 0.000128 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.07804 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.9509, Adjusted R-squared: 0.9463
F-statistic: 208.2 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -4.5112
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 42
summary(za_pib_sa)
################################
# Zivot-Andrews Unit Root Test #
################################
Call:
lm(formula = testmat)
Residuals:
Min 1Q Median 3Q Max
-0.091475 -0.008235 -0.000704 0.009669 0.050869
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.0329799 0.7709184 3.934 0.000169 ***
y.l1 0.7827980 0.0554841 14.109 < 0.0000000000000002 ***
trend 0.0031543 0.0008011 3.937 0.000167 ***
y.dl1 0.0509778 0.1017058 0.501 0.617491
y.dl2 0.1080336 0.0927330 1.165 0.247242
y.dl3 -0.3497251 0.0936146 -3.736 0.000336 ***
y.dl4 0.0037574 0.1007884 0.037 0.970348
du -0.0598790 0.0114362 -5.236 0.00000115 ***
dt -0.0012365 0.0005775 -2.141 0.035082 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.01698 on 86 degrees of freedom
(5 observations deleted due to missingness)
Multiple R-squared: 0.9957, Adjusted R-squared: 0.9953
F-statistic: 2482 on 8 and 86 DF, p-value: < 0.00000000000000022
Teststatistic: -3.9147
Critical values: 0.01= -5.57 0.05= -5.08 0.1= -4.82
Potential break point at position: 60
za_ipca <- ur.za(dados_log_sa$ipca_trimestral, model = "both", lag = 4)
za_selic <- ur.za(dados_log_sa$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
MQO
Call:
lm(formula = dlog_pib ~ dlog_despesa + dlog_receita, data = dados_dif)
Residuals:
Min 1Q Median 3Q Max
-0.039191 -0.010835 -0.000443 0.009272 0.057513
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.008338 0.001667 5.003 0.000002546 ***
dlog_despesa -0.052273 0.018776 -2.784 0.00647 **
dlog_receita 0.102458 0.017714 5.784 0.000000091 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.0163 on 96 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.3367, Adjusted R-squared: 0.3229
F-statistic: 24.36 on 2 and 96 DF, p-value: 0.000000002772
Call:
lm(formula = dlog_pib ~ dlog_despesa + dlog_receita + ipca_trimestral +
dselic, data = dados_dif)
Residuals:
Min 1Q Median 3Q Max
-0.037626 -0.008936 -0.000389 0.007976 0.058467
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.012213 0.003384 3.610 0.000494 ***
dlog_despesa -0.064630 0.018956 -3.409 0.000960 ***
dlog_receita 0.100353 0.017053 5.885 0.000000061 ***
ipca_trimestral -0.007776 0.005687 -1.367 0.174788
dselic -0.002522 0.001419 -1.778 0.078612 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.01568 on 94 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.399, Adjusted R-squared: 0.3735
F-statistic: 15.6 on 4 and 94 DF, p-value: 0.0000000007977
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.2690531813745156708428 0.1304082795363677438338 0.0704434692697361031222
[4] 0.0000000000000001390248
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 2 | 6.94 7.52 9.24 12.97
r <= 1 | 20.21 17.85 19.96 24.60
r = 0 | 49.99 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.4117772 2.479402 -1.282498 0.2671932
pib.l5 -1.5440071 -4.055287 1.089462 -1.8392302
constant 4.3798127 14.243786 -12.368313 10.4050579
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 constant
receita.d -0.61754497 0.024754930 -0.09248764 -0.00000000000004355208
despesa.d 0.09176054 -0.163040253 0.01289070 -0.00000000000023357209
pib.d 0.08946187 0.003274437 -0.02292870 0.00000000000003842664
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.2690531813745156708428 0.1304082795363677438338 0.0704434692697361031222
[4] 0.0000000000000001390248
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 2 | 6.94 7.52 9.24 12.97
r <= 1 | 13.27 13.75 15.67 20.20
r = 0 | 29.77 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.4117772 2.479402 -1.282498 0.2671932
pib.l5 -1.5440071 -4.055287 1.089462 -1.8392302
constant 4.3798127 14.243786 -12.368313 10.4050579
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 constant
receita.d -0.61754497 0.024754930 -0.09248764 -0.00000000000004355208
despesa.d 0.09176054 -0.163040253 0.01289070 -0.00000000000023357209
pib.d 0.08946187 0.003274437 -0.02292870 0.00000000000003842664
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)
1 1 1 1
$criteria
1 2 3
AIC(n) -18.507288951581863 -18.434069981855231 -18.437546470750704
HQ(n) -18.374530442418031 -18.201742590818526 -18.105650197841122
SC(n) -18.178360006749379 -17.858444328398384 -17.615224108669494
FPE(n) 0.000000009171872 0.000000009875727 0.000000009858225
4 5 6
AIC(n) -18.484916431208219 -18.34479451817129 -18.25451908394013
HQ(n) -18.053451276425768 -17.81376048151597 -17.62391616541193
SC(n) -17.415897360502651 -17.02907873884136 -16.69210659598583
FPE(n) 0.000000009431553 0.00000001090462 0.00000001202309
7 8
AIC(n) -18.13277085431749 -18.0442624520825
HQ(n) -17.40259905391641 -17.2145217698086
SC(n) -16.32366165773883 -15.9884565468795
FPE(n) 0.00000001371955 0.0000000151957
#Estimação do VAR
var_model <- VAR(dados_var, p = 1, type = "const")
summary(var_model)
VAR Estimation Results:
=========================
Endogenous variables: log_receita, log_despesa, log_pib
Deterministic variables: const
Sample size: 99
Log Likelihood: 509.768
Roots of the characteristic polynomial:
0.9889 0.4696 0.2294
Call:
VAR(y = dados_var, p = 1, type = "const")
Estimation results for equation log_receita:
============================================
log_receita = log_receita.l1 + log_despesa.l1 + log_pib.l1 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 0.34898 0.12190 2.863 0.00517 **
log_despesa.l1 0.03366 0.08974 0.375 0.70840
log_pib.l1 0.58765 0.20592 2.854 0.00530 **
const -0.61773 0.82346 -0.750 0.45501
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08121 on 95 degrees of freedom
Multiple R-Squared: 0.9135, Adjusted R-squared: 0.9107
F-statistic: 334.3 on 3 and 95 DF, p-value: < 0.00000000000000022
Estimation results for equation log_despesa:
============================================
log_despesa = log_receita.l1 + log_despesa.l1 + log_pib.l1 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 -0.35136 0.11422 -3.076 0.00274 **
log_despesa.l1 0.47235 0.08408 5.618 0.000000192 ***
log_pib.l1 1.03351 0.19294 5.357 0.000000590 ***
const -3.74785 0.77157 -4.857 0.000004676 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.07609 on 95 degrees of freedom
Multiple R-Squared: 0.9558, Adjusted R-squared: 0.9544
F-statistic: 684.1 on 3 and 95 DF, p-value: < 0.00000000000000022
Estimation results for equation log_pib:
========================================
log_pib = log_receita.l1 + log_despesa.l1 + log_pib.l1 + const
Estimate Std. Error t value Pr(>|t|)
log_receita.l1 0.03155 0.02826 1.116 0.267132
log_despesa.l1 0.06859 0.02081 3.297 0.001377 **
log_pib.l1 0.86661 0.04774 18.151 < 0.0000000000000002 ***
const 0.66405 0.19093 3.478 0.000764 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.01883 on 95 degrees of freedom
Multiple R-Squared: 0.9949, Adjusted R-squared: 0.9948
F-statistic: 6237 on 3 and 95 DF, p-value: < 0.00000000000000022
Covariance matrix of residuals:
log_receita log_despesa log_pib
log_receita 0.0065949 -0.0016205 0.0009564
log_despesa -0.0016205 0.0057899 -0.0002934
log_pib 0.0009564 -0.0002934 0.0003545
Correlation matrix of residuals:
log_receita log_despesa log_pib
log_receita 1.0000 -0.2623 0.6254
log_despesa -0.2623 1.0000 -0.2048
log_pib 0.6254 -0.2048 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 = 4.8551, df1 = 2, df2 = 285, p-value = 0.008444
$Instant
H0: No instantaneous causality between: log_receita and log_despesa
log_pib
data: VAR object var_model
Chi-squared = 28.786, df = 2, p-value = 0.0000005614
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 = 7.7708, df1 = 2, df2 = 285, p-value = 0.0005176
$Instant
H0: No instantaneous causality between: log_despesa and log_receita
log_pib
data: VAR object var_model
Chi-squared = 6.6065, df = 2, p-value = 0.03676
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 = 24.084, df1 = 2, df2 = 285, p-value = 0.0000000002167
$Instant
H0: No instantaneous causality between: log_pib and log_receita
log_despesa
data: VAR object var_model
Chi-squared = 27.928, df = 2, p-value = 0.0000008618
#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 = 121.74, df = 135, p-value = 0.7864
#Teste de normalidade dos resíduos
normality.test(var_model)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 2137.2, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 143.91, df = 3, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_model
Chi-squared = 1993.3, 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 = 449.31, df = 432, p-value = 0.273
#Estabilidade do modelo (roots dentro do círculo unitário)
roots(var_model) #estabilidade[1] 0.9889224 0.4696088 0.2294131
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)
3 3 1 3
$criteria
1 2 3
AIC(n) -17.8988895880874 -18.08261220302435 -18.24033165289189
HQ(n) -17.7653104109537 -17.84884864304039 -17.90638371005766
SC(n) -17.5677872355797 -17.50318308613584 -17.41257577162260
FPE(n) 0.0000000168533 0.00000001403518 0.00000001200841
4 5 6
AIC(n) -18.13110412659157 -18.0582788321250 -17.97429299993324
HQ(n) -17.69697180090708 -17.5239621235902 -17.33979190854821
SC(n) -17.05502148094149 -16.7338694220941 -16.40155682552158
FPE(n) 0.00000001343771 0.0000000145278 0.00000001592147
7 8
AIC(n) -17.86902035500920 -17.80495499525326
HQ(n) -17.13433488077391 -16.97008513816771
SC(n) -16.04795741621676 -15.73556529208004
FPE(n) 0.00000001787745 0.00000001933207
#Estimação do VAR em diferenças
var_diff <- VAR(dados_diff, p = 3, type = "const")
summary(var_diff)
VAR Estimation Results:
=========================
Endogenous variables: dlog_receita, dlog_despesa, dlog_pib
Deterministic variables: const
Sample size: 96
Log Likelihood: 500.544
Roots of the characteristic polynomial:
0.789 0.7527 0.7527 0.6704 0.6704 0.4681 0.4681 0.2145 0.2145
Call:
VAR(y = dados_diff, p = 3, 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 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.653731 0.134101 -4.875 0.00000493 ***
dlog_despesa.l1 0.006143 0.115095 0.053 0.9576
dlog_pib.l1 0.994616 0.564418 1.762 0.0816 .
dlog_receita.l2 -0.712865 0.150511 -4.736 0.00000851 ***
dlog_despesa.l2 -0.008694 0.119860 -0.073 0.9423
dlog_pib.l2 1.389567 0.546709 2.542 0.0128 *
dlog_receita.l3 -0.252399 0.139163 -1.814 0.0732 .
dlog_despesa.l3 -0.017875 0.107890 -0.166 0.8688
dlog_pib.l3 -0.079625 0.545071 -0.146 0.8842
const 0.005817 0.011311 0.514 0.6084
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08335 on 86 degrees of freedom
Multiple R-Squared: 0.3182, Adjusted R-squared: 0.2468
F-statistic: 4.459 on 9 and 86 DF, p-value: 0.00008169
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 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.25980 0.12917 -2.011 0.047429 *
dlog_despesa.l1 -0.38167 0.11086 -3.443 0.000892 ***
dlog_pib.l1 -0.12232 0.54366 -0.225 0.822517
dlog_receita.l2 0.09702 0.14498 0.669 0.505135
dlog_despesa.l2 -0.15511 0.11545 -1.343 0.182657
dlog_pib.l2 -0.18091 0.52661 -0.344 0.732032
dlog_receita.l3 0.17921 0.13405 1.337 0.184780
dlog_despesa.l3 -0.07656 0.10392 -0.737 0.463328
dlog_pib.l3 0.36893 0.52503 0.703 0.484145
const 0.01703 0.01089 1.563 0.121706
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08028 on 86 degrees of freedom
Multiple R-Squared: 0.2892, Adjusted R-squared: 0.2148
F-statistic: 3.887 on 9 and 86 DF, p-value: 0.0003604
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 + const
Estimate Std. Error t value Pr(>|t|)
dlog_receita.l1 -0.011885 0.028984 -0.410 0.68278
dlog_despesa.l1 0.050754 0.024876 2.040 0.04439 *
dlog_pib.l1 0.160074 0.121989 1.312 0.19294
dlog_receita.l2 -0.075273 0.032530 -2.314 0.02306 *
dlog_despesa.l2 0.034949 0.025906 1.349 0.18085
dlog_pib.l2 0.372693 0.118161 3.154 0.00222 **
dlog_receita.l3 -0.025130 0.030078 -0.835 0.40576
dlog_despesa.l3 0.048134 0.023318 2.064 0.04201 *
dlog_pib.l3 -0.272540 0.117807 -2.313 0.02308 *
const 0.005952 0.002445 2.435 0.01698 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.01801 on 86 degrees of freedom
Multiple R-Squared: 0.2727, Adjusted R-squared: 0.1965
F-statistic: 3.582 on 9 and 86 DF, p-value: 0.0008013
Covariance matrix of residuals:
dlog_receita dlog_despesa dlog_pib
dlog_receita 0.0069471 -0.0019063 0.0009252
dlog_despesa -0.0019063 0.0064457 -0.0003081
dlog_pib 0.0009252 -0.0003081 0.0003245
Correlation matrix of residuals:
dlog_receita dlog_despesa dlog_pib
dlog_receita 1.0000 -0.2849 0.6162
dlog_despesa -0.2849 1.0000 -0.2130
dlog_pib 0.6162 -0.2130 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.8921, df1 = 6, df2 = 258, p-value = 0.009569
$Instant
H0: No instantaneous causality between: dlog_receita and dlog_despesa
dlog_pib
data: VAR object var_diff
Chi-squared = 27.645, df = 2, p-value = 0.0000009929
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 = 2.0348, df1 = 6, df2 = 258, p-value = 0.06152
$Instant
H0: No instantaneous causality between: dlog_despesa and dlog_receita
dlog_pib
data: VAR object var_diff
Chi-squared = 7.3913, df = 2, p-value = 0.02483
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 = 1.6664, df1 = 6, df2 = 258, p-value = 0.1296
$Instant
H0: No instantaneous causality between: dlog_pib and dlog_receita
dlog_despesa
data: VAR object var_diff
Chi-squared = 26.498, df = 2, p-value = 0.000001762
#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 = 98.014, df = 117, p-value = 0.8982
#Normalidade dos resíduos
normality.test(var_diff)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 1054.2, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 69.727, df = 3, p-value = 0.000000000000004885
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_diff
Chi-squared = 984.5, 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 = 434.33, df = 432, p-value = 0.4595
## Estabilidade do VAR
roots(var_diff) [1] 0.7889864 0.7526535 0.7526535 0.6703958 0.6703958 0.4681112 0.4681112
[8] 0.2144888 0.2144888
plot(var_diff) stab_diff <- stability(var_diff, type = "OLS-CUSUM")
plot(stab_diff)VECM
#Estimar VECM
vec_model <- cajorls(johansen_test, r = 2)
summary(vec_model$rlm)Response receita.d :
Call:
lm(formula = receita.d ~ ect1 + ect2 + 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.43861 -0.02115 0.00689 0.03448 0.32776
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.59279 0.24335 -2.436 0.017045 *
ect2 -0.19291 0.15745 -1.225 0.224041
receita.dl1 -0.85504 0.15240 -5.611 0.000000273 ***
despesa.dl1 0.03355 0.12106 0.277 0.782392
pib.dl1 1.76550 0.66019 2.674 0.009058 **
receita.dl2 -1.08849 0.20250 -5.375 0.000000720 ***
despesa.dl2 -0.02266 0.14084 -0.161 0.872609
pib.dl2 2.16670 0.62389 3.473 0.000829 ***
receita.dl3 -0.78111 0.23724 -3.292 0.001473 **
despesa.dl3 -0.08897 0.15212 -0.585 0.560277
pib.dl3 0.98797 0.65409 1.510 0.134817
receita.dl4 -0.72905 0.25099 -2.905 0.004737 **
despesa.dl4 -0.03132 0.16851 -0.186 0.852994
pib.dl4 1.96414 0.72828 2.697 0.008510 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08098 on 81 degrees of freedom
Multiple R-squared: 0.4005, Adjusted R-squared: 0.2969
F-statistic: 3.865 on 14 and 81 DF, p-value: 0.00005225
Response despesa.d :
Call:
lm(formula = despesa.d ~ ect1 + ect2 + 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.14926 -0.03087 -0.00588 0.01412 0.45043
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.07128 0.23169 -0.308 0.75914
ect2 -0.36646 0.14991 -2.444 0.01668 *
receita.dl1 -0.32529 0.14510 -2.242 0.02770 *
despesa.dl1 -0.51248 0.11527 -4.446 0.0000275 ***
pib.dl1 0.30088 0.62858 0.479 0.63346
receita.dl2 -0.04735 0.19280 -0.246 0.80661
despesa.dl2 -0.40075 0.13410 -2.988 0.00371 **
pib.dl2 0.20659 0.59401 0.348 0.72890
receita.dl3 0.04524 0.22588 0.200 0.84174
despesa.dl3 -0.40432 0.14484 -2.792 0.00654 **
pib.dl3 0.60328 0.62276 0.969 0.33557
receita.dl4 -0.13987 0.23897 -0.585 0.55996
despesa.dl4 -0.45285 0.16044 -2.823 0.00599 **
pib.dl4 0.40410 0.69340 0.583 0.56166
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.0771 on 81 degrees of freedom
Multiple R-squared: 0.3914, Adjusted R-squared: 0.2863
F-statistic: 3.722 on 14 and 81 DF, p-value: 0.00008439
Response pib.d :
Call:
lm(formula = pib.d ~ ect1 + ect2 + 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.076184 -0.006998 0.001583 0.012053 0.041002
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 0.09274 0.05519 1.680 0.0968 .
ect2 0.04496 0.03571 1.259 0.2117
receita.dl1 0.01008 0.03456 0.292 0.7713
despesa.dl1 0.06610 0.02746 2.407 0.0183 *
pib.dl1 0.11483 0.14973 0.767 0.4454
receita.dl2 -0.03467 0.04593 -0.755 0.4525
despesa.dl2 0.05897 0.03194 1.846 0.0685 .
pib.dl2 0.28328 0.14150 2.002 0.0486 *
receita.dl3 0.03457 0.05381 0.642 0.5224
despesa.dl3 0.08302 0.03450 2.406 0.0184 *
pib.dl3 -0.36408 0.14835 -2.454 0.0163 *
receita.dl4 0.06212 0.05693 1.091 0.2784
despesa.dl4 0.06829 0.03822 1.787 0.0777 .
pib.dl4 0.01142 0.16517 0.069 0.9451
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.01837 on 81 degrees of freedom
Multiple R-squared: 0.3953, Adjusted R-squared: 0.2908
F-statistic: 3.783 on 14 and 81 DF, p-value: 0.00006871
#Converter VECM para VAR em nível (para IRF e FEVD)
vec_var <- vars::vec2var(johansen_test, r = 2)
vec_var
Coefficient matrix of lagged endogenous variables:
A1:
receita.l1 despesa.l1 pib.l1
receita 0.14496219 0.03354919 1.7655003
despesa -0.32529382 0.48751690 0.3008805
pib 0.01008124 0.06609541 1.1148304
A2:
receita.l2 despesa.l2 pib.l2
receita -0.23345064 -0.056204488 0.40120349
despesa 0.27794125 0.111733207 -0.09428955
pib -0.04475119 -0.007126399 0.16845004
A3:
receita.l3 despesa.l3 pib.l3
receita 0.30738250 -0.066314020 -1.1787288
despesa 0.09259743 -0.003570457 0.3966939
pib 0.06923741 0.024049841 -0.6473635
A4:
receita.l4 despesa.l4 pib.l4
receita 0.05205611 0.05764499 0.9761688
despesa -0.18511973 -0.04853389 -0.1991829
pib 0.02755362 -0.01473336 0.3755000
A5:
receita.l5 despesa.l5 pib.l5
receita 0.13625980 -0.16158918 -1.1110382
despesa 0.06859516 0.08639677 0.1153941
pib 0.03061523 -0.02332849 -0.1628255
Coefficient matrix of deterministic regressor(s).
constant
receita -2.3521274
despesa -1.9204165
pib 0.4384666
#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.9323898 0.001157784 0.06645241
[3,] 0.8124839 0.005937912 0.18157820
[4,] 0.7855535 0.013275569 0.20117089
[5,] 0.7298635 0.041761188 0.22837531
[6,] 0.7167317 0.049734068 0.23353424
[7,] 0.7148609 0.049484619 0.23565449
[8,] 0.7139597 0.053177525 0.23286280
[9,] 0.7078623 0.051615277 0.24052244
[10,] 0.7065271 0.050898620 0.24257427
[11,] 0.7032092 0.050185610 0.24660523
[12,] 0.6989427 0.050891025 0.25016628
# Ver decomposição da despesa
fevd_result$despesa receita despesa pib
[1,] 0.08237348 0.9176265 0.000000000
[2,] 0.19093938 0.8071630 0.001897577
[3,] 0.17774991 0.8198318 0.002418268
[4,] 0.18768199 0.8083376 0.003980370
[5,] 0.18584203 0.7966050 0.017552919
[6,] 0.18138192 0.7902845 0.028333539
[7,] 0.17913981 0.7800911 0.040769111
[8,] 0.17530139 0.7653218 0.059376839
[9,] 0.17985275 0.7490349 0.071112371
[10,] 0.18985658 0.7241464 0.085997036
[11,] 0.20082182 0.6975451 0.101633029
[12,] 0.21643255 0.6645984 0.118969081
# Ver decomposição do PIB
fevd_result$pib receita despesa pib
[1,] 0.4793058 0.0003533445 0.5203409
[2,] 0.4498822 0.0363536370 0.5137642
[3,] 0.3635360 0.0665647692 0.5698992
[4,] 0.3327285 0.1355038850 0.5317677
[5,] 0.3391113 0.1677978539 0.4930909
[6,] 0.3671964 0.1840432999 0.4487603
[7,] 0.4049611 0.1733118268 0.4217270
[8,] 0.4334522 0.1651290850 0.4014187
[9,] 0.4548663 0.1543042215 0.3908294
[10,] 0.4727253 0.1477653416 0.3795094
[11,] 0.4893176 0.1406167878 0.3700656
[12,] 0.5047779 0.1350122437 0.3602099
# 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 = 86.547, df = 102, p-value = 0.8632
# Normalidade dos resíduos
normality.test(vec_var)$JB
JB-Test (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 1398.8, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 124.84, df = 3, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object vec_var
Chi-squared = 1274, 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 = 428.89, df = 432, p-value = 0.5332
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.2734347353020647464206 0.2170366441391683720585
[3] 0.1511346315187404032443 0.1021674763425077514523
[5] 0.0651716553062813008790 -0.0000000000000004440892
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 4 | 6.40 7.52 9.24 12.97
r <= 3 | 16.64 17.85 19.96 24.60
r <= 2 | 32.21 32.00 34.91 41.07
r <= 1 | 55.45 49.65 53.12 60.16
r = 0 | 85.80 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.0000000000 1.00000000 1.00000000 1.0000000 1.00000000
despesa.l5 0.6478110440 -2.00711330 -0.24389856 -4.3603710 -0.95315099
pib.l5 -1.7948152397 0.83042455 -0.64775032 11.7237549 0.30102988
ipca.l5 0.0004749599 -0.74319884 0.82771995 0.2285135 -0.21982098
selic.l5 0.0036543298 -0.02433865 -0.01993525 0.4461875 -0.01997845
constant 4.9439229373 1.74422242 -0.45685612 -133.1257473 -4.74924384
constant
receita.l5 1.000000000
despesa.l5 0.001517974
pib.l5 -1.620521835
ipca.l5 0.195414182
selic.l5 -0.012677127
constant 10.667864401
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 ipca.l5 selic.l5
receita.d -0.45981821 -0.050958123 -0.01256175 -0.006995928 -0.08818442
despesa.d -0.32702407 0.157826366 -0.03393244 0.003804113 0.01039396
pib.d 0.08362936 0.005490346 0.01447204 -0.002210368 -0.01833875
ipca.d -0.52895576 -0.181444264 -0.51598486 -0.043269278 0.17106297
selic.d -6.65013069 -0.348190259 1.15284641 -0.094311694 0.34437737
constant
receita.d -0.0000000000013849054
despesa.d -0.0000000000012461731
pib.d 0.0000000000003071024
ipca.d -0.0000000000019767253
selic.d -0.0000000000190704240
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.2734347353020647464206 0.2170366441391683720585
[3] 0.1511346315187404032443 0.1021674763425077514523
[5] 0.0651716553062813008790 -0.0000000000000004440892
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 4 | 6.40 7.52 9.24 12.97
r <= 3 | 10.24 13.75 15.67 20.20
r <= 2 | 15.57 19.77 22.00 26.81
r <= 1 | 23.24 25.56 28.14 33.24
r = 0 | 30.35 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.0000000000 1.00000000 1.00000000 1.0000000 1.00000000
despesa.l5 0.6478110440 -2.00711330 -0.24389856 -4.3603710 -0.95315099
pib.l5 -1.7948152397 0.83042455 -0.64775032 11.7237549 0.30102988
ipca.l5 0.0004749599 -0.74319884 0.82771995 0.2285135 -0.21982098
selic.l5 0.0036543298 -0.02433865 -0.01993525 0.4461875 -0.01997845
constant 4.9439229373 1.74422242 -0.45685612 -133.1257473 -4.74924384
constant
receita.l5 1.000000000
despesa.l5 0.001517974
pib.l5 -1.620521835
ipca.l5 0.195414182
selic.l5 -0.012677127
constant 10.667864401
Weights W:
(This is the loading matrix)
receita.l5 despesa.l5 pib.l5 ipca.l5 selic.l5
receita.d -0.45981821 -0.050958123 -0.01256175 -0.006995928 -0.08818442
despesa.d -0.32702407 0.157826366 -0.03393244 0.003804113 0.01039396
pib.d 0.08362936 0.005490346 0.01447204 -0.002210368 -0.01833875
ipca.d -0.52895576 -0.181444264 -0.51598486 -0.043269278 0.17106297
selic.d -6.65013069 -0.348190259 1.15284641 -0.094311694 0.34437737
constant
receita.d -0.0000000000013849054
despesa.d -0.0000000000012461731
pib.d 0.0000000000003071024
ipca.d -0.0000000000019767253
selic.d -0.0000000000190704240
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 = 2)
summary(vec_model_5$rlm)Response receita.d :
Call:
lm(formula = receita.d ~ ect1 + ect2 + 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.41696 -0.02259 0.00226 0.04161 0.33261
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.5107763 0.2557801 -1.997 0.04956 *
ect2 -0.1955966 0.1880909 -1.040 0.30182
receita.dl1 -0.8389449 0.1648561 -5.089 0.00000270 ***
despesa.dl1 0.0513883 0.1493483 0.344 0.73177
pib.dl1 1.8174631 0.7306899 2.487 0.01516 *
ipca.dl1 0.0378326 0.0363651 1.040 0.30161
selic.dl1 -0.0076754 0.0135730 -0.565 0.57347
receita.dl2 -1.0713324 0.2163498 -4.952 0.00000459 ***
despesa.dl2 -0.0330979 0.1772658 -0.187 0.85240
pib.dl2 2.1635672 0.7060751 3.064 0.00306 **
ipca.dl2 0.0095270 0.0449909 0.212 0.83289
selic.dl2 0.0050832 0.0181725 0.280 0.78048
receita.dl3 -0.7466279 0.2549590 -2.928 0.00454 **
despesa.dl3 -0.1079467 0.1925398 -0.561 0.57676
pib.dl3 0.9110896 0.7334554 1.242 0.21814
ipca.dl3 0.0460496 0.0491308 0.937 0.35170
selic.dl3 0.0005122 0.0178889 0.029 0.97723
receita.dl4 -0.6664412 0.2664536 -2.501 0.01462 *
despesa.dl4 -0.0608792 0.2061916 -0.295 0.76864
pib.dl4 1.7730735 0.8012103 2.213 0.03002 *
ipca.dl4 0.0163033 0.0472355 0.345 0.73097
selic.dl4 -0.0085161 0.0126556 -0.673 0.50313
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.08436 on 73 degrees of freedom
Multiple R-squared: 0.4136, Adjusted R-squared: 0.2368
F-statistic: 2.34 on 22 and 73 DF, p-value: 0.003617
Response despesa.d :
Call:
lm(formula = despesa.d ~ ect1 + ect2 + 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.11679 -0.03964 -0.00766 0.02052 0.34688
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.169198 0.212375 -0.797 0.428213
ect2 -0.528625 0.156173 -3.385 0.001149 **
receita.dl1 -0.303598 0.136881 -2.218 0.029668 *
despesa.dl1 -0.673673 0.124004 -5.433 0.000000698 ***
pib.dl1 -0.221423 0.606694 -0.365 0.716191
ipca.dl1 -0.099262 0.030194 -3.287 0.001556 **
selic.dl1 0.003861 0.011270 0.343 0.732880
receita.dl2 0.024341 0.179636 0.135 0.892590
despesa.dl2 -0.481547 0.147184 -3.272 0.001634 **
pib.dl2 -0.375519 0.586257 -0.641 0.523829
ipca.dl2 -0.046512 0.037356 -1.245 0.217078
selic.dl2 -0.029173 0.015089 -1.933 0.057063 .
receita.dl3 0.063888 0.211693 0.302 0.763665
despesa.dl3 -0.526427 0.159866 -3.293 0.001530 **
pib.dl3 0.512819 0.608990 0.842 0.402494
ipca.dl3 -0.062890 0.040793 -1.542 0.127480
selic.dl3 0.012732 0.014853 0.857 0.394129
receita.dl4 -0.179721 0.221237 -0.812 0.419235
despesa.dl4 -0.641283 0.171202 -3.746 0.000357 ***
pib.dl4 0.390434 0.665248 0.587 0.559082
ipca.dl4 -0.092758 0.039220 -2.365 0.020686 *
selic.dl4 -0.003223 0.010508 -0.307 0.759965
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.07005 on 73 degrees of freedom
Multiple R-squared: 0.5473, Adjusted R-squared: 0.4109
F-statistic: 4.011 on 22 and 73 DF, p-value: 0.00000386
Response pib.d :
Call:
lm(formula = pib.d ~ ect1 + ect2 + 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.073410 -0.008081 0.002920 0.011707 0.041675
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 0.0891197 0.0577590 1.543 0.1272
ect2 0.0431563 0.0424738 1.016 0.3130
receita.dl1 0.0128298 0.0372270 0.345 0.7314
despesa.dl1 0.0562700 0.0337251 1.668 0.0995 .
pib.dl1 0.1023957 0.1650007 0.621 0.5368
ipca.dl1 0.0023386 0.0082118 0.285 0.7766
selic.dl1 -0.0012980 0.0030650 -0.423 0.6732
receita.dl2 -0.0307349 0.0488550 -0.629 0.5312
despesa.dl2 0.0514037 0.0400293 1.284 0.2031
pib.dl2 0.2491736 0.1594424 1.563 0.1224
ipca.dl2 -0.0062350 0.0101596 -0.614 0.5413
selic.dl2 0.0002638 0.0041036 0.064 0.9489
receita.dl3 0.0371235 0.0575736 0.645 0.5211
despesa.dl3 0.0815711 0.0434784 1.876 0.0646 .
pib.dl3 -0.3599120 0.1656252 -2.173 0.0330 *
ipca.dl3 0.0026385 0.0110945 0.238 0.8127
selic.dl3 0.0012566 0.0040396 0.311 0.7566
receita.dl4 0.0618765 0.0601692 1.028 0.3072
despesa.dl4 0.0604842 0.0465612 1.299 0.1980
pib.dl4 0.0134068 0.1809253 0.074 0.9411
ipca.dl4 -0.0056695 0.0106665 -0.532 0.5967
selic.dl4 -0.0012653 0.0028578 -0.443 0.6592
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.01905 on 73 degrees of freedom
Multiple R-squared: 0.4137, Adjusted R-squared: 0.237
F-statistic: 2.341 on 22 and 73 DF, p-value: 0.003603
Response ipca.d :
Call:
lm(formula = ipca.d ~ ect1 + ect2 + 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.97118 -0.12711 -0.03207 0.09529 1.23771
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -0.71040 0.90061 -0.789 0.43278
ect2 0.02152 0.66227 0.032 0.97417
receita.dl1 0.08164 0.58046 0.141 0.88854
despesa.dl1 0.25784 0.52586 0.490 0.62538
pib.dl1 -0.34989 2.57278 -0.136 0.89220
ipca.dl1 -0.43710 0.12804 -3.414 0.00105 **
selic.dl1 0.08702 0.04779 1.821 0.07273 .
receita.dl2 -0.51437 0.76177 -0.675 0.50167
despesa.dl2 0.43068 0.62416 0.690 0.49238
pib.dl2 1.15738 2.48611 0.466 0.64293
ipca.dl2 -0.75185 0.15841 -4.746 0.0000101 ***
selic.dl2 -0.09771 0.06399 -1.527 0.13108
receita.dl3 -0.69408 0.89772 -0.773 0.44193
despesa.dl3 0.53929 0.67794 0.795 0.42891
pib.dl3 3.03389 2.58252 1.175 0.24390
ipca.dl3 -0.21912 0.17299 -1.267 0.20930
selic.dl3 -0.01093 0.06299 -0.174 0.86272
receita.dl4 -1.03881 0.93819 -1.107 0.27182
despesa.dl4 0.67549 0.72601 0.930 0.35522
pib.dl4 3.86654 2.82108 1.371 0.17470
ipca.dl4 -0.01962 0.16632 -0.118 0.90640
selic.dl4 -0.01253 0.04456 -0.281 0.77937
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.297 on 73 degrees of freedom
Multiple R-squared: 0.4582, Adjusted R-squared: 0.295
F-statistic: 2.807 on 22 and 73 DF, p-value: 0.0005156
Response selic.d :
Call:
lm(formula = selic.d ~ ect1 + ect2 + 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.01953 -0.39344 -0.01623 0.37703 2.82995
Coefficients:
Estimate Std. Error t value Pr(>|t|)
ect1 -6.998321 2.314111 -3.024 0.00344 **
ect2 -3.609171 1.701709 -2.121 0.03733 *
receita.dl1 -1.325508 1.491497 -0.889 0.37708
despesa.dl1 -0.683265 1.351194 -0.506 0.61461
pib.dl1 8.220874 6.610746 1.244 0.21764
ipca.dl1 0.782262 0.329005 2.378 0.02004 *
selic.dl1 0.945711 0.122798 7.701 0.0000000000512 ***
receita.dl2 -2.946192 1.957374 -1.505 0.13659
despesa.dl2 -1.111494 1.603771 -0.693 0.49048
pib.dl2 10.757492 6.388050 1.684 0.09645 .
ipca.dl2 0.365488 0.407045 0.898 0.37219
selic.dl2 -0.500187 0.164412 -3.042 0.00326 **
receita.dl3 -3.463988 2.306682 -1.502 0.13748
despesa.dl3 -1.789234 1.741958 -1.027 0.30775
pib.dl3 13.096069 6.635766 1.974 0.05222 .
ipca.dl3 0.280546 0.444499 0.631 0.52991
selic.dl3 0.044151 0.161846 0.273 0.78578
receita.dl4 -5.131851 2.410677 -2.129 0.03665 *
despesa.dl4 -2.317914 1.865470 -1.243 0.21802
pib.dl4 12.840442 7.248763 1.771 0.08067 .
ipca.dl4 0.393654 0.427352 0.921 0.36001
selic.dl4 0.004938 0.114499 0.043 0.96572
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7632 on 73 degrees of freedom
Multiple R-squared: 0.7316, Adjusted R-squared: 0.6507
F-statistic: 9.046 on 22 and 73 DF, p-value: 0.0000000000003152
#CONVERSÃO PARA VAR EQUIVALENTE
vec_var_5 <- vec2var(teste_johansen_5, r = 2)
# 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 = 251.9, df = 280, p-value = 0.8852
# Normalidade dos resíduos
normality.test(vec_var_5)$JB
JB-Test (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 1167.6, df = 10, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 101.91, df = 5, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object vec_var_5
Chi-squared = 1065.7, 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 (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_sa)),
log_despesa = log(as.numeric(despesa_real_tri_sa)),
log_pib = log(as.numeric(pib_real_tri_sa))
) |> 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.0002 -0.0002 0.0002
choque_PIB -0.0002 0.0049 0.0003
choque_Receita 0.0002 0.0003 0.0029
# 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: 130.215
Method: scoring
Number of iterations: 402
LR overidentification test:
LR overidentification
data: dados_var_3
Chi^2 = 679, 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.08973 0.00000 0.0000
log_pib 0.00000 0.05415 0.0000
log_receita -0.28753 2.08000 0.7081
Estimated standard errors for B matrix:
log_despesa log_pib log_receita
log_despesa 0.006358 0.000000 0.0000
log_pib 0.000000 0.001732 0.0000
log_receita 0.000000 0.000000 0.0522
Covariance matrix of reduced form residuals (*100):
log_despesa log_pib log_receita
log_despesa 0.8051 0.0000 -2.58
log_pib 0.0000 0.2932 11.26
log_receita -2.5800 11.2624 491.05
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.9734765 0.8621028 0.8621028 0.8460165 0.8460165 0.8441414 0.8439816
[8] 0.8439816 0.8052489 0.8052489 0.7970283 0.7970283 0.7839994 0.7839994
[15] 0.7750740 0.7750740 0.7417106 0.7417106 0.7175300 0.7175300 0.7058371
[22] 0.7058371 0.5312483 0.5312483
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 = 32.077, df = 36, p-value = 0.6558
arch.test(var_red, lags.multi = 12, multivariate.only = TRUE)
ARCH (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 426.39, df = 432, p-value = 0.5671
normality.test(var_red, multivariate.only = TRUE)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 1354.4, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 188.24, df = 3, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_red
Chi-squared = 1166.1, 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_sa)))),
despesa_diff = c(NA, diff(log(as.numeric(despesa_real_tri_sa)))),
pib_diff = c(NA, diff(log(as.numeric(pib_real_tri_sa))))
) |> 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.0002 0.0002
choque_PIB -0.0002 0.0053 0.0005
choque_Receita 0.0002 0.0005 0.0031
# 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: 118.421
Method: scoring
Number of iterations: 358
LR overidentification test:
LR overidentification
data: dados_var_3_diff
Chi^2 = 671, 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.09419 0.00000 0.0000
pib_diff 0.00000 0.05502 0.0000
receita_diff -0.29710 2.08000 0.7441
Estimated standard errors for B matrix:
despesa_diff pib_diff receita_diff
despesa_diff 0.006719 0.000000 0.00000
pib_diff 0.000000 0.001841 0.00000
receita_diff 0.000000 0.000000 0.05516
Covariance matrix of reduced form residuals (*100):
despesa_diff pib_diff receita_diff
despesa_diff 0.8872 0.0000 -2.798
pib_diff 0.0000 0.3027 11.444
receita_diff -2.7984 11.4435 496.834
# 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.9169504 0.9169504 0.8596437 0.8596437 0.8595808 0.8595808 0.8469520
[8] 0.8469520 0.8461214 0.8461214 0.8189136 0.8189136 0.8136183 0.8136183
[15] 0.8097567 0.7742937 0.7742937 0.7646956 0.7646956 0.7601856 0.7092422
[22] 0.7092422 0.6182757 0.1108312
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 = 36.236, df = 36, p-value = 0.4577
arch.test(var_red_diff, lags.multi = 12, multivariate.only = TRUE)
ARCH (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 445.33, df = 432, p-value = 0.3187
normality.test(var_red_diff, multivariate.only = TRUE)$JB
JB-Test (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 696.32, df = 6, p-value < 0.00000000000000022
$Skewness
Skewness only (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 108.05, df = 3, p-value < 0.00000000000000022
$Kurtosis
Kurtosis only (multivariate)
data: Residuals of VAR object var_red_diff
Chi-squared = 588.27, df = 3, p-value < 0.00000000000000022