M B K 48

もし貧乏人が経済学を学んだら

Gali, "Monetary Policy, Inflation, and Business Cycle"

まだ東京でフリードマンなんか信用して消耗してるの?――フリードマンのk%ルールなんていらない

 このタイトルは、高知の池田氏を意識していますが、東京で消耗している池田氏も意識しています。で、東京で消耗している池田氏は、かつてツイッターでこんなことをつぶやいています。

私は、リフレ派の自称エコノミストにはLjungqvist-SargentよりGali http://t.co/hnpA9shczT をおすすめしたいですね。読める人はほとんどいないと思うけど。https://twitter.com/ikedanob/status/371862848995344384


 東京で消耗している池田氏が Gali の本を読んでいるなら、同じ東京で消耗している池田氏の次のようなフリードマン評価(「フリードマンの敗北と勝利」、こちら)は不思議ですね。

 というのは、Gali の本の中では、貨幣供給を一定にするフリードマン的金融政策は、ニューケインジアンモデルが出てくる前の2章ですでに否定されているからです(はっきりそう書かれているわけではありませんが)。

(以下の記事のフリードマン・ルールは、「名目金利を0にする」というフリードマン・ルールではなくて、貨幣供給を一定にするのが望ましいという、k%ルールと呼ばれるものを想定しています。というのは、中央銀行が名目金利を0にする「フリードマン・ルール」を実行しようとすると、「貨幣量を調整しなければならない」からです。つまり、k%ルールに従わないことになる。)

(1)
 でも、フリードマンのk%ルール(貨幣成長率をk%にする、というように一定にするのが望ましい)は一部の人に信用されているようです。理由は、貨幣成長を「一定」にしているから「安定」するだろう、というように、「一定」と「安定」という「言葉」(概念)が結びつくからでしょう。しかし、単純なモデルから、これはまったく逆だと示すことができます。必要なのは、フィッシャー方程式と貨幣需要方程式だけ。

150401 (2)
   (1)
150401 (1)
   (2)


 フィッシャー方程式((1)式)が(対数化)近似されたものなので、貨幣需要方程式((2)式)も対数化します。
150401 (3)   (3)

 この(3)式の iにフィッシャー方程式を代入すれば、
150401 (4)

 πt+1=pt+1-pなので、

150401 (5)

 となります。整理すれば、

150401 (6)
   (5)
150401 (7)
   (6)

 この(6)式から、pはある一定の値に収束するとわかります( E[pt+1] の前の係数 η/(1+η)  が1より小さいから)。ショックは、需要ショック、技術ショック、コストプッシュショック(インフレショック)のどれでも、第3項 ηr-y の変化にあらわれます(ショックの種類によって変数は変わりますが)。ここで、中央銀行がショックを吸収するように、貨幣供給 mを変化させれば、ショックが pに波及する影響は軽減されます。しかし、フリードマンルールのように貨幣供給( m)を一定にしていると、ショックは、pの変化により直接的に影響を与えることになります。そのため、フリードマンルールに従っていると、一見すると、貨幣供給を一定の割合にしているので物価が安定するように思われますが、実は、物価をより大きく変動させることになるのです。

 pをインフレ率に変えても同じことが言えます。(6)式の期間tをひとつ前の期間にずらせば( t を t-1 に変える)、
150401 (8)

   (7)

 (6)式から、(7)式を引けば、
150401 (9)
   (8)

 となります。やはり、インフレ率はある一定の値に収束します( E[πt+1] の前の係数 η/(1+η)  が1より小さいから)。この場合も、ショックは第3項に現れます。そして、やはり中央銀行が貨幣供給を一定にしていると( Δm(貨幣量の変化)=0 かある一定の値)、ショックは直接的にインフレ率に影響を与えることになります(ここから先の計算は 注1)。

 Δm=0 のフリードマン的金融政策を行っていた場合と、テイラールール的な金融政策(Gali の21ページの例、 i=ρ+1.5π)を行っていた場合では、技術ショックに対するインフレ率の変化は、次のように異なったものになります。

friedman_rbc




 図1
 赤いライン
 Δm=0

 青いライン
 テイラールール






 フリードマンルールは、貨幣成長率を一定にするため、経済を安定させるものであるように思われますが、実は、より大きく経済を変動させるのです。クルーグマンは『クルーグマン教授の経済学入門』で、FRBが貨幣総量を固定するというフリードマン的金融政策に縛られなくなってからのほうが経済は安定している、と書いています(151ページ)。上の例から、これは理論的にも説明できるわけです。

(2)
 テイラールールは、名目金利を通して波及するので、名目金利が0付近にあるとき(流動性の罠に陥っているとき)には効果がなくなる、というのは、そのとおりです。しかし、名目金利が0付近になると(というよりも、一般的に、インフレ率をある一定の値に安定させる点で)、フリードマンルールは、テイラールール以上に無能さを露呈します。

 ある一定のインフレ率 π* に収束させるテイラールールは、
150401 (11)
   (9)
 となります(これが π* に収束することは 注2)。そして、このルールで貨幣供給がどのように変化しているかを計算すると((9)式を(3)式の貨幣需要式の iに代入し、(8)式を導出したのと同じ計算をする)、
150401 (12)
   (10)

 となります。この(10)式は、見方を変えれば、インフレ率を π* に収束させたいとき、中央銀行が行わなければならない貨幣供給の調整を表しています。ここで、インフレ率の目標値を0%、つまり π*=0 とし、前期1%だったインフレ率が、今期0%になったと想定してみます。つまり、πt-1=1% から π=0% になり、目標値が達成された。目標値が達成されたのだから、中央銀行は何もしなくていいように思われるかもしれません。しかし、(10)式に πt-1=1% と π=0% を代入すると、Δm=ηΦπ となります。つまり、(10)式は、貨幣供給を ηΦπ% 増やすことを命じています(代表的なパラメーター η=4,Φπ=1.5で、ηΦπ=6%)。なぜなら、ここで貨幣供給を増やさないと、インフレ率が目標値0%を通り過ぎて、そのままマイナスになってしまうからです。でも、中央銀行がフリードマンルールに従っていたら、貨幣供給を変化させないので、その目標は達成できません。目標を通り越して、そのままデフレに陥ります。

 つまり、最適な金融政策は貨幣量を調整するものなのです。ところが、フリードマンルールは貨幣量の調節を禁じています。フリードマンルールは、中央銀行が最適な金融政策を行うのを拘束するルールになってしまっているわけです。(ここで、貨幣量を調節するということは、ルールをころころかえることではありません。どっかの政党が言っているような「柔軟な金融政策」をすることではありません。)


注1)
 フリードマンルールを想定し、(8)式の Δmを0にすると、
150401 (10)
   (11)
   
 となります。
 ショックは第三項、ηΔr-Δy にあらわれます。ここでは、技術ショックを想定し、その項を計算します。以下、Gali の Monetary Policy, Inflation, and the Business Cycle の2章のモデルにしたがいます。技術ショックは、 次のようなAR(1)過程に従います。
150327 (3)
   (12)
  また、(12)式から、
150327 (4)
   
150327 (5)
   (13)
 が成り立ちます。(13)式の計算では、かく乱項の期待値は0になる(E[εt+1]=0)、という関係を使っています。
 ここで、消費をとおした個人の最適化から
150401 (14)
   (14)

 が成り立ちます。この(14)式から、
