schema: EconSchema
aspectRatio: 1.3
params:
- name: B
value: 1.5
min: 0.6
max: 1.5
round: 0.1
- name: a
value: 1
min: 0.8
max: 1.3
round: 0.1
- name: Ypot
value: 10
min: 8
max: 12
round: 0.1
- name: Yt
value: 10
min: 8
max: 13
round: 0.1
- name: meta
value: 5
min: 4
max: 6
precision: 0.1
round: 0.01
- name: mostrar
value: false
calcs:
MR: ((params.meta)-(((params.Yt)-(params.Ypot))/((params.a)(params.B))))
MR2: ((params.meta)-(((0)-(params.Ypot))/((params.a)(params.B))))
Yt3: ((params.Ypot)-(2)((params.a)/((params.a)+((1)/((params.a)(params.B)))))((params.Yt)-(params.Ypot)))
PCMR: ((params.meta)-(((calcs.Yt3)-(params.Ypot))/((params.a)(params.B))))
Loss: (((params.Yt)-(params.Ypot))^2 +((params.B)((params.a)((params.Yt)-(params.Ypot)))^2))
Loss2: (((params.Yt)-(params.Ypot))^2 +((params.B)((params.a)((params.Yt)-(params.Ypot))+(params.a)((params.Yt)-(params.Ypot)))^2))
Loss3: (((calcs.Yt3)-(params.Ypot))^2 +((params.B)((calcs.PCMR)-(params.meta))^2))
r: ((calcs.Loss)^0.5)
r2: ((calcs.Loss2)^0.5)
r3: ((calcs.Loss3)^0.5)
inf: ((params.meta)+((params.a)((params.Yt)-(params.Ypot))))
inf2: ((params.meta)+(2(params.a)((params.Yt)-(params.Ypot))))
PCinv: ((((14)-(params.meta))/(params.a))+(params.Ypot))
PCinv2: ((((14)-((params.a)((params.Yt)-(params.Ypot)))-(params.meta))/(params.a))+(params.Ypot))
PCOTIinv: ((((14)-(((params.Yt)-(params.Ypot))/((params.B)(params.a)))-((params.a)((params.Yt)-(params.Ypot)))-(params.meta))/(params.a))+(params.Ypot))
MRinv: ((((9)-(params.meta))(params.B)(params.a))+(params.Ypot))
MRinv2: ((((1)-(params.meta))(params.B)(params.a))+(params.Ypot))
layout:
OneGraphPlusSidebar:
graph:
xAxis:
min: 0
max: 18
ticks: 3
yAxis:
min: 0
max: 15
ticks: 3
objects:
#Curva de Indiferença do Banco Central Cima
- Curve:
fn: "(((((calcs.Loss)/(params.B))-((((x)-(params.Ypot))^2)/(params.B)))^(1/2))+(params.meta))"
ind: x
color: red
show: false
min: -100
max: 100
lineStyle: solid
strokeWidth: 1
samplePoints: 300
#Curva de Indiferença do Banco Central Baixo
- Curve:
fn: "(-((((calcs.Loss)/(params.B))-(((x)-(params.Ypot))^2/(params.B)))^0.5)+(params.meta))"
ind: x
show: false
color: red
min: -100
max: 100
lineStyle: solid
strokeWidth: 1
samplePoints: 300
- Ellipse:
center: [params.Ypot,params.meta]
show: (params.Yt != params.Ypot) & (params.mostrar == true)
rx: calcs.r3
ry: (calcs.r3)/((params.B))^0.5
fill: none
stroke: red
strokeWidth: 2
- Ellipse:
center: [params.Ypot,params.meta]
show: (params.Yt != params.Ypot) & (params.mostrar == true)
rx: calcs.r2
ry: (calcs.r2)/((params.B))^0.5
fill: none
stroke: red
strokeWidth: 2
lineStyle: solid
- Ellipse:
center: [params.Ypot,params.meta]
show: (params.Yt != params.Ypot) & (params.mostrar == true)
rx: calcs.r
ry: (calcs.r)/((params.B))^0.5
fill: none
stroke: red
strokeWidth: 2
lineStyle: solid
#Curva de Phillips Inicial
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot))))"
ind: x
color: white
show: calcs.PCinv > 16
strokeWidth: 1
samplePoints: 300
min: 6
max: 20
label: {text: "`PC_{1}`", x: 16 , bgcolor: "'#44ac44'"}
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot))))"
ind: x
color: white
show: calcs.PCinv < 16
strokeWidth: 1
samplePoints: 300
min: 6
max: 20
label: {text: "`PC_{1}`", x: calcs.PCinv , bgcolor: "'#44ac44'"}
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot))))"
ind: x
color: "'#44ac44'"
strokeWidth: 4
samplePoints: 300
min: 6
max: 17
#Curva de Phillips 2
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot))))"
ind: x
color: white
show: calcs.PCinv2 > 15 & params.Yt != params.Ypot
strokeWidth: 1
samplePoints: 300
min: 5
max: 20
label: {text: "`PC_{2}`", x: 15 , bgcolor: "'#44ac44'"}
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot))))"
ind: x
color: white
show: calcs.PCinv2 < 15 & params.Yt != params.Ypot
strokeWidth: 1
samplePoints: 300
min: 5
max: 20
label: {text: "`PC_{2}`", x: calcs.PCinv2 , bgcolor: "'#44ac44'"}
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot))))"
ind: x
color: "'#44ac44'"
strokeWidth: 4
samplePoints: 300
min: 4
max: 16
#Curva de Phillips 3
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot))))"
ind: x
color: white
show: calcs.PCOTIinv > 16 & params.Yt != params.Ypot
strokeWidth: 1
min: 3
max: 20
samplePoints: 300
label: {text: "`PC_{3}`", x: 16 , bgcolor: "'#44ac44'", show: params.Yt != params.Ypot}
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot))))"
ind: x
show: calcs.PCOTIinv < 16 & params.Yt != params.Ypot
min: 3
max: 20
color: white
strokeWidth: 1
samplePoints: 300
label: {text: "`PC_{3}`", x: calcs.PCOTIinv , bgcolor: "'#44ac44'", show: params.Yt != params.Ypot}
- Curve:
fn: "((params.meta)+((params.a)((x)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot)))+((params.a)((params.Yt)-(params.Ypot))))"
ind: x
min: 3
max: 20
color: "'#44ac44'"
strokeWidth: 4
samplePoints: 300
#Função de Reação
- Curve:
fn: "((params.meta)-(((x)-(params.Ypot))/((params.a)(params.B))))"
ind: x
color: white
show: calcs.MRinv > 17
strokeWidth: 1
samplePoints: 300
min: -5
max: 20
label: {text: "`MR`", x: 17, bgcolor: "'#fc8c22'"}
- Curve:
fn: "((params.meta)-(((x)-(params.Ypot))/((params.a)(params.B))))"
ind: x
color: white
show: calcs.MRinv < 17
strokeWidth: 4
samplePoints: 300
min: -5
max: 20
label: {text: "`MR`", x: calcs.MRinv , bgcolor: "'#fc8c22'"}
- Curve:
fn: "((params.meta)-(((x)-(params.Ypot))/((params.a)(params.B))))"
ind: x
color: "'#fc8c22'"
strokeWidth: 4
samplePoints: 300
min: -5
max: 20
#Canva
- Segment:
a: [params.Yt, 0]
b: [params.Yt, calcs.inf]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Segment:
a: [0, calcs.inf]
b: [params.Yt, calcs.inf]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Segment:
a: [params.Yt, 0]
b: [params.Yt, calcs.inf2]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Segment:
a: [0, calcs.inf2]
b: [params.Yt, calcs.inf2]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Segment:
a: [calcs.Yt3, 0]
b: [calcs.Yt3, calcs.PCMR]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Segment:
a: [calcs.Yt3, calcs.PCMR]
b: [0, calcs.PCMR]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Segment:
a: [params.Ypot, 0]
b: [params.Ypot, params.meta]
color: blue
lineStyle: solid
strokeWidth: 4
- Segment:
a: [0, params.meta]
b: [params.Ypot, params.meta]
color: blue
lineStyle: solid
strokeWidth: 4
- Segment:
a: [calcs.Yt3, calcs.PCMR]
b: [0, calcs.PCMR]
show: (params.Yt != params.Ypot)
color: green
lineStyle: dotted
- Point:
coordinates: [params.Yt, calcs.inf]
color: red
show: (params.Yt != params.Ypot)
- Point:
coordinates: [params.Yt, calcs.inf2]
color: red
show: (params.Yt != params.Ypot)
- Point:
coordinates: [calcs.Yt3, calcs.PCMR]
color: green
show: (params.Yt != params.Ypot)
- Point:
coordinates: [params.Ypot, params.meta]
color: blue
- Segment:
a: [0, params.meta]
b: [0, params.meta]
color: white
bgcolor: "'#2074b4'"
label:
text: "`\\\\pi_{meta}: ${params.meta.toFixed(1)} \\\\%`"
position: r
- Segment:
a: [params.Ypot, 0]
b: [params.Ypot, 0]
color: white
bgcolor: "'#2074b4'"
label:
text: "`Y_{pot}: \\\\$ ${params.Ypot.toFixed(1)} `"
position: t
- Segment:
a: [params.Yt, 0]
b: [params.Yt, 0]
show: (params.Yt != params.Ypot)
color: white
bgcolor: "'#44ac44'"
label:
text: "`Y_{t}: \\\\$ ${params.Yt.toFixed(1)} `"
position: t
- Segment:
a: [calcs.Yt3, 0]
b: [calcs.Yt3, 0]
color: white
show: (params.Yt != params.Ypot)
bgcolor: "'#d42c2e'"
label:
text: "`Y_{t}: \\\\$ ${calcs.Yt3.toFixed(1)} `"
position: t
- Segment:
a: [0, 15]
b: [0, 15]
color: black
bgcolor: white
label:
text: "`\\\\pi `"
position: r
fontSize: 14
- Segment:
a: [18, 0]
b: [18, 0]
color: black
bgcolor: white
label:
text: "`Y `"
position: t
fontSize: 14
- Segment:
a: [0, calcs.inf]
b: [0, calcs.inf]
color: white
show: (params.Yt != params.Ypot)
bgcolor: "'#44ac44'"
label:
text: "`\\\\pi_{1}: ${calcs.inf.toFixed(1)} \\\\% `"
position: r
- Segment:
a: [0, calcs.inf2]
b: [0, calcs.inf2]
color: white
show: (params.Yt != params.Ypot)
bgcolor: "'#44ac44'"
label:
text: "`\\\\pi_{2}: ${calcs.inf2.toFixed(1)} \\\\% `"
position: r
- Segment:
a: [0, calcs.PCMR]
b: [0, calcs.PCMR]
color: white
show: (params.Yt != params.Ypot)
bgcolor: "'#44ac44'"
label:
text: "`\\\\pi_{3}: ${calcs.PCMR.toFixed(1)} \\\\% `"
position: r
- Segment:
a: [params.Ypot+0.4,params.meta]
b: [params.Yt+0.25, calcs.inf-0.25]
color: red
show: (params.Yt != params.Ypot)
bgcolor: none
strokeWidth: 3
endArrow: true
- Segment:
a: [params.Yt+0.4,calcs.inf]
b: [params.Yt+0.4, calcs.inf2]
color: red
show: (params.Yt != params.Ypot)
bgcolor: none
strokeWidth: 3
endArrow: true
- Segment:
a: [params.Yt,calcs.inf2]
b: [calcs.Yt3+0.4, calcs.PCMR]
color: red
show: (params.Yt != params.Ypot)
bgcolor: none
strokeWidth: 3
endArrow: true
sidebar:
controls:
- title: Modelo MR-PC — Minimização da Função Perda do Banco Central com 2 Períodos de Defasagem
checkboxes:
- param: mostrar
label: "\\text{Mostrar Curvas de Nível}"
sliders:
- param: B
label: B
digits: 4
- param: a
label: a
digits: 4
- param: Ypot
label: Y_{pot}
digits: 4
- param: Yt
label: Y_{t}
digits: 4
- param: meta
label: \pi_{meta}
digits: 4
divs:
- html:
- html: 'O Banco Central precisa minimizar uma função perda que relaciona desvios do produto ${(Y_{t}-Y_{pot})}$ e desvios da taxa de inflação em relação à meta ${(\pi_{t} - \pi_{meta})}$: $${L=(Y_{t}-Y_{pot})^2 + B(\pi_{t}-\pi_{meta})^2}$$ $${s.a.}$$ $${\pi_{t} = \pi_{t-1} + a(Y_{t}-Y_{pot})}$$ Para resolver o problema, é necessário substituir a Curva de Phillips (PC) na Função Perda (L), e derivar em relação a ${Y_{t}}$: $${L=(Y_{t}-Y_{pot})^2 + B((\pi_{t-1} + a(Y_{t}-Y_{pot}))-\pi_{meta})^2}$$ $${\Longleftrightarrow}$$ $${\frac{\partial L}{\partial Y_{t}}=2(Y_{t}-Y_{pot})+2B(\pi_{t-1} + a(Y_{t}-Y_{pot})-\pi_{meta})}$$ Sabemos que a Curva de Phillips (PC) é: $${\pi_{t} = \pi_{t-1} + a(Y_{t}-Y_{pot})}$$ Logo, podemos substituir na função anterior, obtendo $${2(Y_{t}-Y_{pot})+2B(\pi_{t}-\pi_{meta})a=0}$$ Agora, resolvendo para ${\pi_{t}}$ $${2B(\pi_{t}-\pi_{meta})a=-2(Y_{t}-Y_{pot})}$$ $${\Longleftrightarrow}$$ $${MR:\pi_{t}=\pi_{meta}-\frac{1}{a \cdot B}(Y_{t}-Y_{pot})}$$ Esta é a Função de Reação geral do Banco Central (BC). No entanto, estamos considerando que há dois períodos de defasagem na resposta do produto, logo a MR precisa ser ajustada para: $${MR_{t+2}:\pi_{t+2}=\pi_{meta}-\frac{1}{a \cdot B}(Y_{t+2}-Y_{pot})}$$ Além disso, também precisamos ajustar a Curva de Phillips (PC) para 2 períodos de defasagem. $${PC_{t+2}: \pi_{t+2}=\pi_{t-1} + a(Y_{t}-Y_{pot})+ a(Y_{t+1}-Y_{pot})+ a(Y_{t+2}-Y_{pot})}$$ Considerando que $${a(Y_{t}-Y_{pot}) = a(Y_{t+1}-Y_{pot})}$$ Então podemos simplificar $${PC_{t+2}: \pi_{t+2}=\pi_{t-1} + 2a(Y_{t}-Y_{pot}) + a(Y_{t+2}-Y_{pot})}$$ Igualando a ${MR_{t+2}}$ com ${PC_{t+2}}$ e resolvendo para ${Y_{t+2}}$, obtemos a função de produto ótimo do Banco Central (BC) para dois períodos de defasagem: $${Y_{t+2}=Y_{pot}-\frac{2a}{a + \frac{1}{B \cdot a}}\cdot (Y_{t} - Y_{pot})}$$ Para calcular a taxa de inflação ótima para dois períodos de defasagem, basta substituir ${Y_{t+2}}$ na Função de Reação ${MR_{t+2}}$: $${MR_{t+2}:\pi_{t+2}=\pi_{meta}-\frac{1}{a \cdot B}(Y_{t+2}-Y_{pot})}$$ $${\Longleftrightarrow}$$ $${MR_{t+2}:\pi_{t+2}=\pi_{meta}-\frac{ [Y_{pot}-\frac{2a}{a + \frac{1}{B \cdot a}}\cdot (Y_{t} - Y_{pot})] - Y_{pot}}{a \cdot B}}$$ Após simplificar, obtemos: $${MR_{t+2}: \pi_{t+2}=\pi_{meta}-\frac{2a}{B \cdot a^2 + 1}(Y_{t}-Y_{pot})}$$'
- html: 'Bônus: A dedução da Regra de Taylor
'
- html: 'A Regra de Taylor tradicional é representada da seguinte maneira: $${i=r^*+\pi_{t}+\beta(\pi_{t}-\pi_{meta})+\beta_1(Y_{t}-Y_{pot})}$$ Para deduzir a Regra de Taylor a partir do problema de minimização da Função Perda (L) do Banco Central (BC) é necessário definir a Curva IS dinâmica.'
- html: ' A forma reduzida da Curva IS é dada por: $${IS: Y_{t}= A - \lambda r_{t}}$$ Para um desvio do produto do potencial, com um período de defasagem, ${(Y_{t+1}-Y_{pot})}$ e partindo da taxa de juros neutra ${r^{*}}$, temos. $${IS: (Y_{t+1}-Y_{pot})= -\lambda(r-r^*)}$$ A Regra Monetária para dois períodos de defasagem ${(MR_{t+2})}$ é dada por: $${MR_{t+2}: \pi_{t+2}=\pi_{meta}-\frac{2a}{B \cdot a^2 + 1}(Y_{t}-Y_{pot})}$$ $${\Longleftrightarrow}$$ $${\pi_{t+2}=\pi_{meta}-\frac{a}{B \cdot a^2 + 1}(Y_{t+1}-Y_{pot})-\frac{a}{B \cdot a^2 + 1}(Y_{t}-Y_{pot})}$$ Podemos substituir a curva IS na equação acima. $${\pi_{t+2}=\pi_{meta}-\frac{a}{B \cdot a^2 + 1}(-\lambda(r-r^*))-\frac{a}{B \cdot a^2 + 1}(Y_{t}-Y_{pot})}$$ Agora, resolvendo para a taxa de juros real (r), chegamos em: $${r=r^* + \frac{Ba^2+ 1}{a\lambda}(\pi_{t+2}-\pi_{meta})+\frac{1}{\lambda}(Y_{t}-Y_{pot})}$$ Podemos perceber que estamos bem próximos da forma dada pela Regra de Taylor tradicional.'
- html: 'O último passo é substituir a Curva de Phillips ${(PC_{t+2})}$, na seguinte formúla $${PC_{t+2}: \pi_{t+2}=\pi_{t} + a(Y_{t+1}-Y_{pot})}$$ $${\Longleftrightarrow}$$ $${PC_{t+2}: \pi_{t+2}=\pi_{t} + a(-\lambda(r-r^*))}$$ E Resolver para a taxa de juros (r), obtendo: $${r=r*+ \frac{Ba^2 + 1}{a \lambda (Ba^2 +2)}(\pi_{t}-\pi_{meta})+\frac{1}{\lambda(Ba^2 + 2)}(Y_{t}-Y_{pot})}$$ Definido a taxa de juros real (r) como sendo $${r=i-\pi_{t}}$$ Então, chegamos no resultado final $${i-\pi_{t}=r^*+ \frac{Ba^2 + 1}{a \lambda (Ba^2 +2)}(\pi_{t}-\pi_{meta})+\frac{1}{\lambda(Ba^2 + 2)}(Y_{t}-Y_{pot})}$$ $${\Longleftrightarrow}$$ $${i=r^*+\pi_{t}+ \frac{Ba^2 + 1}{a \lambda (Ba^2 +2)}(\pi_{t}-\pi_{meta})+\frac{1}{\lambda(Ba^2 + 2)}(Y_{t}-Y_{pot})}$$'
- html: 'Em que $${i = r^* + \pi_{t} + \underbrace{\frac{B a^2 + 1}{a\lambda(Ba^2 + 2)}}_{\beta} (\pi_t - \pi_{meta}) + \underbrace{\frac{1}{\lambda(Ba^2 + 2)}}_{\beta_1} (Y_t - Y_{pot}) }$$ Portanto, retornando a Regra de Taylor tradicional: $${i=r^*+\pi_{t}+\beta(\pi_{t}-\pi_{meta})+\beta_1(Y_{t}-Y_{pot})}$$'