Prévia do material em texto
Teoria Macroeconômica II - Semestre II de 2023 Lista 1 de exerćıcios Professor: Jefferson Bertolai Monitor: Samuel Cruz Exerćıcio 1 (Mercados completos). Considere uma economia com N indiv́ıduos que vivem infini- tamente, indexados por i ∈ I, com I = {1, ..., N}. Em cada peŕıodo há uma unidade de bem de consumo perećıvel e cada indiv́ıduo i possui uma dotação {yit}∞t=0 desse bem, que é governada por um processo estocástico. Nessa economia, o risco é representado por um choque agregado corrente denotado por st ∈ S. Denote por st = (s0, s1, ..., st) a história de eventos dessa economia e suponha que cada história tenha probabilidade πt(s t) > 0 de ocorrer. Defina St ≡ S × S × · · · × S︸ ︷︷ ︸ t+1vezes , em que × denota o produto cartesiano, de modo que st ∈ St. Todos os N agentes estão sujeitos a um mesmo fator de desconto intertemporal β ∈ (0, 1), de forma que a utilidade esperada da vida do agente i ∈ I é dada por: ui ( {(cit(st)i∈I} ) = ∞∑ t=0 βt ∑ st∈St πt(s t)U i ( cit(s t), st ) , em que U i(·, ·) é a função de utilidade instantânea do agente i. Suponha que os mercados são completos e que o conjunto de ativos dessa economia consiste em t́ıtulos contingentes de um peŕıodo, isto é, um contrato financeiro comprado no peŕıodo t que paga uma unidade de bem de consumo no peŕıodo t + 1 somente se um estado st+1 particular se realizar. Seja qt(s t, st+1) o preço desse t́ıtulo no nó st de um contrato que paga uma unidade de consumo somente se st+1 ocorrer (Arrow securities). Denote por ait+1(s t, st+1) a quantidade de t́ıtulos comprada ou vendida pelo agente i no nó st e que paga uma unidade de bem de consumo em st+1. A restrição orçamentária do agente i no peŕıodo t e na história st é dada por: cit(s t) + ∑ st+1∈S qt(s t, st+1)a i t+1(s t, st+1) ≤ yit(s t) + ait(s t) O problema do consumidor é maximizar sua utilidade intertemporal sujeita à sua restrição orçamentária. Sob mercados sequenciais, esse problema possui uma formulação recursiva. Para escrever o problema na forma recursiva, suponha que {st} é um processo markoviano com a seguinte matriz de transição invariante no tempo: π(s′|s) = [ 2/3 1/3 1/3 2/3 ] , 1 em que s representa o evento no peŕıodo corrente e s′ o evento no peŕıodo seguinte. Note que esse processo possui dois estados: ruim, s = 0; bom, s = 1. Sob a hipótese de que os preços das Arrow securities assumem a forma q(st, st+1) = q(st+1|st), o problema do consumidor pode ser escrito na forma recursiva como v(a, s) = max {a′(s′)}s′∈S { U ( y(s) + a− ∑ s′∈S a′(s′)q(s′|s)) ) + β ∑ s′∈S π(s′|s)v ( (a′(s′), s′ )} . (1) Assuma que U(·) é uma função de utilidade CRRA com parâmetro σ = 2 e que β = 0.99. Assuma também que y = 10 se s = 0 e y = 20 se s = 1. Note que a solução da equação funcional depende de q(·|·). a) Suponha que q(s′|s) = 1 para todo s′ e s. Usando o método da discretização e o método da iteração da função valor, escreva um programa em Python que calcule uma aproximação para a solução da equação funcional (1) e a função poĺıtica associada. b) Refaça o item a) sem supor que q(s′|s) = 1 para todo s′ e s. Use o seguinte resultado anaĺıtico: q(s′|s) = βπ(s′|s) [ Y ′(s′) Y (s) ]−σ , (2) em que Y (s) é o produto agregado no estado s. Assuma que Y ′(s′) = Y (s) para todo s′ e s, de modo que q(s′|s) = βπ(s′|s). c) Considere dois indiv́ıduos nessa economia, isto é, i ∈ {1, 2}, em que i é o indiv́ıduo. Agora, o problema recursivo se torna: vi(a, s) = max {a′(s′)}s′∈S { U ( yi(s) + a− ∑ s′∈S a′(s′)q(s′|s)) ) + β ∑ s′∈S π(s′|s)vi ( (a′(s′), s′ )} . (3) Assuma que y1(0) = 10, y1(1) = 20 e que y2(0) = 20, y2(1) = 10, de modo que o pro- duto agregado seja Y (s) = 30 para todo s. Resolva o problema (3) para cada indiv́ıduo. Em seguida, fixe um estado (a, s) particular e use as funções poĺıticas dos indiv́ıduos para encontrar a poupança de cada um deles. Verifique se a poupança agregada é igual a zero. Exerćıcio 2 (Método da bisseção). Seja f : [xL, xH ] 7→ R, com xL < xH , uma função cont́ınua e monótona. Suponha que f(xL) e f(xH) tenham sinais opostos, isto é, f(xL)f(xH) < 0. Pelo teorema do valor intermediário, tem-se que a função f possui uma raiz no intervalo (xL, xH). Nesse caso, o método da bisseção pode ser utilizado para encontrar numericamente a raiz de f , ou seja, encontrar numericamente x∗ ∈ (xL, xH) tal que f(x∗) = 0. Esse método encontra a raiz de f por 2 meio da redução sucessiva do intervalo (xL, xH). Dado o intervalo (xL, xH), computa-se f(xm), em que xm = 0.5(xL + xH) é o ponto médio do intervalo. Se f(xm) = 0, então xm é uma raiz de f . Se f(xH) e f(xm) têm sinais opostos, então a raiz deve estar no intervalo (xm, xH), e o xL deve ser trocado pelo xm. Caso contrário, a raiz deve estar no intervalo (xL, xm), e nesse caso troca-se o valor de xH por xm. Em ambos os casos, o novo intervalo (xL, xH) possui metade do tamanho do intervalo original. Esse procedimento de bisseção é repetido até que o intervalo possua um tamanho pequeno ε, de modo que |xL − xH | ≤ ε. Quando esse intervalo pequeno suficiente é encontrado, a raiz x∗ é dada pelo ponto médio desse intervalo. Considerando o algoritmo descrito acima, resolva os seguintes itens: a) Escreva uma função em Python que receba como insumo (input) (i) uma função cont́ınua f com domı́nio em um intervalo [x1, x2], (ii) os valores x1 e x2, e (iii) um ńıvel de tolerância ε. Essa função deve usar o método da bisseção e retornar a raiz de f(x). b) Use a função do item a) para encontrar a raiz da função f(x) = x3 − 10x2 + 5, em que o domı́nio de f é [0, 1]. c) Refaça a função do item a) sem usar o laço while. Exerćıcio 3 (Distribuição estacionária). Considere um processo markoviano com espaço de estados {0, 1} e com a seguinte matriz de transição: π = [ P(st+1 = 0|st = 0) P(st+1 = 1|st = 0) P(st+1 = 0|st = 1) P(st+1 = 1|st = 1) ] . (4) Assuma que P(st+1 = i|st = i) = 2/3 para todo i ∈ {0, 1} e que P(st+1 = i|st = j) = 1/3 para todo i, j ∈ {0, 1} e i ̸= j. Considere uma distribuição inicial Π0 = [5/6 1/6]′ para os estados e responda os seguintes itens. (a) Escreva uma função em Python que calcule a distribuição estacionária dos estados iterando Πt+1 = π′Πt. (b) Escreva uma função em Python que calcule a distribuição estacionária por meio do autovetor (à esquerda) de π normalizado e associado ao autovalor igual a 1. 3