//styles, look here: https://cdnjs.com/libraries/highlight.js/9.12.0

January 17, 2020

1488 palavras 7 mins

Sistemas dinâmicos II: Expectativas racionais

Há muito tempo atrás eu escrevi sobre Álgebra Linear e sistemas dinâmicos. Lá, eu falava de um caso em que o sistema era xt=Axt1x_t = Ax_{t-1}, onde xtx_t era um vetor e AA tinha que ter autovalores menores que 1 em módulo para garantir a estabilidade do sistema. Apesar de ser um caso bem interessante, muitas vezes em economia nós temos que lidar com expectativas e assumimos expectativas racionais - que pode ser definida de várias maneiras, mas a mais intuitiva é pensar que agentes não cometem erros sistematicamente. Um caso “famoso” de expectativas racionais é a curva de Phillips novo keynesiana:

πt=βEtπt+1+κy~t\pi_t = \beta E_t \pi_{t+1} + \kappa \tilde{y}_t

Onde π\pi é a inflação e y~t\tilde{y}_t é o hiato do produto.

Eu me perguntei durante muito tempo “como diabos você se livra dessa expectância?”. Com expectativas adaptativas, a resposta é bem simples: Et(πt+1)=πtE_t(\pi_{t+1}) = \pi_t. Para entender como funciona o caso com expectativas racionais, vamos dar um passo para trás e relembrar o passo a passo da equação em diferenças linear sem expectativas.

Suponha que você tem uma única equação, linear, xt=αxt1x_t = \alpha x_{t-1}. Podemos sempre iterar para trás e realizar substituição recursiva:

xt=αxt1xt1=αxt2xt2=αxt3... x_t = \alpha x_{t-1}\\ x_{t-1} = \alpha{}x_{t-2}\\ x_{t-2} = \alpha x_{t-3}\\ ...

E substitua a última na penúltima, …, a terceira na segunda e a segunda na primeira para obter:

xt=αtx0x_t = \alpha^tx_0

Onde x0x_0 é uma condição inicial. Veja que se α>1|\alpha| > 1, o sistema explode. Caso contrário, o processo colapsa para zero. Normalmente, em economia, nós imaginamos que existe um choque aleatório εt\varepsilon_t e o sistema é xt=αxt1+εtx_t = \alpha x_{t-1} + \varepsilon_t. Isso é só um AR(1) usual e a representação recursiva funciona da mesma forma, mas agora com um termo extra:

xt=αtx0+j=0tαjεtjx_t = \alpha^t x_0 + \sum_{j=0}^t \alpha^j \varepsilon_{t-j}

Até aqui, nada de extremamente novo: esse é o ferramental usual de equações em diferenças. Agora, considere que nós temos uma única equação que tem uma expectativa (que assumimos ser racional):

Et(yt+1)=λytE_t(y_{t+1}) = \lambda y_t

Veja que se yt=yt+1=0y_t = y_{t+1} = 0, a equação está no “estado estacionário”. Resscreva de maneira que yty_t esteja em evidência:

yt=1λEt(yt+1)y_t = \frac{1}{\lambda}E_t(y_{t+1})

O truque aqui é ao invés de iterar para trás, nós iteramos para frente:

yt=1λEt(yt+1)yt+1=1λEt(yt+2)yt+2=1λEt(yt+3)... y_t = \frac{1}{\lambda}E_t(y_{t+1})\\ y_{t+1} = \frac{1}{\lambda}E_t(y_{t+2})\\ y_{t+2} = \frac{1}{\lambda}E_t(y_{t+3})\\ ...

Logo, substituição recursiva nos dá:

yt=1λjEt(yt+j)y_t = \frac{1}{\lambda^j}E_t(y_{t+j})

Se 1λ<1|\frac{1}{\lambda}| < 1, então quando jj \rightarrow \infty, yt=0y_t = 0. Veja que 1λ<1|\frac{1}{\lambda}| < 1 é equivalente a λ>1|\lambda| > 1.

O caso mais interessante é quando temos uma variável a mais no sistema, sts_t - que pode ser determinística ou estocástica. Nossa equação se torna:

Et(yt+1)=λyt+stE_t(y_{t+1}) = \lambda y_t + s_t

(Veja que podíamos ter algum coeficiente na frente de sts_t). Usando o mesmo truque que usamos acima, podemos reescrever isso:

yt=1λ(Et(yt+1)st)y_t = \frac{1}{\lambda}(E_t(y_{t+1}) - s_t)

E iterando para frente:

