Em quanto um choque cambial afeta a inflação? Analisando funções impulso-resposta no VAR usando Python

É 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:

    \[y_t = \sum_{i\ge0}^p A_p y_{t-p} + z_t + \varepsilon_t\]

onde:

- y_t = (\pi_t^L, E_t \pi_{t+i}, \pi_t, \Delta e_t, h_t)

- \pi_t^L é a inflação de preços livres do IPCA

- E_t \pi_{t+i} é a inflação esperada no momento t para o IPCA i momentos à frente

- \pi_t é a inflação do IPCA

- \Delta e_t é a variação da taxa de câmbio nominal (R$/US$)

- h_t é uma medida de hiato do produto

- z_t é 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:

    \[y_t = A y_{t-1} + \varepsilon_t\]

Para encontrar, por exemplo, o efeito do *j*-ésimo elemento do vetor de choques \varepsilon sobre o *i*-ésimo elemento do vetor de variáveis endógenas y após dois períodos, que é uma resposta ao impulso específica, primeiro reescreva a equação acima com uma defasagem, tal como:

    \[y_{t-1} = A y_{t-2} + \varepsilon_{t-1}\]

Substituindo, obtemos:

    \[y_t = A^2 y_{t-2} + A \varepsilon_{t-1} + \varepsilon_t\]

Então repetimos o processo usando duas defasagens para obter:

    \[y_t = A^3 y_{t-3} + A^2 \varepsilon_{t-2} + A \varepsilon_{t-1} + \varepsilon_t\]

Dessa forma, o efeito do *j*-ésimo elemento de \varepsilon_{t-2} sobre o *i*-ésimo elemento de y_t é o *i, j* elemento da matriz A^2.

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.

Os principais resultados são os seguintes:

  • 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.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Coletando dados para monitoramento climático com Python

As condições climatológicas influenciam desde a safra de grãos até a decisão de um vendedor ambulante levar seu carrinho para a praia ou não. Por sua importância e impactos na economia do país, neste exercício mostramos como coletar e elaborar análises de dados sobre o clima usando o Python.

Coletando dados de secas e queimadas no Brasil com Python

Neste artigo exploramos fontes públicas de dados sobre secas e queimadas no Brasil. Mostramos como acessar, coletar e preparar os dados para elaboração de análises. Usamos a linguagem Python para desenvolver uma rotina automatizada.

Como analisar demonstrações contábeis usando IA

Neste post, vamos explorar como utilizar o modelo de linguagem Gemini do Google para analisar demonstrações contábeis anuais da Eletrobras e extrair informações relevantes para tomada de decisão. Através de um código Python, vamos importar os dados direto da CVM, conectar com o Gemini e gerar resumos sobre as contas das demonstrações e perspectivas futuras sobre as finanças da empresa.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.