Rbc1.modの解説
金融経済論１塩路1

このスライドの目的• 例を通じてDynareの使い方を体感すること
例を通使 方を体感する• 例はDynareのホームページからとった
例はDynareのホ ムペ ジからとった
Fernandez‐Villaverdeのコードを少しだけ変えたもの。
たもの• RBCモデルを解いてインパルス応答関数を求める。

2

リンク• Dynarepyg
http://www.dynare.org/• ここで分析されているモデルの解説
http://www.dynare.org/documentation‐and‐support/examples/rbc pdf
support/examples/rbc.pdf• オリジナルのコード
http://www.dynare.org/documentation‐and‐support/examples/rbc.zip
3

始める前に（１）• DynareはMatlabに「使われる」ためのソフト。
はl bに「使われる ためのソフト単体では動かない。
• インストールしただけではだめ。
• まずMatlabにDynareの存在を認識してもらわなくてはならない。→パスの設定• 詳しくは竹内紘子氏（横浜国大大学院生）のhttp://masaru.inaba.googlepages.com/Dynare_Primer.pdf
Pidf
参照のこと。
4

始
始める前に（2）前 （ ）• Dynareのファイルは”.mod”という拡張子を用いなくてはならない 通常のいなくてはならない。通常の”.m”ではないのではないので注意。
• 動かすときにはコマンドウィンドウで、例えば>> dynare
drbc1
b 1などとする（拡張子の.modは不要）• ファイル内のすべての行は”;”で終わらなくてはならない。
はならない• 一部で”%”を認識しなくなる。エラーのもと。
5

まず手始めに%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐% 0. これまで作った全てのグラフを閉じなさい%%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
close all;注意！ここで今までのようにclear allを入れないこと。

6変数名 パラメーター名の宣言
変数名、パラメーター名の宣言%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐% 1. 変数とパラメーター名の宣言%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
var y c k i l y_l z; ←内生変数の名前（生産、消費、資本ストック、投資、生産/労働、技術水準）
varexo e; ←外生変数の名前（技術ショック）←外生変数の名前（技術シ ック）
parameters beta psi delta alpha rho;←パラメーターの名前（それぞれの意味は後で）

注：Dynareはモデルを定式化すれば勝手に解いてくれる便利な道具だが、それだけに、どの記号が変数で、どの記号がパラメーターなのか、あらかじめ言っておいてやらねばならない。ここで指定しなかった変数やパラメー
タ が デ の中に出てくるとターがモデルの中に出てくるとDynareはストライキを起こす。
は トライキを起 す7パラメーター値の設定%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐% 2. パラメーター値の設定%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
alpha = 0.33; 資本のシェア
beta = 0.99; 主観的割引因子（1期間後の効用は1%割り引かれる→1期間を1四半期と想定しているらしいことが分かる）
delta = 0.023; 資本減耗率
psi = 1.75; 効用関数における余暇のウェイト
rho = 0.95; 技術水準のAR1パラメーター
技術水準
パ メ タ
sigma = (0.007/(1‐alpha)); 技術ショックの標準偏差（技術水準の標準偏差が0007となるように設定している）

8いよいよモデルを設定%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐% 3. モデル%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
model;(1/c) = beta*(1/c(+1))*(1+alpha*(k^(alpha‐1))*(exp(z(+1))*l(+1))^(1‐alpha)‐delta);
beta*(1/c(+1))*(1+alpha*(k^(alpha 1))*(exp(z(+1))*l(+1))^(1 alpha) delta);
psi*c/(1‐l) = (1‐alpha)*(k(‐1)^alpha)*(exp(z)^(1‐alpha))*(l^(‐alpha));c+i = y;y = (k(‐1)(k(‐1)^alpha)*(exp(z)*l)^(1‐alpha);alpha) (exp(z) l) (1‐alpha);i = k‐(1‐delta)*k(‐1);
y_l = y/l;z = rhorho*z(‐1)+e;z( 1)+e;end;

model;
d l で始まり、end
で始まり
d ; で終わること！！！
式の意味：オイラ 方程式、同時点内の最適化条件（消費VS余暇）、財市場の均衡
式の意味：オイラー方程式
同時点内の最適化条件（消費VS余暇） 財市場の均衡
条件、生産関数、資本ストックの推移、生産労働比率の定義、技術水準のAR1過程
9定常状態の計算%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐% 4. 定常状態の計算定常状態 計算%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐

iinitval;i l 以下で数値計算の初期値を与える
k = 9;
c = 0.76;
l = 0.3;03
z = 0;
e = 0;
end; 初期値の設定の終わりを告げている。これを忘れないこと。
初期値の設定の終わりを告げている これを忘れないこと
steady; 上の初期値の組み合わせからスタートして、すべての変数の定常値を探しなさい。
数の定常値を探しなさい
初期値を与えなければDynareは自動的に全ての変数について0を初期値として解の探索を開始する。それでも解が見つかればいいのだが、モデルが大きかったりすると見つけられないこともある。モデルの均衡条件とは整合的ではない領域にデ条
Dynareが行ってしまった場合、エラーで止まってしまうこともよくある。たとえばkの定常値を探索する過程で、Dynareがkに負の値を代入してしまった時など。（この問題を阻止するのに 番いいのは この問題が起こり得ないように工夫することであ題を阻止するのに一番いいのは、この問題が起こり得ないように工夫することである。これについてはまたそのうち。）
10

インパルス応答関数の計算%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐% 5. インパルス応答関数の計算と図示%‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
shocks; どの外生変数にどれだけの大きさのショックを与えるか、をここで指定
var e=sigma ; ここではeという外生変数にsigmaだけの大きさのショックを与える
end; やはりこのend;を忘れないこと
stoch_simul(irfstoch
simul(irf=20)20) ; モデルを定常状態の周りで線形近似した上で、20期後までのインパルス応答関数を求めなさい。

このように1行でインパルス応答関数の計算がすんでしまうのが、便利なところである。

11