150401 (15) 
   (15)
 が得られます。産出量は、定常値(自然産出量、次の式の右辺の第2項)と技術変動による変動分に分解できるとします(Gali の本の2章の(18)式)。
150401 (16)
   (16)
 (16)式と(12)式を使って、E[Δyt+1] を計算すると
150401 (17)

 (13)式を使えば、
150401 (19)
   (17)
 となります。また、Δy を計算すると
150401 (20)
   (18)
 です。そこで、Δrを計算すると、
150401 (21)

 (15)式から、
150401 (22)

 (17)、(18)式を代入すれば、
150401 (23)

150401 (24)

 となります。続けて、ηΔr-Δyを計算すると、
150401 (25)

150401 (26)

150401 (27)

 これを(11)式に代入すれば、πが求まります。
150401 (28)


150401 (29)
   (19)
 上のインパルス応答で、インフレ率が大きく上下動したのは、at  とat-1 の前の係数が片方はプラス、片方はマイナスだからです。Gali のモデルのパラメータで計算すると、-Ψya[ση(2-ρ)+1] は -5.4 で、Ψya(1+ση) は 5 です。t 期に 1 のショックがあったとすると、まず、(12)式から、a=1,いっぽう at-1 は 0 なので、(19)式の下の部分(第2項と第3項)は -5.4 です。次に、t+1 期では、ショックは(12)式にしたがうので、(19)式の第2項は、0.9×(-5.4) で、-4.86 です。第3項は、Ψya(1+ση)a となるので、5 です。したがって、(19)式の下の部分(第2項と第3項)は1.6 になります。このように、-5.4 から 1.6 に変動しているため、図1のようにインフレ率がマイナスからプラスに大きく変動するわけです。

 図1を描くための残りの計算は、(12)式と(19)式をつかって、くりかえし再帰的に代入して、πを求めるか、(12)式と(19)式の連立方程式から、πを求めるかのどちらかの方法になります。後者の場合、コンピューターのプログラムを使えばかんたんにできますが、2×2行列なので、Blanchard and Kahn method にしたがって、手で計算してもできます。


注2)
 テイラールール
150401 (11)

 を、(1)式のフィッシャー方程式に代入します。
150401 (33)

 整理すれば、
150401 (34)



 となります。この式から πt+k を求め、再帰的に代入を繰り返していけば、
150401 (35)



 となります。
 

 

Gali, "Monetary Policiy" 4章 表4.1を計算するには(2):フリードマンルール編

  この節では、厚生損失関数(welfare loss function)にもとづいて、代表的な金融政策ルールを評価しています。

4.4.2 厚生損失関数によってフリードマンルール的な金融政策を評価する

(1)厚生損失関数
 基準とする厚生関数は前回のテイラールール的な金融政策を評価した場合と同じです。表4.1は、次の式で計算されています。
150330 (3)
    (1)


  表4.1の産出ギャップとインフレ率の標準偏差は、次の式で計算されています。
150330 (4)

   (2)

150330 (5)
   (3)

 (インフレ率のほうに4をかけているのは年率に換算するためです。)

 今回も、技術ショックを与えます。
150330 (17)   (4)

 4.4.1.2節、あるいは、前節の4.4.2節と同様に ρ=0.9 です。

 実は、これだけなら、3.4.2.2節の貨幣成長率一定(実際には成長率0)の金融政策を行っている状況で技術ショックを与えたケースと同じです。したがって、そのモデル(そのシミュレーションはすでにやりました)で上記の(1)式、(2)式、(3)式を計算すればいいだけです。

 しかし、今回は、貨幣需要ショックがある状況で、上記の技術ショックを与えるシミュレーションもするので、貨幣需要ショックがない場合は、両方できるようにしておいて(つまり、ショックを2つ想定する)、貨幣需要ショックをゼロにしたほうがかんたんです。

 で、例によって、その貨幣需要ショックをモデルにどのように与えるか、という説明はありません。

 貨幣需要ショック(の増減)が次のようなAR(1)過程に従うとすると、
150330 (16)   (5)


 現実のデータとの比較から、εζの標準偏差は 0.063 になる、と書いてあるので、正規分布にしたがう乱数を発生させ、εζを再現し(εζが平均0,標準偏差が 0.063 になるようにし)、(5)式の貨幣需要ショックを発生させた上で技術ショックを与えればいいでしょう。

(2)貨幣成長率一定の金融政策ルール
 3.4.2.2節と金融政策は同じなのですが、貨幣需要ショックを導入する必要があります。まず、市場での実質貨幣残高と貨幣需要との均衡を表す式は、
150329 (4)
   (6)
 です。右辺が貨幣需要を表していて、左辺は実質貨幣残高(real balance) です。つまり、 l= m-pです。これに(右辺に)に貨幣需要ショックが加わります。
150330 (15)
   (7)
 ζが貨幣需要ショックを表しています。ニューケインジアンのIS曲線やフィリップス曲線は、自然産出量 yからのかい離値 yを変数としているので、(7)式の yを yで書き換えたいです。
 まず、y は、産出量 yの、「自然産出量 y」からのかい離値なので、
150330 (8)

 です。yを表す式に変えれば、
150329 (10)
   (8)
 となります。次に、自然産出量 yt の、「自然産出量の定常値 y」からのかい離値を y^とすれば、
150329 (9)
  (9)

 と表せます。(8)式の yt に(9)式を代入すれば、 yt (産出量の水準値)は、
150329 (11)


 と表わせます。これを(6)式に代入すれば(しばらく、貨幣需要ショック ζを無視しておいて)、
150329 (12)
(10)

 となります。左辺の lも定常値からのかい離値で表したいです。lの定常値をlとすると、(10)式は、定常状態では、
150329 (13)
   (11)
 となります( y,y^は定常状態では0)。(10)式から(11)式を引けば、
150329 (24)
   (12)
 となります。今回のケースでは、これに(右辺の貨幣需要に)貨幣需要ショックが加わるので、
150330 (19)
   (13)

 となります。ここで、l^という変数を導入し、l^
150330 (20)
   (14)

 と定義すれば、(13)式は、
150330 (21)
   (15)

 と表せます(どうしてこういう変更をするかというと、貨幣需要ショックの変化が(5)式になるので、その(5)式にあわせて、ζを消去したいからです。が、そもそもどうして(5)式で、貨幣需要ショックを ζで表さないのかわからない。ショックで0[水準値で1]からの変化なのだから、 ζでいいでは、と思うのですが。ここは Gali の設定に盲目的にしたがっています)。
 そして、技術ショックを想定する場合は、毎回同じ変更をしますが、y^は、
150329 (25)


 です(48ページ、(18)式)。これを(11)式に代入すれば、
150330 (22)
   (16)

 となります。これで、貨幣需要を表す式の変更は終わりです。

 次に、3.4.2節の貨幣成長一定の金融政策のところで、実質貨幣残高 l= m-pの変化を表す式として、
150329 (7)

 を導出しました。今回のケースでは、貨幣供給ショックはないので、Δm=0 です。したがって、
150329 (22)
   (17)   
 となります。ただし、(16)式に合わせて、l^を l^に変更しなくてはいけません。(14)式の定義から、
150330 (24)


 となるので、これを(17)式に代入すれば、
150330 (25)

150330 (26)
 

150330 (27)
   (18)

 となります。

 残りの条件式は、基本的なニューケインジアンモデルと同じです。