yt=1λjEt(yt+j)k=0j1λkEt(st+k)y_t = \frac{1}{\lambda^j}E_t(y_{t+j}) - \sum_{k=0}^j \frac{1}{\lambda^k} E_t(s_{t+k})

Com jj \rightarrow \infty, obtemos yt=k=0j1λkEt(st+k)y_t = -\sum_{k=0}^j \frac{1}{\lambda^k} E_t(s_{t+k}).

Então para resolver equações em diferenças com expectativas, nós iteramos para frente e portanto exigimos que o coeficiente associado a yty_t seja maior que 1.

Em um sistema de equações lineares, isso se reflete de maneira bem simples: antes, para termos estabilidade, todos os autovalores deveriam ser menores que 1. Agora, quando tivermos expectâncias, precisamos de 1 autovalor maior do que 1 para cada equação que depender da expectância da variável (isso não é sem alguns caveats técnicos). Isso é conhecido como condições de Blanchard Khan. Verificar as condições de Blanchard Khan é basicamente um exercício de contar quantos autovalores são maiores que 1 e quantos são menores que 1 e quantas equações dependem de expectativas e quantas não dependem. Veja que, seguindo a notação acima, teremos que escrever o sistema para termos:

Et(xt+1)=Axt+ϵtE_t(x_{t+1}) = Ax_t + \epsilon_t

E checarmos os autovalores da matriz A: precisamos de ter o mesmo número de autovalores maiores que 1 que equações que dependem de expectativas; e mesmo número de autovalores menores que um do que equações sem expectativas. Alguns autores usam a equação ao contrário e colocam xtx_t do lado esquerdo e A acompanhando o vetor de expectativas. Nesse caso, as condições de Blanchard Khan se invertem.

Um exemplo

Vamos olhar o modelo Novo Keynesiano mais simples possível: ele tem uma equação IS intertemporal - como os agentes escolhem consumo hoje e amanhã dado a taxa de juros reais; uma curva de Phillips com expectativas; uma regra de política monetária que escolhe juros como função da inflação, um inflation target. Aqui vão as três equações:

πt=βEt(πt+1)+κy~ty~t=1σ(itEt(πt+1))+E(y~t+1)it=ϕπt+εt \pi_t = \beta E_t(\pi_{t+1}) + \kappa \tilde{y}_t\\ \tilde{y}_t = -\frac{1}{\sigma}(i_t - E_t(\pi_{t+1})) + E(\tilde{y}_{t+1})\\ i_t = \phi \pi_t + \varepsilon_t

Temos duas equações que dependem de expectativas e uma que não depende. Logo, precisamos de dois autovalores maiores que 1 em módulo e um menor que 1 em módulo. Vamos escrever do formato que eu coloquei acima, com todas as expectativas de um lado. Eu vou escrever o sistema na verdade como:

BEt(xt+1)=Cxt+εtBE_t(x_{t+1}) = Cx_t + \varepsilon_t

E A=B1CA = B^{-1}C, logo vamos precisar inverter BB (se ela for inversível). Temos:

[β00111001][Et(πt+1)Et(y~t+1)it]=[1100σ0ϕ00][πty~tit1]+[001]εt\begin{bmatrix} \beta & 0 & 0\\ -1 & 1 & 1\\ 0 & 0 & 1\\ \end{bmatrix} \begin{bmatrix} E_t(\pi_{t+1})\\ E_t(\tilde{y}_{t+1})\\ i_t\\ \end{bmatrix} = \begin{bmatrix} 1 & -1 & 0\\ 0 & -\sigma & 0\\ \phi & 0 & 0\\ \end{bmatrix} \begin{bmatrix} \pi_t\\ \tilde{y}_t\\ i_{t-1}\\ \end{bmatrix} + \begin{bmatrix} 0 \\ 0\\ 1\\ \end{bmatrix} \varepsilon_t

Se você lembra dos cursos de macro (e aprendeu isso), o princípio de Tayor impõe que ϕ>1\phi > 1 para o Banco Central controlar a inflação. Isso se traduz no sistema acima como “para o sistema satisfazer as condições de Blanchard Khan, ϕ>1\phi > 1”. É possível verificar isso analiticamente, mas vamos usar o R para isso. Vamos montar as equações, colocar alguns valores para os parâmetros e checar o número de autovalores maiores que 1. Primeiro, vamos checar que com ϕ>1\phi > 1 temos o número de autovalores certos:

bet = 0.99
sig = 1
phi = 1.5

B = rbind(c(bet,0,0),c(-1,1,1),c(0,0,1))
C = rbind(c(1,-1,0),c(0,-sig,0),c(phi,0,0))

