・本稿の内容
神戸大学経済学研究科の春山鉄源教授の講義ページに
簡単なIS-MP-PCモデルのPythonのコードが掲載されていました。
コードの書き方とショックの値を変えて自分で実行してみました。
非常に簡単なモデルではありますが、
実行結果が出力されるとなんだか嬉しいですね。
分かりやすい資料を公開してくださっている春山教授に感謝です<(_ _)>
・本文
Ⅰ.モデル(詳しくは春山鉄源教授の講義ページ参照)
下図はある期に負のMP曲線のショックが発生した場合の図である。
※,はすべてので0とする。
・①の動き
ある期において、負のMP曲線のショック(名目利子率低下)により、IS-MP曲線が右シフトし、
産出量とインフレ率が上昇する。
・②、③の動き
次期において負のMP曲線のショックの影響がなくなり、IS-MP曲線が元の位置に戻る。
前期においてインフレ率が上昇したため、PC曲線が上方にシフトする。インフレ率の上昇に伴い、
名目利子率が上昇する。
Ⅱ.サンプルコード
期において、1単位の負のMP曲線ショック()を発生させてみる。
※初期時点のインフレ率、定常状態の産出量・実質金利はそれぞれ適当に、
,,と置いた。
import matplotlib.pyplot as plt import japanize_matplotlib p_0 = 2 #初期時点のインフレ率 y_s = 100#定常状態の産出量 r_s = 2#定常状態の実質金利 a=1 b=1 list_pt=[]#インフレ率リスト list_yt=[]#産出量のリスト list_it=[]#名目金利のリスト shock_is_list = [0]*7#IS曲線のショック shock_mp_list = [0]*7#MP曲線のショック shock_pc_list = [0]*7#PC曲線のショック shock_mp_list[1]=-1#1期目に-1単位のMP曲線のショックが発生 #PC def pc(t): if t==0: return p_0 else: return pc(t-1) + b*(shock_is_list[t]-a*shock_mp_list[t])+shock_pc_list[t] #IS-MP def gdp(t): if t==0: return y_s else: return y_s + shock_is_list[t]-a*shock_mp_list[t] #名目利子率 def interest(t): return r_s+list_pt[t]+shock_mp_list[t] #結果を格納 for t in range(0,7): list_pt.append(pc(t)) list_yt.append(gdp(t)) list_it.append(interest(t)) #グラフ描画 result=[list_pt,list_it,list_yt,shock_mp_list] time = list(range(0,7)) glaphcolor = ["blue","green","red","black"] glaphname=['インフレ率','名目利子率','産出量','名目利子率ショック'] fig = plt.figure() for i in range(0,4): ax = fig.add_subplot(2, 2, i+1) ax.plot(time, result[i],color = glaphcolor[i]) ax.set_title(glaphname[i]) plt.tight_layout() plt.show()
Ⅲ.実行結果
1.モデルの図で示した各変数の動きと同様の結果が出力されている。
参考サイト
・春山鉄源教授の講義ページ
py4macro.github.io