150322 (16)
   (19)

 技術ショックを想定する場合は、毎回同じ変更をしますが、r(自然利子率)を aの式に変えます。r
150327 (6)

 と表されます(これの導出は、3.4.2.1節の説明を見てください)。これを(19)式の r^t に代入すれば、
150327 (8)
   (20)

 となります(これも、技術ショックを想定するときは、毎回同じですが)。ニューケインジアンのフィリップス曲線は、
150322 (12)   (21)

 です。これで方程式がそろいました。

(3) Generalized Schur Method / Blanchard Kahn Method
 上記の方程式を簡単なかたちに変えるために、Schur method  か Blanchard and Kahn method のどちらかで、計算します(具体的なプログラムの作り方は、Schur method はこちら / Blanchard and Kahn method はこちら)。
 解くべき方程式は、(4)、(5)、(16)、(18)、(20)、(21)式です。少し変形して再掲すれば、
150330 (17)

150330 (16)


150330 (28)

150330 (23)


150327 (10)

150322 (20)


  行列を使って表記すれば、
150330 (29)










150330 (30)










 となります。したがって、以下のプログラムで計算するときの行列 B,A,G は、

150330 (31)









150330 (32)








 です。パラメータ-の値は、σ=1,β=0.99,ρa=0.9,ρζ=0.6,Ψya=1,k=0.1275 です。以下のプログラムで計算すると、
C=       0.9               0.                  0.                0.         
              0.              0.6                 0.                0.        
       0.2166638    0.2092668    0.7039169  - 2.557D-16  
       1.665D-16    0.1384615    1.665D-16    8.944D-17
D=         1.                 0.        
               0.                 1.        
         0.2407376     0.3487780  
         1.388D-16      0.2307692  
N=  0.6833362  - 0.7631130  - 0.7039169    0  
        0.2166638  - 0.3907332  - 0.2960831    0
L=  0.7592624  - 1.2718549 
       0.2407376  - 0.6512220
 となります。上記の連立方程式の解は、xt+1=Cx+Dε,y=-Nx-Lεになるので、
= 0.9 at-1+ε
ζ= 0.6 ζt-1+εζ
= -0.6833362 at-1 +0.7631130 ζt-1+0.7039169 lt-1
        -0.7592624 ε+1.2718549 εζ
π= -0.2166638 at-1 +0.3907332 ζt-1+0.2960831 lt-1
         -0.2407376 ε+0.6512220 εζ
 と表すことができます( l,yの上についている ^, は省略しています。厚生損失の計算に必要なのは、yと πなので、yと πだけ表記しています)。


Scilab のコード(Generalized Schur method)

theta=2/3;
beta=0.99;
sigma=1;
rhoa=0.9;
rhoz=0.6;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));
psia=(1+phi)/(sigma*(1-alpha)+phi+alpha);

B=[1,0,0,0,0,0;
0,1,0,0,0,0;
0,-1,1,0,0,0;
-psia,0,1,eta,0,0;
-psia*(1-rhoa),0,0,-1/sigma,1,1/sigma;
0,0,0,0,0,beta];

A=[rhoa,0,0,0,0,0;
0,rhoz,0,0,0,0;
0,0,1,0,0,-1;
0,0,0,0,1,0;
0,0,0,0,1,0;
0,0,0,0,-kap,1];

G=[1,0;0,1;0,0;0,0;0,0;0,0];

[S,T,Z,dim] = schur(A,B,'d');

Q=(A+B)*Z*inv(S+T);

Z2=Z';
Z21=Z2(5:6,1:4);
Z22=Z2(5:6,5:6);

N=inv(Z22)*Z21;

Q2=Q';
Q21=Q2(5:6,1:4);
Q22=Q2(5:6,5:6);
S22=S(5:6,5:6);
G1=G(1:4,:);
G2=G(5:6,:);

L=inv(Z22)*inv(S22)*(Q21*G1+Q22*G2);

B11=B(1:4,1:4);
B12=B(1:4,5:6);
A11=A(1:4,1:4);
A12=A(1:4,5:6);

C=inv(B11-B12*N)*(A11-A12*N);
D=inv(B11-B12*N)*(G1-A12*L);


Scilab のコード(Blanchard and Kahn method)

theta=2/3;
beta=0.99;
sigma=1;
rhoa=0.9;
rhoz=0.6;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));
psia=(1+phi)/(sigma*(1-alpha)+phi+alpha);

B=[1,0,0,0,0,0;
0,1,0,0,0,0;
0,-1,1,0,0,0;
-psia,0,1,eta,0,0;
-psia*(1-rhoa),0,0,-1/sigma,1,1/sigma;
0,0,0,0,0,beta];

A=[rhoa,0,0,0,0,0;
0,rhoz,0,0,0,0;
0,0,1,0,0,-1;
0,0,0,0,1,0;
0,0,0,0,1,0;
0,0,0,0,-kap,1];

G=[1,0;0,1;0,0;0,0;0,0;0,0];


Z=inv(B)*A;
[R,D1]=spec(Z);
v1=spec(Z);
v2=[v1(1),v1(6),v1(2),v1(5),v1(3),v1(4)];
D2=diag(v2);
M=[R(:,1),R(:,6),R(:,2),R(:,5),R(:,3),R(:,4)];
M1=inv(M);
M11=M1(1:4,1:4);
M12=M1(1:4,5:6);
M21=M1(5:6,1:4);
M22=M1(5:6,5:6);
D11=D2(1:4,1:4);
D22=D2(5:6,5:6);

N=inv(M22)*M21;
C=inv(M11-M12*inv(M22)*M21)*D11*(M11-M12*inv(M22)*M21);

GG=inv(M)*inv(B)*G;
G1=GG(1:4,:);
G2=GG(5:6,:);

L=inv(M22)*inv(D22)*G2;

D=-inv(M11-M12*inv(M22)*M21)*(D11*M12*inv(M22)*inv(D22)*G2-G1);


(4) 貨幣需要ショックがない場合
 貨幣需要ショックがない場合は、上のコードに続けて(どちらでもいいです)、次のコードを実行します。ζをすべての期間で0にしておきます。技術ショックの大きさは、0.01 です( ε が1期のみ0.01増加する)。そして、(1)、(2)、(3)式の厚生損失、産出量ギャップの標準偏差σ(y)、インフレ率の標準偏差σ(π)を計算します。

n=100;
x=linspace(-1,98,n);
ea=zeros(1,n);
ez=zeros(1,n);
a=zeros(1,n);
z=a;
l=a;
i=a;
y=a;
pi=a;
ea(2)=0.01;

for t=1:n
a(t+1)=C(1,1)*a(t)+D(1,1)*ea(t+1);
z(t+1)=C(2,2)*z(t)+D(2,2)*ez(t+1);
l(t+1)=C(3,1)*a(t)+C(3,2)*z(t)+C(3,3)*l(t)+C(3,4)*i(t)+...
D(3,1)*ea(t+1)+D(3,2)*ez(t+1);
i(t+1)=C(4,1)*a(t)+C(4,2)*z(t)+C(4,3)*l(t)+C(4,4)*i(t)+...
D(4,1)*ea(t+1)+D(4,2)*ez(t+1);
y(t+1)=-N(1,1)*a(t)-N(1,2)*z(t)-N(1,3)*l(t)-N(1,4)*i(t)-...
L(1,1)*ea(t+1)-L(1,2)*ez(t+1);
pi(t+1)=-N(2,1)*a(t)-N(2,2)*z(t)-N(2,3)*l(t)-N(2,4)*i(t)-...
L(2,1)*ea(t+1)-L(2,2)*ez(t+1);

