お勉強メモ

経済学・計量経済学・統計学などのお勉強メモです。

経済学メモ:Python,IS-MP-PC

・本稿の内容
神戸大学経済学研究科の春山鉄源教授の講義ページ
簡単なIS-MP-PCモデルのPythonのコードが掲載されていました。
コードの書き方とショックの値を変えて自分で実行してみました。
非常に簡単なモデルではありますが、
実行結果が出力されるとなんだか嬉しいですね。
分かりやすい資料を公開してくださっている春山教授に感謝です<(_ _)>

・本文
Ⅰ.モデル(詳しくは春山鉄源教授の講義ページ参照)



y_t=y^*+u_t-av_t    (IS-MP)\\
\pi_t=\pi_{t-1}+b(y_t-y^*)+e_t   (PC)\\
y_t:産出量,y^*:定常状態の産出量\\
\pi_t:インフレ率,u_t:IS曲線のショック,v_t:MP曲線のショック,e_t:PC曲線のショック

下図はある期に負のMP曲線のショックv_t(<0)が発生した場合の図である。
u_t=0,e_t=0はすべてのtで0とする。

・①の動き
ある期において、負のMP曲線のショック(名目利子率低下)により、IS-MP曲線が右シフトし、
産出量とインフレ率が上昇する。
・②、③の動き
次期において負のMP曲線のショックの影響がなくなり、IS-MP曲線が元の位置に戻る。
前期においてインフレ率が上昇したため、PC曲線が上方にシフトする。インフレ率の上昇に伴い、
名目利子率が上昇する。
 
Ⅱ.サンプルコード

t=1期において、1単位の負のMP曲線ショック(v_t=-1)を発生させてみる。
※初期時点のインフレ率、定常状態の産出量・実質金利はそれぞれ適当に、
 2,100,2と置いた。

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