Dynare事始め&RBCモデル
ブログのネタとしてはどうかとも思いますが(笑)、御勉強日記ということで。一昨日やっとMATLAB(R2007b)とDynare version4を入手しまして、加藤さんの著書にあるRBCモデル(現代マクロ経済学講義p228)を見よう見まねで作ってみました(汗。以下、インストール等の手順とDynareの起動方法も含めて備忘録。誤り等ございましたらお知らせください。
1.MATLABとDynareのインストール
MATLABのインストールは別段問題なくソフトの説明を読みつつ、setup.exeを起動して終了。Dynareはヴァージョン4をコピーしました*1。説明ではcドライブのすぐ下に保存することを前提にしているのでそのほうが分かり易い。一応、dynare_v4というフォルダをつくりcドライブに格納しました。
2.Dynareの起動
Dynareのフォルダの中には、各種コード類とともにtestファイルが入っています。当たり前ですがMATLABとDynareをPCにインストール&保存しただけではDynareのファイル(.mod)を用いたシミュレーションは出来ないという点です。必要なのは以下の二点。
(1)パス設定をする。
(2)コマンドウィンドウでコマンドを入れる。
(1)については、MATLABを立ち上げて、ファイル(F)からパス設定を選ぶとウィンドウが表示されるので、「フォルダを追加」ボタンを選んで、c:\dynare_v4\matlabを追加します。追加できると、MATLABサーチパスに表記されるので、パス設定のウィンドウの保存を押して終了。以上で良い様です。
(2)については、コマンドウィンドウで以下のコマンドを入力して、リターンキーを押す。
例えば、rbc.modというdynareのモデルファイルを計算したい場合には、
dynare rbc.mod
もしくは
dynare rbcと入力する。 要は、dynare モデルファイル名(.modをつけてもつけなくても良い)ということ。
3.RBCモデルのDynareでのシミュレーション
(1)RBCモデル
加藤(2006)「現代マクロ経済学講義」東洋経済の基本RBCモデル(228頁)をDynareのmodファイルに記述し、シミュレーションしてみました。加藤(2006)のモデル式は以下のとおり。モデル式は6本なのでモデルの中で定まる内生変数は、l w c r k zの6つ。
外生変数はe、zstarは定数なのでパラメータとしてみることができます。
基本RBCモデル
(2)以上のモデルのDynareの記述
rbc.modとして、以下の形でmodファイルを作成してみました。設定したパラメータは、加藤(2006)に記載されているsigma=1.5,alpha=0.3,myu=1,beta=0.99,delta=0.025,lamda=2,rho=0.8となります。初期値の導出は、別途.mファイルを作って加藤(2006)のsteady state procを利用して計算の上で与えています。
尚、(1)のモデル式をそのまま記載するとBK条件を満たさずエラーとなります。それは、(3)式がt+1期の資本ストックを求める式になっていること、(4)式がt+1期の技術レベルを求める式になっているためです。この二式の時点を一つづつずらして記述すると、モデルは解けることになります。要は、モデルの始期をtとした場合、当期の資本ストックと技術レベルを既知として、消費と労働を解くという図式なので、資本ストックと技術レベルの式がt+1期について定式化されているのは不味いわけです。
rbc.mod
// RBC Model, 加藤(2006) // Copyright?? (c) 2007 econ-econome //内生変数の記述 var c l k r w z; //外生変数の記述 varexo e ; //パラメータの記述 parameters sigma alpha myu beta delta lamda rho zstar sig; sigma = 1.5; alpha = 0.3; myu = 1; beta = 0.99; delta = 0.025; lamda = 2; rho = 0.8; zstar =1.0; sig =0.5; //モデル式の記述 model; l^lamda = w/(myu*c^alpha); c^(-sigma)=beta*(1+r(+1))*c(+1)^(-sigma); k =(1-delta)*k(-1)+z(-1)*k(-1)^alpha*l(-1)^(1-alpha)-c(-1); z=rho*z(-1)+(1-rho)*zstar+e; r=z*alpha*(k/l)^(alpha-1); w=z*(1-alpha)*(k/l)^alpha; end; //初期値の指定 initval; c= 1.4456; l=1.3125 ; z=zstar; k =166.7383; r =0.0101; w =2.9942; e=0; end; //初期値を元に定常均衡値を計算し、さらにBK条件のチェック steady; check; //インパクトの設定 shocks; var e = sig^2; end; // シミュレーションの実行 stoch_simul(irf=50) c l k r w z;
(4).modファイルの実行とシミュレーション
外生変数eをsigの2乗分だけ上昇させた場合の内生変数の変化は以下のとおり。技術レベル(生産性)を上昇させることで、消費、資本は緩やかに上昇したのち、逓減していく様子がわかります。これは消費の平滑化を反映するものです。労働の変化は一旦大きく上昇した後、減少していく形となっており、技術レベルの変化と同じ様に動いていきます。生産性が高まった時期により多くの労働投入を行うという意時点間の代替効果が働いたとみることが出来るのでしょう。
*1:矢野さんありがとうございました