wlos(t)=((sigma+(phi+alpha)/(1-alpha))*y(t)^2+eps*pi(t)^2/lambda)/2;
end;

sum(wlos)

sqrt(sum(y.^2))

4*sqrt(sum(pi.^2))


 結果は、

welfare loss =0.0008461, σ(y)=0.0102146,
σ(π)=0.0125025

 となります。前節で計算したテイラールールのベンチマーク(Φy=0.5/4,Φπ=1.5)が、
welfare loss =0.0030423, σ(y)=0.0055693,
σ(π)=0.0260584
 なので、テイラールールよりもいい結果です。ただし、パラメーターを変えたより厚生損失が少ないテイラールール(Φy=0,Φπ=1.5 あるいは Φy=0,Φπ=5)よりは悪いです(そのシミュレーションはこちら


(5) 貨幣需要ショックがある場合
 貨幣需要ショックを導入するのですが、現実のデータとの比較から、εζ の標準偏差は 0.063 になる、ということですので、正規分布に従う乱数を発生させ、 εζ のデータをつくります。以下の計算では、100期間で計算するので(速く0に収束するので期間はもう少し短くてもいいと思います)、100期間の[Σ(εζ)]^0.5 が  0.063 になるようにします。そのためには、元の乱数の標準偏差を 0.063/10 = 0.0063 にすればいいことになります。平均 0、標準偏差 0.0063 の正規分布にしたがう乱数を発生させるScilab のコードは、
grand(1,n,'nor',0,0.00063)
です。これで、εζ のデータをつくります。
 その状態で、技術ショック 0.01 ( ε が1期のみ0.01増加する)を与えます。

n=100;
x=linspace(-1,98,n);
ea=zeros(1,n);
ez=grand(1,n,'nor',0,0.00063);
a=zeros(1,n);
z=a;
l=a;
i=a;
y=a;
pi=a;
ea(2)=0.01;

for t=1:n
a(t+1)=C(1,1)*a(t)+D(1,1)*ea(t+1);
z(t+1)=C(2,2)*z(t)+D(2,2)*ez(t+1);
l(t+1)=C(3,1)*a(t)+C(3,2)*z(t)+C(3,3)*l(t)+D(3,1)*ea(t+1)+D(3,2)*ez(t+1);
y(t+1)=-N(1,1)*a(t)-N(1,2)*z(t)-N(1,3)*l(t)-L(1,1)*ea(t+1)-L(1,2)*ez(t+1);
pi(t+1)=-N(2,1)*a(t)-N(2,2)*z(t)-N(2,3)*l(t)-L(2,1)*ea(t+1)-L(2,2)*ez(t+1);

wlos(t)=((sigma+(phi+alpha)/(1-alpha))*y(t)^2+eps*pi(t)^2/lambda)/2;
end;

sum(wlos)

sqrt(sum(y.^2))

4*sqrt(sum(pi.^2))

 乱数を発生させているので、毎回の計算でかなりばらつきがあります。そこで、上記の計算を10000回行い平均をとると、次の結果が得られます(それでも、小数点以下5桁ぐらいからばらつきが生じます。また、Gali の表4.1と少し差があります・・・なぜ? 表4.1では、welfare loss が 0.0038)。

welfare loss =0.0037137, σ(y)=0.0160749,
σ(π)=0.0273828


 今度は、テイラールールのベンチマーク(Φy=0.5/4,Φπ=1.5)よりも悪い結果になります。つまり、貨幣量を一定に保つフリードマンルール的金融政策は、貨幣需要の変動がなければ、更生損失が少ないのですが、貨幣需要の変動を想定すると(実際の経済には、もちろんあります)、更生損失が大きくなります。

 インフレ率は、貨幣需要の変化がない場合と、ある場合とで、このくらい差が出ます。

1(b)










赤いライン
welfare loss = 0.00374





 いっぽう、テイラールールは、貨幣需要の変動の影響を受けません。貨幣需要が変動すれば、貨幣量を変化させてそのショックを吸収するからです。これは、前節のモデルに、今回のような貨幣需要の変化と、実質貨幣残高=貨幣需要の方程式を加えてシミュレーションしても確認できます。

Gali, "Monetary Policiy" 4章 表4.1を計算するには(1):テイラールール編

  この節では、厚生損失関数(welfare loss function)にもとづいて、金融政策ルールを評価しています。その結果が表4.1なのですが、どのように計算したのかという説明はありません・・・

4.4.1 厚生損失関数によってテイラールール的な金融政策を評価する

(1)厚生損失関数
 モデルは、3.4.1.2節のテイラールール的な金融政策で技術ショックが起こった場合とほぼ同じです(金融政策のルールが少し変更されているだけ)。今回も、ショックは技術ショックです。重複しているとこは省略しているので、3.4.1.2節の説明が補足になるかもしれません)。

 まず、厚生損失関数 (welfare loss function) は次のものです。
150330 (1)
   (1)

  これは個人の効用の割引現在価値の総和(の近似)から得られています(この式の導出もそのうち(?)書こうと思っていますが・・・)。その効用の総和を求めたときに、この(1)式にはマイナスの符号がついています。したがって、この値を小さくするほど、効用(厚生)は高くなります。金融政策当局にとって、それを小さくする政策が最適ということになります。
 この基準で評価すると、インフレ率の変動を抑える金融政策のほうが最適になります。それは、産出ギャップ y2  とインフレ率 πの前の係数の大きさがかなり違うからです。ここでのパラメータの値では、(φ+α)/(1-α)が 3 なのに対して、ε/λ は 141.2 です。

 ただし、表4.1の厚生損失は (1)式で計算したものではありません。次の式で計算したものです。
150330 (3)
   (2)


 (この式で計算し、表4.1と比べて、初めてこういう式で計算していると気づきました。本書では、他のインパルス応答でも、ショックの大きさがわからず、グラフを比べてみて初めて気づく、ということがあります。)
 表4.1の産出ギャップとインフレ率の標準偏差は、次の式で計算されています。
150330 (4)

   (3)

150330 (5)
   (4)

 (インフレ率のほうに4をかけているのは年率に換算するためです。)

 そして、技術ショックを与え(インパルス応答)、時系列データをつくり、そのデータをもとに、(2)、(3)、(4)式を計算した結果が表4.1です。

 その際の技術ショックは、3.4.1.2節と同じ、
150327 (3)   (5)

 です。3.4.1.2節と同様に ρ=0.9 と想定しています。


(2)テイラールール的な金融政策ルール
 3.4.1.2節とほぼ同じです。金利ルールにおいて基準とする産出量が変更されているだけです。
150330 (6)
   (6)

 ここで、iハット(^)は、i-ρ (ρ=-logβ.βは時間割引率)を表しています。3.4.1.2節のルールでは、自然産出量 yからのかい離値 yを基準にしましたが、今回の金融政策ルールは、自然産出量の定常値 yからのかい離値 y^を基準にしています。ニューケインジアンのIS曲線やフィリップス曲線は、自然産出量 yからのかい離値 yを変数としているので、(6)式の y^を yで書き換えたいです。
 まず、y^は、産出量 yの、「自然産出量の定常値 y」からのかい離値なので、