A = qr.solve(B)%*%C
eigen(A)
R
R
## eigen() decomposition
## $values
## [1] -2.165909  1.165909  0.000000
## 
## $vectors
##            [,1]       [,2] [,3]
## [1,] -0.2966180 -0.6109608    0
## [2,] -0.9326410  0.0942406    0
## [3,]  0.2054227 -0.7860316    1

Temos dois autovalores maiores que 1 em módulo (um deles é um -2) e um menor que 1 em módulo (0). Logo, o sistema tem uma única solução (“as condições de Blanchard Khan são atentidas” usando os jargões de macro). Um pequeno detalhe: eu usei o comando qr.solve que faz a mesma coisa que o solve, mas é mais estável. Vamos testar vários valores para ϕ\phi e recuperar quantos autovalores são maiores que 1 em módulo:

bet = 0.99
sig = 1

phi_vals = seq(0,1.5, length.out = 100)
eigs_maior_que_um <- rep(0,length(phi_vals))

for(i in 1:length(phi_vals)){

  phi = phi_vals[i]

  B = rbind(c(bet,0,0),c(-1,1,1),c(0,0,1))
  C = rbind(c(1,-1,0),c(0,-sig,0),c(phi,0,0))

  A = qr.solve(B)%*%C
  eigg <- eigen(A)
  eigs_maior_que_um[i] <- sum(abs(eigg$values) > 1)
}

library(ggplot2)

dados <- data.frame("phi_vals" = phi_vals,"eigs" = eigs_maior_que_um)

g <- ggplot(dados, aes(phi_vals,eigs))
g + geom_line() + theme_bw() 
R
R

Veja que o número de autovalores maiores que 1 salta um pouquinho antes de ϕ=1\phi=1, em 0.98480.9848. Isso se deve a erros numéricos e basicamente valida o principio de Taylor: para estabilizar a economia, o BC precisa aumentar a taxa de juros mais que a inflação, efetivamente aumentando a taxa de juros reais.

Uma pergunta justa é o que acontece quando o BC decide suavizar as mudanças na taxa de juros, tendo uma inércia de ρ\rho. O novo sistema se torna:

[β00111001][Et(πt+1)Et(y~t+1)it]=[1100σ0(1ρ)ϕ0ρ][πty~tit1]+[001]εt\begin{bmatrix} \beta & 0 & 0\\ -1 & 1 & 1\\ 0 & 0 & 1\\ \end{bmatrix} \begin{bmatrix} E_t(\pi_{t+1})\\ E_t(\tilde{y}_{t+1})\\ i_t\\ \end{bmatrix} = \begin{bmatrix} 1 & -1 & 0\\ 0 & -\sigma & 0\\ (1-\rho)\phi & 0 & \rho\\ \end{bmatrix} \begin{bmatrix} \pi_t\\ \tilde{y}_t\\ i_{t-1}\\ \end{bmatrix} + \begin{bmatrix} 0 \\ 0\\ 1\\ \end{bmatrix} \varepsilon_t

Vamos repetir todo o experimento:

bet = 0.99
sig = 1
rho = 0.95

phi_vals = seq(0,1.5, length.out = 100)
eigs_maior_que_um <- rep(0,length(phi_vals))

for(i in 1:length(phi_vals)){

  phi = phi_vals[i]

  B = rbind(c(bet,0,0),c(-1,1,1),c(0,0,1))
  C = rbind(c(1,-1,0),c(0,-sig,0),c((1-rho)*phi,0,rho))

  A = qr.solve(B)%*%C
  eigg <- eigen(A)
  eigs_maior_que_um[i] <- sum(abs(eigg$values) > 1)
}

dados_com_suav <- data.frame("phi_vals" = phi_vals,"eigs" = eigs_maior_que_um)

g <- ggplot(dados_com_suav, aes(phi_vals,eigs))
g + geom_line() + theme_bw() 
R
R

Não há nenhuma grande mudança, aparentemente.

Veja que eu fui malandro e escrevi um modelo no qual temos uma matriz BB:

BEt(xt+1)=Cxt+εtB E_t(x_{t+1}) = Cx_t + \varepsilon_t

E portanto A=B1CA = B^{-1}C. Como lidar com sistemas com BB singular é uma pergunta válida e não trivial de ser respondida - precisamos de usar decomposições espertas de Álgebra Linear. Mas o princípio básico de contar autovalores permance inalterado. Veja que esse método tem críticos e alternativas. Todos esses assuntos são bons temas para futuros posts do blog.

Bibliografia

Esse post se deve basicamente a aulas que eu tive e ao excelente livro do Jianjun Miao, Economic Dynamics in Discrete Time - que eu nunca canso de recomendar.