Implementação de Métodos Recursivos 2012-10-10
Objetivos Macroeconomia e heterogeneidade Otimização e pontos fixos Aprender no contexto Métodos clássicos
Operações Básicas Operação Símbolo Exemplos x +y + 2+3 x y 5 7 x.y 7 8 x y / ou \ 9/3 ou 3\9 x y ˆ 2ˆ3
Operadores Lógicos Descrição Símbolo Exemplo Valor lógico maior do que > 2 > 0,5 1 maior ou igual a >= 2 >= 2,5 0 igual a == 3 == (4 1) 1 diferente de = 2 3 = 6 0 e & (3 > 1)&(2 > 2) 0 disjunção (3 > 1) (1 < 2) 1 disjunção exclusiva xor xor((3 > 1),(1 < 2)) 0
Definição e Manipulação de Objetos var = 5 v = [1 4 2] % cria uma variável com o nome var % e valor inicial de 5 % cria o vetor de tr^es elementos a seguir v = ( 1 4 2 ) x = [var v] % concatena o objetos var e v, criando % vetor de 4 elementos a seguir x = ( 5 1 4 2 ) var = var + 2; % soma 2 à variável var
Definição e Manipulação de Objetos y = v ; % transp~oe o vetor v, ou seja, y = 1 4 2 c = 1:2:7; % cria o vetor a seguir c = ( 1 3 5 7 ) Z = zeros(2,2) % cria matriz 2x2 de zeros ( ) 0 0 Z = 0 0
Definição e Manipulação de Objetos O = ones(3) % cria matriz 3x3 a seguir O = 1 1 1 1 1 1 1 1 1 d = [-5,3;2 7]; % cria a matriz a seguir ( ) 5 3 d = 2 7 d(:,1) % retorna primeira coluna de d d(2,:) % retorna segunda linha de d d(1,2) % retorna o elemento da linha 1 da coluna 2
Definição e Manipulação de Objetos dd = (-1).*d % multiplica matriz d (elemento a % elemento) por (-1) ( ) 5 3 dd = 2 7 dd.*d dd*d % multiplica as matrizes dd e d, elemento a % elemento % multiplicaç~ao matricial padr~ao z = dd.^d % para cada (i,j), calcula a matriz com % elemento geral z(i,j) dado por % dd(i,j)^d(i,j)
Definição e Manipulação de Objetos eye(n); plot(x,y) % cria matriz identidade de dimens~ao n por n % constrói e exibe o gráfico da funç~ao f tal % que para todo i vale y(i) = f(x(i)) kron(d,dd); size(dd); % produto Kronecker entre d e dd. % Lembrando que n~ao há restriç~oes sobre as % dimens~oes das matrizes % retorna as dimens~oes da matriz dd
Funções e Constantes pré-definidas Comando Função / Constante Exemplo sqrt raiz quadrada sqrt(2) pi π = 3,1416... - cos cosseno cos(0) tan tangente tan(pi/4) exp exponencial exp(1) log logarítmica log(exp(3)) inf - sum somatória sum([5,9,1]) prod produtório prod([1,3,7]) max máximo max([1,4,2])
M-Files Script M-files: define uma rotina a ser executada pela Matlab % salvar script como routine.m X = [1,2;3,4]; Y = [2,1;4,3]; Z = X*Y Execução: invocar comando routine na janela de comandos
M-Files Function M-files: função definida pelo usuário % salvar m-file como func.m function [out1 out2] = func(arg1,arg2) out1 = arg1+arg2; out2 = arg1*arg2 Execução: invocar comando func(2,3) na janela de comandos
Loops for: determina que uma rotina seja repetida um número determinado de vezes. A rotina abaixo resulta em f = 1 2 3 4 = 24 f = 1; for n=2:4 f = f*n; end f
Loops while: determina que uma rotina seja repetida enquanto uma determinada condição for verdadeira n = 1; oldsum = -1; newsum = 0; while newsum > oldsum oldsum = newsum; newsum = newsum + n^(-4); n = n + 1; end newsum
Branching (if) function y = absval(x) if x >= 0 y = x; else y = -x; end function y = signum(x) if x > 0 y = 1; elseif x==0 y = 0; else y = -1; end
Comandos Especiais Comando Descrição Ctrl + c interrompe procedimento ; impede exibição do output do comando % insere comentário Ctrl + r transforma comando em comentário Crtl + t transforma comentário em comando whos exibe objetos atualmente definidos F5 salva e executa script F9 executa seleção eye(n) cria matriz identidade com dimensões nxn clear x deleta objeto x clear all deleta todos os objetos
Método de Discretização Algoritmo Considere A R n, B R e f : A B uma função Seja X uma aproximação finita de A, ou seja, X A, tal que X < Seja Y = f(x), ou seja, Y = {y B : y = f(x) para algum x X} Observe que Y < argmax{f(x);x X} X argmax{f(x);x X} argmax{f(x);x A}
Método de Discretização Exemplo 1 Considere a função u : [0,100] R definida por u(x) = 10 x x. X = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100} Y = {0, 21.6, 24.7, 24.8, 23.2, 20.7, 17.4, 13.7, 9.4, 4.9, 0} v = max{u(x);x X} = 24.8 g = argmax{u(x);x X} = 30
Método de Discretização Exemplo 2 Considere a função u : [0,100] R definida por u θ (x) = θ x x. grid: X = {0,10,20,30,40,50,60,70,80,90,100} Há 2 tipos de indivíduos, θ L = 10 e θ H = 14 Y L = {0, 21.6, 24.7, 24.8, 23.2, 20.7, 17.4, 13.7, 9.4, 4.9, 0} Y H = {0, 34.2, 42.6, 46.7, 48.5, 49.0, 48.4, 47.1, 45.2, 42.8, 40} Solução: função valor: [v(10),v(14)] = [24.8,49.0] função poĺıtica: [g(10),g(14)] = [30,50]
Método de Discretização Comentários Vantagem: garantia de máximo global Desvantagem: curse of dimensionality busca global pode ser muito custosa neste caso é preferível usar um método local (otimização contínua).
Método de Discretização e Dinâmica Exemplo 3 Considere que há N indivíduos, os quais vivem 2 períodos. não há sobreposição de gerações. utilidade instantânea do consumo: u(c) = 10 c utilidade total: U(c 1,c 2 ) = u(c 1 )+β[u(c 2 )+w ] indivíduos nascem com riqueza w 1 [0,100]. restrições c 1 +w 2 w 1 e c 2 +w 1 w 2. Problema no segundo período: Problema no primeiro período: v 2 (w 2 ) = max [0,w 2] {u(w 2 w 1)+w 1} v 1 (w) = max [0,w 1] {u(w 1 w 2 )+βv 2 (w 2 )}
Método de Discretização e Dinâmica Exemplo 3 Problema no segundo período: v 2 (w 2 ) = max [0,w 2] {u(w 2 w 1)+w 1} grid: X = {i Z : 0 i 100} para cada x j X calcule v 2 (x j ) e g 2 (x j ) usando discretização. g 2 : escolha de herança para cada nível de riqueza na velhice.
Método de Discretização e Dinâmica Exemplo 3 Problema no primeiro período: v 1 (w 1 ) = max [0,w 1] {u(w 1 w 2 )+βv 2 (w 2 )} para cada x j X calcule v 1 (x j ) e g 1 (x j ) usando discretização e v 2. g 1 : escolha de poupança para a velhice.
Método de Discretização e Dinâmica Exemplo 3 Comportamento individual: indivíduo que nasce com riqueza w 1, poupa w 2 = g 1 (w 1 ). quando velho escolhe deixar herança w 1 = g 2 (w 2 ). seu filho nascerá com w 1 e também escolherá de acordo com g.
Método de Discretização e Dinâmica Exemplo 3 Comportamento agregado: todos os indivíduos com riqueza inicial w 1 terão este comportamento. se há p(i) indivíduos com idade t e riqueza i, então haverá 100 p (j) = p(i)χ [gt(i)=j] (1) i=0 indivíduos com riqueza j e idade t +1 (módulo 2).
Método de Discretização e Dinâmica Exemplo 3 Matricialmente: p t+1 = p t χ [gt(0)=0] χ [gt(0)=1]... χ [gt(0)=100] χ [gt(1)=0] χ [gt(1)=1]... χ [gt(1)=100]............ χ [gt(100)=0] χ [gt(100)=1]... χ [gt(100)=100] A matriz M descreve a transição da economia. Qual será a dinâmica = p tm t se inicialmente a riqueza é uniformente distribuída entre os agentes?
Método de Discretização e Dinâmica Exemplo 4 Considere o modelo do exemplo 3 com as seguintes alterações: há um contínuo de agentes, cuja massa foi normalizada para 1. há 2 tipos θ i {θ L,θ H } = {10,14}. utilidade instantânea do consumo: u i (c) = θ i c Transição tipo independente entre agentes: Pr(θ = θ j θ = θ i ) = π ij Matricialmente: ( Π = ) π LL 1 π LL 1 π HH π HH utilidade total: U i (c 1,c 2 ) = u i (c 1 )+β j π ij[u j (c 2 )+w ]
Método de Discretização e Dinâmica Exemplo 4 Problema no segundo período: v 2 (w 2,θ j ) = max [0,w 2] {u j(w 2 w 1 )+w 1 } grid: X = {i Z : 0 i 100} para cada x i X e cada θ j {θ L,θ H } calcule v 2 (x i,θ j ) e g 2 (x i,θ j ) usando discretização. g 2 : escolha de herança para cada nível de riqueza na velhice e tipo de velho.
Método de Discretização e Dinâmica Exemplo 4 Problema no primeiro período: v 1 (w 1,θ i ) = max [0,w 1] {u i(w 1 w 2 )+β j π ij v 2 (w 2,θ j )} para cada x k X e cada θ i {θ L,θ H } calcule v 1 (x k,θ i ) e g 1 (x k,θ i ) usando discretização e v 2. g 1 : escolha de poupança para cada tipo de jovem.
Método de Discretização e Dinâmica Exemplo 4 Comportamento individual: indivíduo que nasce com riqueza k e com tipo θ i, poupa w 2 = g 1 (k,θ i ). com probabilidade π ij ele se torna tipo j quando velho. quando velho escolhe deixar herança k = g 2 (w 2,θ j ). seu filho nascerá com riqueza k. com probabilidade π ji seu filho será do tipo i.
Método de Discretização e Dinâmica Exemplo 4 Comportamento agregado: todos os indivíduos com riqueza inicial k terão este comportamento. uma proporção π ij destes agentes se tornarão tipo j quando velho (LGN). se há p(k,i) indivíduos com riqueza k, tipo θ i e idade t, então haverá 100 p (k,j) = {p(k,l).π Lj.χ [gk (k,l)=k ] +p(k,h).π Hj.χ [gk (k,h)=k ]} k=0 indivíduos com riqueza k, tipo j e idade t +1 (módulo 2)
Método de Discretização e Dinâmica Exemplo 4 Matricialmente: [p L,p H ] = [p L,p H ] em que p i = p(:,i) t e M ij = ( ) MLL M LH = [p M HL M L,p H ]M HH π ij χ [gt(0,i)=0] π ij χ [gt(0,i)=1]... π ij χ [gt(0,i)=100] π ij χ [gt(1,i)=0] π ij χ [gt(1,i)=1]... π ij χ [gt(1,i)=100]............ π ij χ [gt(100,i)=0] π ij χ [gt(100,i)=1]... π ij χ [gt(100,i)=100]
Lucas s signal extraction model O modelo tempo discreto gerações sobrepostas: dois períodos de vida um bem de consumo por período não há tecnologia de estocagem preferências: E[u(c)+v(c )] u < 0, v < 0, u (0) = v (0) = g > 0 em que g(x) = xv (x) dotação de horas: w > 0 somente quando jovem função de produção: Um-para-Um
Lucas s signal extraction model O modelo tamanho da geração t: N t ln(n t ) = β + i ln(n i ) com probabilidade π i, i {1,2,,I} taxa crescimento da moeda: x t = Mt M t 1 ln(x t ) = λ+ j ln(x j ) com probabilidade θ j, j {1,2,,J}
Lucas s signal extraction model O modelo informação incompleta: somente z t = xt N t é observável em t ln(z t ) = λ β + k ln(z k ) com probabilidade φ k J θ j π j k j=1 em que k {1 I,2 I,,J 1} e π i = 0 para i / {1,2,,I}
Lucas s signal extraction model O modelo Problema do indivíduo restrições: c t m t p t+1 c t+1 w y t p t y t m t escolha de y t para maximizar W(y t ) = u(w y t )+E [ ( ) ] yt p t v ;p t,q t 1 p t+1 em que q t (M 0,x 1,x 2,,x t,n 1,N 2,,N t )
Lucas s signal extraction model Equiĺıbrio Definition Seja Q t o conjunto de possíveis realizações para os processos de crescimento da moeda e da população até (e incluindo) a data t com elememento típico q t. Um equiĺıbrio é uma sequência de funções {p t,y t } : Q t R tal que para todo t 1 e todo q t Q t, y t = y t (q t ) maximiza W(y t ) quando p t = p t (q t ) e quando a esperança é tomada com respeito a distribução de p t+1 = p t+1 (q t+1 ) dado que (q t 1,p t ) N t y t (q t ) = Mt p t(q t)
Lucas s signal extraction model Equiĺıbrio Theorem Existe um e apenas um equiĺıbrio tal que y t (q t ) = y(z t ) > 0 e z t /y(z t ) é estritamente crescente.
Lucas s signal extraction model Equiĺıbrio Remark Como z t assume no máximo I +J 1 valores, então y( ) é um vetor do R I+J 1. da CPO do problema do indivíduo, W (y t ) = 0, em que f(x) = xu (w x) f(y t ) = E[g(y t p t /p t+1 )] usando condições de equiĺıbrio, propriedades dos choques e φ ik πiθ i+k φ k ] f(y k ) = i φ ik [ h φ h g(y h /z h N i )