150330 (7)
   (7)
 です。いっぽう、y は、産出量 yの、「自然産出量 y」からのかい離値なので、
150330 (8)

 です。これを yを表す式に変えれば、
150329 (10)
   (8)
 となります。次に、自然産出量 yの、「自然産出量の定常値 y」からのかい離値を y^とすれば、
150329 (9)
  (9)

 と表せます。そこで、(9)式を(8)式に代入し、得られた yを(7)式に代入すれば、
150330 (9)
   (10)

 が得られます。この(10)式を、金融政策ルールを表す(6)式に代入します。
150330 (10)
   (11)

 これで、yと y^で表すことができたのですが、y^は技術水準 aの関数です。y^を aの式に変えます(3章以降、技術ショックを想定する場合は、毎回同じ変更をしています)。
150329 (25)


 (48ページ、(18)式)。これを(11)式に代入すれば、
150330 (11)
   (11)

 となります。これで金融政策ルールの式の変形は終わりです。

 残りの条件式は、基本的なニューケインジアンモデルと同じです(つまり、金融政策ルールが変わるだけなので、残りの部分は3.4.2.1節と同じ)。
150322 (16)
   (13)
 
 iハット(^)は、i-ρ を表しています。r(自然利子率)についても同じ( r^= r- ρ )。r(自然利子率)は、
150327 (6)

 と表されます(これの導出は、3.4.2.1節の説明を見てください)。これを(13)式の r^t に代入すれば、
150327 (8)
   (14)

 となります(これも、3.4.2.1節と同じですが)。ニューケインジアンのフィリップス曲線は、 150322 (12)

   (14)
 です。これで方程式がそろいました。

3)Generalized Schur Method / Blanchard Kahn Method
 上記の方程式を簡単なかたちに変えるために、Schur method  か Blanchard and Kahn method のどちらかで、計算します(具体的なプログラムの作り方は、Schur method はこちら / Blanchard and Kahn method はこちら)。

 解くべき方程式は、(5)式、(11)式、(14)式、(15)式です。少し変形して再掲すれば、
150327 (3)

150330 (12)


150327 (10)

150322 (20)


  行列を使って表記すれば、
150330 (13)







150327 (12)







 となります。したがって、以下のプログラムで計算するときの行列B,A,G は、

150330 (14)







150327 (14)





 です。パラメータ-の値は、σ=1,β=0.99,ρa=0.9,Ψya=1,k=0.1275 です。

 Φy=0.5/4,Φπ=1.5 場合、以下のプログラムで計算すると、
C=     0.9               0.    
        -0.2981626     0   
D=    1.        
    -0.3312918
N=  0.2184855      0  
        0.2555679      0
L=  0.2427617 
        0.2839644
 となります。上記の連立方程式の解は、xt+1=Cx+Dε,y=-Nx-Lεになるので、
= 0.9 at-1+ε
=  -0.2981626 at-1 -0.3312918 ε
= -0.2184855 at-1 -0.2427617 ε
π=-0.2555679 at-1 -0.2839644 ε
と表すことができます( it,の上についている ^, は省略しています)。

 この節の目的は、金融政策当局者が産出量ギャップとインフレ率のどちらに重みをおくかで、厚生損失がどのくらい変化するかを見ることです。したがって、Φy,Φπ の大きさを変えてシミュレーションします。Φyの値が大きいときは、産出量ギャップを重視していることを意味し、Φπ の値が大きいときは、インフレ率を重視していることを意味します。デフォルトは Φy=0.5/4,Φπ=1.5 です(以下のプログラムもこの値になっています)。比較する他のケースは、Φy=0,Φπ=1.5  / Φy=0,Φπ=5  / Φy=1,Φπ=1.5 です。その4つのケースに関して、それぞれ計算します(まず行列の計算を以下のコードのどちらかで)。

Scilab のコード(Generalized Schur method)

theta=2/3;
beta=0.99;
sigma=1;
rhoa=0.9;
phiy=0.5/4;
phipi=1.5;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));
psia=(1+phi)/(sigma*(1-alpha)+phi+alpha);


B=[1,0,0,0;
-phiy*psia,1,0,0;
-psia*(1-rhoa),-1/sigma,1,1/sigma;
0,0,0,beta];

A=[rhoa,0,0,0;
0,0,phiy,phipi;
0,0,1,0;
0,0,-kap,1];

G=[1;0;0;0];

[S,T,Z,dim] = schur(A,B,'d');

Q=(A+B)*Z*inv(S+T);

Z2=Z';
Z21=Z2(3:4,1:2);
Z22=Z2(3:4,3:4);

N=inv(Z22)*Z21;

Q2=Q';
Q21=Q2(3:4,1:2);
Q22=Q2(3:4,3:4);
S22=S(3:4,3:4);
G1=G(1:2);
G2=G(3:4);

L=inv(Z22)*inv(S22)*(Q21*G1+Q22*G2);

B11=B(1:2,1:2);
B12=B(1:2,3:4);
A11=A(1:2,1:2);
A12=A(1:2,3:4);

C=inv(B11-B12*N)*(A11-A12*N);
D=inv(B11-B12*N)*(G1-A12*L);


Scilab のコード(Blanchard and Kahn method)

theta=2/3;
beta=0.99;
sigma=1;
rhoa=0.9;
phiy=0.5/4;
phipi=1.5;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));
psia=(1+phi)/(sigma*(1-alpha)+phi+alpha);

B=[1,0,0,0;
-phiy*psia,1,0,0;
-psia*(1-rhoa),-1/sigma,1,1/sigma;
0,0,0,beta];

A=[rhoa,0,0,0;
0,0,phiy,phipi;
0,0,1,0;
0,0,-kap,1];

G=[1;0;0;0];

Z=inv(B)*A;
[R,D1]=spec(Z);
v1=spec(Z);
v2=[v1(1),v1(4),v1(3),v1(2)];
D2=diag(v2);
M=[R(1:4,1),R(1:4,4),R(1:4,3),R(1:4,2)];
M1=inv(M);
M11=M1(1:2,1:2);
M12=M1(1:2,3:4);
M21=M1(3:4,1:2);
M22=M1(3:4,3:4);
D11=D2(1:2,1:2);
D22=D2(3:4,3:4);

N=inv(M22)*M21;
C=inv(M11-M12*inv(M22)*M21)*D11*(M11-M12*inv(M22)*M21);

GG=inv(M)*inv(B)*G;
G1=GG(1:2);
G2=GG(3:4);

L=inv(M22)*inv(D22)*G2;

D=-inv(M11-M12*inv(M22)*M21)*(D11*M12*inv(M22)*inv(D22)*G2-G1);

 (? Blanchard and Kahn method では、小さい虚数がついてきます。最後まで同じように計算できますが。)

 上記のプログラムに続けて(どちらでもいいです)、次のコードを実行します。技術ショックの大きさは、0.01 です( εが1期のみ0.01増加する)。そして、(2)、(3)、(4)式の厚生損失、産出量ギャップの標準偏差σ(y)、インフレ率の標準偏差σ(π) を計算します。

