É conhecido na macroeconomia que variações na taxa de câmbio são repassadas para o nível de preços ao consumidor, o efeito “pass-through”. Isso significa que um aumento repentino na taxa de câmbio, de um desvio padrão por exemplo, tende a afetar os preços da cesta de produtos e serviços ao consumidor, aumentando assim a taxa de inflação nos próximos períodos. Quantificar este repasse cambial é, portanto, importante para compreender a dinâmica da inflação na economia.
Este exercício quantifica o repasse cambial sobre a inflação para a economia brasileira sob a ótica de um modelo VAR. Usando dados recentes, estimamos as funções de impulso resposta para analisar choques na variação do câmbio e a resposta ao longo do tempo sobre a inflação de preços livres.
Esse exercício é uma tradução para Python da postagem “Em quanto um choque cambial afeta a inflação? Analisando funções impulso-resposta no VAR”.
Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.
Modelo
Com o propósito de quantificar o repasse cambial, nos inspiramos em BCB (2018) representando uma Curva de Phillips para a inflação de preços livres estimada por um modelo VAR, como abaixo:
Com o propósito de quantificar o repasse cambial, nos inspiramos em BCB (2018) representando uma Curva de Phillips para a inflação de preços livres estimada por um modelo VAR, como abaixo:
onde:
-
- é a inflação de preços livres do IPCA
- é a inflação esperada no momento para o IPCA momentos à frente
- é a inflação do IPCA
- é a variação da taxa de câmbio nominal (R$/US$)
- é uma medida de hiato do produto
- é uma variável de controle que pode incluir constante, tendência e/ou dummies sazonais
Funções impulso resposta
As funções impulso resposta (FIR) respondem a seguinte pergunta:
- Qual é a resposta ao longo do tempo em uma variável endógena de um modelo VAR para um choque em outra variável, assumindo que os choques de outras variáveis são nulos?
Dessa forma, a FIR permite isolar o efeito de um choque em termos de sinal e magnitude ao longo do tempo, mantendo tudo o mais constante.
Para calcular FIR, considere um simples modelo VAR com apenas uma defasagem, tal como:
Para encontrar, por exemplo, o efeito do *j*-ésimo elemento do vetor de choques sobre o *i*-ésimo elemento do vetor de variáveis endógenas após dois períodos, que é uma resposta ao impulso específica, primeiro reescreva a equação acima com uma defasagem, tal como:
Substituindo, obtemos:
Então repetimos o processo usando duas defasagens para obter:
Dessa forma, o efeito do *j*-ésimo elemento de sobre o *i*-ésimo elemento de é o *i, j* elemento da matriz .
Dados
Utilizamos uma amostra de dados do quarto trimestre de 2003 ao quarto trimestre de 2023. Os dados em frequência trimestral são expostos no gráfico abaixo:
Ordem de Integração
Confirmamos a ordem de integração das séries através de testes de estacionariedade ADF, PP e KPSS. Abaixo reportamos a ordem de integração reportada entre os testes para cada variável:
Código
kpss | adf | pp | |
---|---|---|---|
ipca_l | 0 | 1 | 0 |
ipca | 0 | 1 | 0 |
delta_e | 1 | 0 | 0 |
hiato | 1 | 1 | 1 |
e_pi_t4 | 1 | 1 | 0 |
Cointegração
Devemos verificar a ordem de defasagem baseando-se em critérios de informação. Além disso, o sinal True, revela que o modelo é um VECM, ao invés de um VAR:
{'aic': 8, 'bic': 0, 'hqic': 3, 'fpe': 4}
True
Abaixo reportamos os resultados para o teste do máximo autovalor:
Código
Johansen cointegration test using maximum eigenvalue test statistic with 5% significance level
=====================================
r_0 r_1 test statistic critical value
-------------------------------------
0 1 60.66 30.44
1 2 40.69 24.16
2 3 32.58 17.80
3 4 9.316 11.22
-------------------------------------
Rank : 3
Modelagem
Encontramos cointegração com posto da matriz igual a 3 e, dessa forma, estimamos um modelo VECM usando defasagens definidas por critérios de informação:
Código
Código
Det. terms outside the coint. relation & lagged endog. parameters for equation ipca_l
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
season1 0.3732 0.067 5.582 0.000 0.242 0.504
season2 0.1906 0.067 2.848 0.004 0.059 0.322
season3 -0.0718 0.067 -1.078 0.281 -0.202 0.059
Det. terms outside the coint. relation & lagged endog. parameters for equation ipca
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
season1 0.2986 0.070 4.292 0.000 0.162 0.435
season2 0.1615 0.070 2.319 0.020 0.025 0.298
season3 -0.0785 0.069 -1.133 0.257 -0.214 0.057
Det. terms outside the coint. relation & lagged endog. parameters for equation delta_e
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
season1 0.0206 0.064 0.323 0.746 -0.104 0.145
season2 -0.0457 0.064 -0.717 0.474 -0.171 0.079
season3 -0.0408 0.063 -0.643 0.520 -0.165 0.084
Det. terms outside the coint. relation & lagged endog. parameters for equation hiato
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
season1 -0.0085 0.381 -0.022 0.982 -0.755 0.738
season2 -0.1970 0.381 -0.517 0.605 -0.944 0.550
season3 -0.4692 0.379 -1.237 0.216 -1.213 0.275
Det. terms outside the coint. relation & lagged endog. parameters for equation e_pi_t4
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
season1 0.1424 0.021 6.791 0.000 0.101 0.184
season2 0.0504 0.021 2.400 0.016 0.009 0.092
season3 -0.1080 0.021 -5.165 0.000 -0.149 -0.067
Loading coefficients (alpha) for equation ipca_l
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ec1 -0.5247 0.158 -3.311 0.001 -0.835 -0.214
ec2 0.0374 0.151 0.248 0.804 -0.258 0.333
ec3 0.1814 0.115 1.581 0.114 -0.043 0.406
Loading coefficients (alpha) for equation ipca
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ec1 0.1326 0.165 0.804 0.421 -0.191 0.456
ec2 -0.7524 0.157 -4.798 0.000 -1.060 -0.445
ec3 0.2240 0.119 1.877 0.061 -0.010 0.458
Loading coefficients (alpha) for equation delta_e
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ec1 -0.0217 0.151 -0.144 0.885 -0.317 0.274
ec2 -0.0226 0.143 -0.157 0.875 -0.304 0.259
ec3 -0.7022 0.109 -6.429 0.000 -0.916 -0.488
Loading coefficients (alpha) for equation hiato
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ec1 1.1886 0.903 1.317 0.188 -0.580 2.958
ec2 -1.3531 0.858 -1.576 0.115 -3.035 0.329
ec3 -0.9326 0.653 -1.428 0.153 -2.213 0.348
Loading coefficients (alpha) for equation e_pi_t4
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ec1 0.1303 0.050 2.621 0.009 0.033 0.228
ec2 -0.0535 0.047 -1.132 0.257 -0.146 0.039
ec3 0.0066 0.036 0.185 0.853 -0.064 0.077
Cointegration relations for loading-coefficients-column 1
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
beta.1 1.0000 0 0 0.000 1.000 1.000
beta.2 2.302e-17 0 0 0.000 2.3e-17 2.3e-17
beta.3 -5.462e-19 0 0 0.000 -5.46e-19 -5.46e-19
beta.4 -0.0100 0.015 -0.662 0.508 -0.040 0.020
beta.5 -1.2122 0.014 -85.190 0.000 -1.240 -1.184
Cointegration relations for loading-coefficients-column 2
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
beta.1 -3.532e-17 0 0 0.000 -3.53e-17 -3.53e-17
beta.2 1.0000 0 0 0.000 1.000 1.000
beta.3 1.084e-16 0 0 0.000 1.08e-16 1.08e-16
beta.4 0.0029 0.010 0.280 0.779 -0.017 0.023
beta.5 -1.1938 0.091 -13.083 0.000 -1.373 -1.015
Cointegration relations for loading-coefficients-column 3
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
beta.1 -1.601e-17 0 0 0.000 -1.6e-17 -1.6e-17
beta.2 -2.677e-17 0 0 0.000 -2.68e-17 -2.68e-17
beta.3 1.0000 0 0 0.000 1.000 1.000
beta.4 0.0125 0.086 0.146 0.884 -0.155 0.180
beta.5 -0.0233 0.062 -0.374 0.708 -0.145 0.099
==============================================================================
Realizamos abaixo os testes autocorrelação e normalidade.
Código
Portmanteau-test for residual autocorrelation. H_0: residual autocorrelation up to lag 20 is zero. Conclusion: fail to reject H_0 at 5% significance level.
=========================================
Test statistic Critical value p-value df
-----------------------------------------
534.4 537.3 0.060 485
-----------------------------------------
Código
normality (skew and kurtosis) test. H_0: data generated by normally-distributed process. Conclusion: reject H_0 at 5% significance level.
========================================
Test statistic Critical value p-value df
----------------------------------------
252.9 18.31 0.000 10
----------------------------------------
Pelos resultados, o resíduos não apresentaram autocorrelação significativa até a defasagem 20. Entretanto, os resíduos não estão normalmente distribuídos. Ignoraremos este problema aqui, enfatizando que intervalos de confiança calculados a partir deste modelo podem ser imprecisos.
- Choques cambiais não são repassados instantaneamente para o nível de preços;
- O efeito dos choques cambiais sobre a inflação de preços livres tende a ser positivo;
- Um choque de um desvio padrão na variação da taxa de câmbio tem um efeito inicial pequeno, mas persistente ao longo do tempo;
Conclusão
Este exercício quantifica o repasse cambial sobre a inflação para a economia brasileira sob a ótica de um modelo VAR. Usando dados recentes, estimamos as funções de impulso resposta para analisar choques na variação do câmbio e a resposta ao longo do tempo sobre a inflação de preços livres.
Referências
BANCO CENTRAL DO BRASIL (2018). Repasse cambial sob a ótica de um modelo semiestrutural. Box do Relatório de Inflação de Setembro de 2018.