n=102;
x=linspace(-1,100,n);
e=zeros(1,n);
a=e;
i=e;
y=e;
pi=e;
e(2)=0.01;
for t=1:n
a(t+1)=C(1,1)*a(t)+D(1)*e(t+1);
i(t+1)=C(2,1)*a(t)+C(2,1)*i(t)+D(2)*e(t+1);
y(t+1)=-N(1,1)*a(t)-N(1,2)*i(t)-L(1)*e(t+1);
pi(t+1)=-N(2,1)*a(t)-N(2,2)*i(t)-L(2)*e(t+1);
end;

for t=1:n
wlos(t)=((sigma+(phi+alpha)/(1-alpha))*y(t)^2+eps*pi(t)^2/lambda)/2;
end;

sum(wlos)

sqrt(sum(y.^2))

4*sqrt(sum(pi.^2))

 Φy,Φπ の大きさを変えてシミュレーションし、(2)、(3)、(4)式から厚生損失(welfare loss)、産出量ギャップの標準偏差 σ(y)、インフレ率の標準偏差σ(π)を計算すると、次のようになります(これが表4.1の左半分)。

Φy=0.5/4,Φπ=1.5
welfare loss =0.0030423, σ(y)=0.0055693,
σ(π)=0.0260584

Φy=0,Φπ=1.5
welfare loss =0.0008029, σ(y)=0.0028611,
σ(π)=0.0133870

Φy=0,Φπ=5 
welfare loss =0.0000215, σ(y)=0.0004686,
σ(π)=0.0021925

Φy=1,Φπ=1.5
welfare loss =0.0192395, σ(y)=0.0140056,
σ(π)=0.0655307

 この結果は、(1)式のようなテイラールール的な金融政策をルールにする場合、産出量ギャップの係数 Φy を小さくし(0にし)、インフレ率の係数インフレ率 Φπ を大きくしたほうが、厚生損失が少なくなることを示しています。これは、金融政策当局が産出量ギャップよりもインフレ率を重視する、ことを意味します(今回のケースは、インフレ率がマイナスになるので、インフレ率を重視する金融政策は、早くインフレ率を上げる政策になります。)

 しかし、今回のケースでは、産出量ギャップとインフレ率とのトレードオフは生じていません。インフレ率を重視するために、産出量ギャップの縮小を放棄しなければならないジレンマは生じていません。むしろ、インフレ率の係数 Φπ を大きくしたほうが、産出量ギャップも小さくなります。以下のグラフは産出量ギャップを示していますが、青いラインが Φy=0.5/4,Φπ=1.5,赤いラインが Φy=0,Φπ=1.5,緑のラインが Φy=0,Φπ=5 です。

1(a)

















Gali, "Monetary Policiy" 3章 図3.4を描くには

 今回は、貨幣成長率を対象とする金融政策が行われている状況で、技術ショックがあった場合です。
(前節と重複している箇所があります。まず、技術ショックに関しては、金融政策が違いますが、
3.4.1.2 テイラールール的、技術ショック
貨幣成長率一定の金融政策に関しては、
3.4.2 貨幣成長率金融政策、貨幣供給ショックが共通しています。

3.4.2 貨幣成長率一定の金融政策が行われているときに貨幣供給ショックがあった場合
 貨幣成長率一定といっても、経済全体の大きさは変化しない、つまり、経済成長率は 0 と想定しているので、貨幣成長率もゼロです。

 まず、技術ショックは、3.4.1.2節と同じです。aは、次のようなAR(1)過程に従います。
150327 (3)
   (1)
 ここでは3.4.1.2節と同様に ρ=0.9 と想定しています。

 前節の貨幣成長一定の金融政策のところで、実質貨幣残高 l= m-pの変化を表す式として、
150329 (7)

 を導出しました。今回のケースでは、貨幣供給ショックはないので、Δm=0です。したがって、
150329 (22)
   (2)
 次に、同じ前節で、貨幣需要を表す式として、
150329 (24)
   (3)
 を導出しました。前回は、技術ショックがなかったので、y^=0 としましたが、今回はこの項を残しておく必要があります。そして、
150329 (25)
   (4)

 です(48ページ、(18)式。あるいは、テイラールールに技術ショックを与えた3.4.1.2節と同じ)。(4)式を(3)式に代入すれば、
150329 (26)
   (5)

 となります。
 
 残りの条件式は、基本的なニューケインジアンモデルと同じです(つまり、金融政策ルールが変わるだけなので、残りの部分は3.4.1.2節と同じ)。
150322 (16)
   (6)
 
 iハット(^)は、i-ρ を表しています。r(自然利子率)についても同じ( r^= r- ρ )。
 r(自然利子率)は、技術水準 aによって決まります(49ページ、(23)式。これも3.4.1.2節と同じ)。     
150327 (2)
 

  (1)式から、
150327 (4)

150327 (5)

 となるので、
150327 (6)

 と表すことができます。これを(6)式の r^t に代入し、r^t を消去すれば、
150327 (8)
   (7)

 となります(これも、3.4.2.1節と同じですが)。

 そこで、(1)、(2)、(5)、(6)、(7)式を使って解を求めます。(少し変形して)もう一度掲載すると。
150327 (3)

150329 (27)


150329 (23)

150327 (10)


150322 (20)


 行列を使って表記すれば、

150329 (28)








150329 (29)








 となります。したがって、以下のプログラムで計算するときの行列B,A,G は、

150329 (30)








150329 (31)







 です。パラメータ-の値は、σ=1,β=0.99,ρa=0.9,Ψya=1,η=4,k=0.1275 です。

 あとは Schur method  か Blanchard and Kahn method のどちらかで、計算します(具体的なプログラムの作り方は、Schur method はこちら / Blanchard and Kahn method はこちら)。

 以下のプログラムで計算すると、
C=  0.9          0.           0.        
       0.2166638    0.7039169    4.171D-17 
       5.551D-17  - 2.220D-16  - 1.309D-17
D= 1.        
      0.2407376 
    - 2.776D-17
N=  0.6833362  - 0.7039169    1.064D-17 
        0.2166638  - 0.2960831    4.171D-17
L=  0.7592624 
        0.2407376
 となります。上記の連立方程式の解は、xt+1=Cx+Dε,y=-Nx-Lεになるので、
= 0.9 at-1 +ε
=   0.2166638 at-1 + 0.7039169 lt-1 + 0.2407376  ε
= -0.6833362 at-1 + 0.7039169 lt-1 + 1.1204155 ε
π= -0.2166638at-1 + 0.2960831 lt-1 + 0.5462512 ε
 と表すことができます( l,yの上についている ^, は省略しています)。iは非常に小さな値になります。10^(-18) ぐらい。以下のコードでは、コンピューターによる計算の誤差だと思われますが、Gali のグラフと同じになりません。


Scilab のコード(Generalized Schur method)

theta=2/3;
beta=0.99;
sigma=1;
rhoa=0.9;
phiy=0.5/4;
phipi=1.5;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));
psia=(1+phi)/(sigma*(1-alpha)+phi+alpha);

B=[1,0,0,0,0;
0,1,0,0,0;
-psia,1,eta,0,0;
-psia*(1-rhoa),0,-1/sigma,1,1/sigma;
0,0,0,0,beta];

A=[rhoa,0,0,0,0;
0,1,0,0,-1;
0,0,0,1,0;
0,0,0,1,0;
0,0,0,-kap,1];

G=[1;0;0;0;0];

[S,T,Z,dim] = schur(A,B,'d');

Q=(A+B)*Z*inv(S+T);

Z2=Z';
Z21=Z2(4:5,1:3);
Z22=Z2(4:5,4:5);

N=inv(Z22)*Z21;

Q2=Q';
Q21=Q2(4:5,1:3);
Q22=Q2(4:5,4:5);
S22=S(4:5,4:5);
G1=G(1:3);
G2=G(4:5);

L=inv(Z22)*inv(S22)*(Q21*G1+Q22*G2);

B11=B(1:3,1:3);
B12=B(1:3,4:5);
A11=A(1:3,1:3);
A12=A(1:3,4:5);

C=inv(B11-B12*N)*(A11-A12*N);
D=inv(B11-B12*N)*(G1-A12*L);


Scilab のコード(Blanchard and Kahn method)

theta=2/3;
beta=0.99;
sigma=1;
rhoa=0.9;
phiy=0.5/4;
phipi=1.5;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));
psia=(1+phi)/(sigma*(1-alpha)+phi+alpha);

B=[1,0,0,0,0;
0,1,0,0,0;
-psia,1,eta,0,0;
-psia*(1-rhoa),0,-1/sigma,1,1/sigma;
0,0,0,0,beta];

A=[rhoa,0,0,0,0;
0,1,0,0,-1;
0,0,0,1,0;
0,0,0,1,0;
0,0,0,-kap,1];

G=[1;0;0;0;0];


Z=inv(B)*A;
[R,D1]=spec(Z);
v1=spec(Z);
v2=[v1(1),v1(5),v1(4),v1(3),v1(2)];
D2=diag(v2);
M=[R(1:5,1),R(1:5,5),R(1:5,4),,R(1:5,3),R(1:5,2)];
M1=inv(M);
M11=M1(1:3,1:3);
M12=M1(1:3,4:5);
M21=M1(4:5,1:3);
M22=M1(4:5,4:5);
D11=D2(1:3,1:3);
D22=D2(4:5,4:5);

N=inv(M22)*M21;
C=inv(M11-M12*inv(M22)*M21)*D11*(M11-M12*inv(M22)*M21);

GG=inv(M)*inv(B)*G;
G1=GG(1:3);
G2=GG(4:5);

L=inv(M22)*inv(D22)*G2;

D=-inv(M11-M12*inv(M22)*M21)*(D11*M12*inv(M22)*inv(D22)*G2-G1);


 インパルス応答を見る時には、上記のプログラムに続けて(どちらでもいいです)、次のコードを実行します。ショック(技術ショック)の大きさは、0.01 です( εが1期のみ0.01増加する)。

n=24;
x=linspace(-1,22,n);
e=zeros(1,n);
l=e;
i=e;
y=e;
pi=e;
r=e;
a=e;
yy=e;
h=e;
e(2)=0.01;
for t=1:n
a(t+1)=C(1,1)*a(t)+D(1)*e(t+1);

l(t+1)=C(2,1)*a(t)+C(2,2)*l(t)+C(2,3)*i(t)+D(2)*e(t+1);
i(t+1)=C(3,1)*a(t)+C(3,2)*l(t)+C(3,3)*i(t)+D(3)*e(t+1);
y(t+1)=-N(1,1)*a(t)-N(1,2)*l(t)-N(1,3)*i(t)-L(1)*e(t+1);
pi(t+1)=-N(2,1)*a(t)-N(2,2)*l(t)-N(2,3)*i(t)-L(2)*e(t+1);
end

for t=1:n
r(t)=i(t)-pi(t+1);
yy(t)=psia*a(t)+y(t);
h(t)=(yy(t)-a(t))/(1-alpha);
end

subplot(2,1,1);
plot(x,y,'-o');
xlabel("Output Gap");
subplot(2,1,2);
plot(x,pi,'-o');
xlabel("Inflation");
zoom_rect([0,-0.008,20,0.0005]);


 グラフを描かせるコードは Output gap と Inflation だけを載せています(全部載せると長くなるので)。Output,  Money growth, Employment は54ページの式で計算しています。ちなみに、この Output と Employment は水準値ではありません。このモデルでは、自然産出量 yは時間と共に変化します。自然産出量 yの定常値 yを想定し、通常の産出量 yの、その y(yではなくて)とのかい離値が以下の Output です(48-49ページの(19)式、(23)式。いっぽう、最初の Output Gap は、yの yからのかい離値)。
 以下のグラフからはわかりにくいですが、今回のケースでは、産出量ギャップ、インフレ率がオーバーシュートします。マイナスに低下し、その後増加し、0を超える。

4(a)






















4(b)






















4(c)























Gali, "Monetary Policiy" 3章 図3.3を描くには

  前節のモデルと基本的な部分は同じです。今回は、金融政策が、前節の名目金利を対象とするテイラールール的なものから、貨幣成長率を対象とするフリードマンルール的なものに変わります。そして、今回のインパルス応答は、貨幣成長率一定の金融政策が行われているときに、貨幣供給ショックを与えるものです。

(重複しているところは省略しています。方程式や変数の説明など、詳しい説明は前に記事に書いてあるかもしれません。
3.4.1.1 テイラールール的、金利ショック
3.4.1.2 テイラールール的、技術ショック

3.4.2 貨幣成長率一定の金融政策が行われているときに貨幣供給ショックがあった場合

1)Generalized Schur Method / Blanchard Kahn Method
 一般的なプログラムの作り方は、前の記事に書いてあります(Schur method はこちら / Blanchard and Kahn method はこちら)。今回のケースのコードは、以下に添付してあります。

 貨幣成長率一定といっても、経済全体の大きさは変化しない、つまり、経済成長率は 0 と想定しているので、貨幣成長率もゼロです。
 貨幣供給の変化を表す式(貨幣供給ショックを表す式)は、次のものです。
150329 (1)
   (1)
 ρ=0.5 と想定しています。この一時的な貨幣供給の増加が、貨幣の需要・供給をとおして、実体経済に影響を与えます。市場での貨幣需要(次の式の右辺)と実質貨幣残高(real balance. 次の式の左辺)との均衡を表す式は、
150329 (2)  (2)

 です(それぞれの変数は対数値)。ここで、左辺の実質貨幣残高(real balance)を lとおきます。つまり、
150329 (3)
    (3)
 にするということです。この lを用いれば、(2)式は、
150329 (4)   (4)

 と表されます。

 ここで、貨幣供給ショックによって、貨幣の量が変化すれば、実質貨幣残高 m-pも変化するので、その変化を表す式が欲しいです。そこで、(3)式を1期前にずらします。
150329 (5)
   (5)
 (3)式から(5)式を引きます。
150329 (6)

 右辺の第1項は貨幣の増加量、第2項はインフレ率なので、
150329 (7)

 と変えることができます。左辺の lを、定常値からのかい離値に変えるには、元の変数(水準値)を、かい離値を表す変数に変えるだけでいいです。それぞれ lと lt-1 から定常値を引いていも、 l- lt-1 の値は変わらないからです。したがって、
150329 (8)
   (6)
 と変えることができます( l^は lの定常値からのかい離値。つまり、定常値を l とすると、l^=l-l )。

 次に、(4)式も定常値からのかい離値で表したいです。まず、このモデルでは、産出量のかい離値( y)は、自然産出量 yとの差を表しています。
150330 (8)

 yを表す式に変えれば、
150329 (10)
   (7) 
 となります。次に、自然産出量 yの定常値を yとし、自然産出量 yの、その定常値 yからのかい離値を y^で表すとすると、
150329 (9)   (8)


 が成り立ちます。(7)式の yに(8)式を代入すれば、(通常の産出量) y
150329 (11) 
  (9)

 と表されることになります。これを(4)式のに代入すれば、
150329 (12)
   (10)

 となります。定常状態では、右辺の最初の2つのかい離値は 0 になるので、
150329 (13)
   (11)
 が成り立ちます。名目金利 iの定常値は、ρ(=-logβ)と想定しています。(10)式から(11)式を引けば、
150329 (14)
   (12)
 となります。これで貨幣需要を表す(4)式を、定常値からのかい離値で表すことができました。今回のケースでは、技術レベルは変化しないので、y^=0 です。したがって、(12)式は、
150329 (15)
   (13)
 となります。

 残りの条件式は、基本的なニューケインジアンモデルと同じです。IS曲線。
150322 (16)


  今回のケースでは y^=0 なので、
1503261 (22)
   (14)

 となります。ニューケインジアンのフィリップス曲線。
150322 (12) 
  (15)

 したがって、解くべき方程式は、(1)、(6)、(13)、(14)、(15)式になります。(少し変形して)もう一度掲載すると。
150329 (1)

150329 (16)

150329 (17)

150322 (19)


150322 (20)


 行列を使って表記すれば、
150329 (18)








150329 (19)








 となります。したがって、以下のプログラムで計算するときの行列A,B,G は、

150329 (20)







150329 (21)






 です。パラメータ-の値は、σ=1,β=0.99,ρm=0.5,η=4,k=0.1275 です。

 あとは Schur method  か Blanchard and Kahn method のどちらかで、計算します(具体的なプログラムの作り方は、Schur method はこちら / Blanchard and Kahn method はこちら)。

 以下のプログラムで計算すると、
C= 0.5                    0.           0.        
       0.2268744    0.7039169    0  
       0.0833333         0            0
D= 1.         
       0.4537488  
       0.1666667
N=  - 0.5602077  - 0.7039169    0  
        - 0.2731256  - 0.2960831    0
L=  - 1.1204155  
        - 0.5462512
 となります。上記の連立方程式の解は、xt+1=Cx+Dε,y=-Nx-Lεになるので、
Δm= 0.5 Δmt-1 +ε
=  0.2268744 Δmt-1 + 0.7039169 lt-1 + 0.4537488 ε
=  0.0833333 Δmt-1 + 0.1666667 ε
= 0.5602077 Δmt-1 + 0.7039169 lt-1 + 1.1204155 ε
π= 0.2731256 Δmt-1 + 0.2960831 lt-1 + 0.5462512 ε
 と表すことができます( l,it,の上についている ^, は省略しています)。


Scilab のコード(Generalized Schur method)

theta=2/3;
beta=0.99;
sigma=1;
rhom=0.5;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));


B=[1,0,0,0,0;
-1,1,0,0,0;
0,1,eta,0,0;
0,0,-1/sigma,1,1/sigma;
0,0,0,0,beta];

A=[rhom,0,0,0,0;
0,1,0,0,-1;
0,0,0,1,0;
0,0,0,1,0;
0,0,0,-kap,1];

G=[1;0;0;0;0];

[S,T,Z,dim] = schur(A,B,'d');

Q=(A+B)*Z*inv(S+T);

Z2=Z';
Z21=Z2(4:5,1:3);
Z22=Z2(4:5,4:5);

N=inv(Z22)*Z21;

Q2=Q';
Q21=Q2(4:5,1:3);
Q22=Q2(4:5,4:5);
S22=S(4:5,4:5);
G1=G(1:3);
G2=G(4:5);

L=inv(Z22)*inv(S22)*(Q21*G1+Q22*G2);

B11=B(1:3,1:3);
B12=B(1:3,4:5);
A11=A(1:3,1:3);
A12=A(1:3,4:5);

C=inv(B11-B12*N)*(A11-A12*N);
D=inv(B11-B12*N)*(G1-A12*L);


Scilab のコード(Blanchard and Kahn method)

theta=2/3;
beta=0.99;
sigma=1;
rhom=0.5;
alpha=1/3;
eps=6;
phi=1;
eta=4;
theta2=(1-alpha)/(1-alpha+alpha*eps);
lambda=(1-theta)*(1-beta*theta)*theta2/theta;
kap=lambda*(sigma+(phi+alpha)/(1-alpha));

B=[1,0,0,0,0;
-1,1,0,0,0;
0,1,eta,0,0;
0,0,-1/sigma,1,1/sigma;
0,0,0,0,beta];

A=[rhom,0,0,0,0;
0,1,0,0,-1;
0,0,0,1,0;
0,0,0,1,0;
0,0,0,-kap,1];

G=[1;0;0;0;0];

Z=inv(B)*A;
[R,D1]=spec(Z);
v1=spec(Z);
v2=[v1(1),v1(5),v1(4),v1(3),v1(2)];
D2=diag(v2);
M=[R(1:5,1),R(1:5,5),R(1:5,4),R(1:5,3),R(1:5,2)];
M1=inv(M);
M11=M1(1:3,1:3);
M12=M1(1:3,4:5);
M21=M1(4:5,1:3);
M22=M1(4:5,4:5);
D11=D2(1:3,1:3);
D22=D2(4:5,4:5);

N=inv(M22)*M21;
C=inv(M11-M12*inv(M22)*M21)*D11*(M11-M12*inv(M22)*M21);

GG=inv(M)*inv(B)*G;
G1=GG(1:3);
G2=GG(4:5);

L=inv(M22)*inv(D22)*G2;

D=-inv(M11-M12*inv(M22)*M21)*(D11*M12*inv(M22)*inv(D22)*G2-G1);


 インパルス応答を見る時には、上記のプログラムに続けて(どちらでもいいです)、次のコードを実行します。ショック(貨幣供給のショック)の大きさは、0.0025 です( εが1期のみ 0.0025 増加する)。

n=18;
x=linspace(-1,16,n);
e=zeros(1,n);
m=e;
l=e;
i=e;
y=e;
pi=e;
r=e;
e(2)=0.0025;
for t=1:n
m(t+1)=C(1,1)*m(t)+D(1)*e(t+1);

l(t+1)=C(2,1)*m(t)+C(2,2)*l(t)+C(2,3)*i(t)+D(2)*e(t+1);
i(t+1)=C(3,1)*m(t)+C(3,2)*l(t)+C(3,3)*i(t)+D(3)*e(t+1);
y(t+1)=-N(1,1)*m(t)-N(1,2)*l(t)-N(1,3)*i(t)-L(1)*e(t+1);
pi(t+1)=-N(2,1)*m(t)-N(2,2)*l(t)-N(2,3)*i(t)-L(2)*e(t+1);
end

for t=1:n
r(t)=i(t)-pi(t+1);
end

subplot(2,1,1);
plot(x,y,'-o');
xlabel("Output Gap");
subplot(2,1,2);
plot(x,pi,'-o');
xlabel("Inflation");
zoom_rect([0,0,14,0.003]);


 グラフを描かせるコードは Output gap と Inflation だけを載せています(全部載せると長くなるので)。

3(a)





















3(b)





















3(c)





















2)今回のケースの場合、再帰的に代入する方法では解けません(たぶん)。




プロフィール

沢ひかる

貧乏人。

経済学「部」とは無縁です。

QRコード
QRコード
  • ライブドアブログ