好奇心の横断歩道を創る!

自分の思考をラバーダック・デバッグするためのブログ

英語WikipediaのSFCモデルの実例をもとに、連続時間のSFCモデルを作り、解析的に解く

この記事では、解析的に解くことができるストック・フロー一貫モデルの例を示す。シンプルなモデルを作り、実際に解く。

1. Wikipediaのモデル

出典は、

en.wikipedia.org

取引フロー表は

家計 企業 政府 合計
消費  -C  +C  0
政府支出  +G  -G  0
[メモ:GDP] [  +Y ]
賃金  +W  -W  0
 -T  +T  0
貨幣の変化  -\Delta H_h  +\Delta H_s  0
合計  0  0  0

Wikipediaモデルを、以下のように、一部修正。

  • 循環参照がなくなるように式を修正

~~ C = \alpha_1 Y + \alpha_2 H_{-1} C = \alpha_1 Y_{-1} + \alpha_2 H_{-1}

  • 変数名の統一

~~ Y_d YD

1.1. モデルの式一覧

1.1.1. 行動方程式

経済部門がどのようにふるまうかを記述する仮定。

  •  T = \theta Y
  •  C = \alpha_1 Y_{-1} + \alpha_2 H_{-1}
1.1.2. 会計恒等式

会計的な整合性を表す式

  •  -C + W - T - \Delta H_h = 0
  •  C + G - W = 0
  •  -G + T + \Delta H_s = 0
  •  - \Delta H_h + \Delta H_s = 0
  •  H = \Delta H_h + H_{-1} または  H = \Delta H_s + H_{-1}
1.1.3. 定義式

変数の定義のための式

  •  Y = C + G

~~ちなみに、会計恒等式で書いた  C+G-W=0 と連立させると、  Y = W である

  •  YD = Y - T

1.2. 式の計算順

1.  C = \alpha_1 Y_{-1} + \alpha_2 H_{-1}
2.  Y = C + G
3.  T = \theta Y
4.  YD = Y - T
5.  W = C + G
~~  C + G - W = 0 W について解いたもの
6.  \Delta H_s = G - T
~~  -G + T + \Delta H_s = 0 \Delta H_s について解いたもの
7.  H = \Delta H_s + H_{-1}
8.  \Delta H_h = YD - C
~~  -C + W - T - \Delta H_h = 0 \Delta H_h について解いたもの。  W=Y YD=Y-T も用いている
9.  - \Delta H_h + \Delta H_s = 0
~~ これが満たされているかどうかを確認し、会計的一貫性が維持されていることを確認する

これをこの記事では連続時間の微分方程式体系に書き直し、解析的に解いてみる(外生変数・初期値・パラメータを用いて、全ての内生変数を時間の関数として書く)

1.3. シミュレーションの様子

ちなみに、このWikipediaモデルをシミュレーションして、Wikipediaのグラフを再現した過去記事がこちら

rokabonatttsu.hatenablog.com


2. Wikipediaモデルを連続時間化(微分方程式体系化)、解析的に解けるように成型する

解析的に解けるモデルを作るには、微分方程式体系で書くのが王道だと思う。ということで連続時間化。式の計算順は可変になると考えて良いと思う。

2.1. モデルの式一覧

  •  C = \alpha_1 Y + \alpha_2 H

~~差分方程式体系では、  C = \alpha_1 Y_{-1} + \alpha_2 H_{-1}

  •  Y = C + G
  •  T = \theta Y
  •  YD = Y - T
  •  W = C + G
  •  \frac{dH}{dt} = G - T

~~差分方程式体系では、  \Delta H_s = G - T

差分方程式体型の時に用いた  H = \Delta H_s + H_{-1} は必要ない。

3. 解析的に解けるモデルを解いてみる

全ての内生変数を、外生変数やパラメータや初期値だけで記述する。

3.1. 外生変数とパラメータの一覧

  •  G
  •  \alpha_1
  •  \alpha_2
  •  \theta

3.2. 初期値の設定

  •  H_{(t=0)} = H_0
  •  C_{(t=0)} = C_0 = \alpha_1 Y_0 + \alpha_2 H_0
  •  Y_{(t=0)} = Y_0 = C_0 + G
  •  T_{(t=0)} = T_0 = \theta Y_0
  •  YD_{(t=0)} = YD_0 = (1 - \theta)(C_0 + G)

を満たすように、 C_0, Y_0, T_0, YD_0 を定義する。

  •  C_0 = \frac{\alpha_1 G + \alpha_2 H_0}{1 - \alpha_1}
  •  Y_0 = \frac{\alpha_1 G + \alpha_2 H_0}{1 - \alpha_1} + G
  •  T_0 = \theta (\frac{\alpha_1 G + \alpha_2 H_0}{1 - \alpha_1} + G)
  •  YD_0 = (1 - \theta) (\frac{\alpha_1 G + \alpha_2 H_0}{1 - \alpha_1} + G)

3.3. モデルの式の一覧

  •  C = \alpha_1 Y + \alpha_2 H
  •  Y = C + G
  •  T = \theta Y
  •  YD = Y - T
  •  W = C + G
  •  \frac{dH}{dt} = G - T

3.4. 内生変数を解く

 C = \alpha_1 Y + \alpha_2 H = \alpha_1 (C + G) + \alpha_2 H

 C = \frac{\alpha_1 G + \alpha_2 H}{1 - \alpha_1}

 Y = \frac{\alpha_1 G + \alpha_2 H}{1 - \alpha_1} + G

 T = \theta (\frac{\alpha_1 G + \alpha_2 H}{1 - \alpha_1} + G)

 YD = (1 - \theta) (\frac{\alpha_1 G + \alpha_2 H}{1 - \alpha_1} + G)

 W=Y=\frac{\alpha_1 G + \alpha_2 H}{1 - \alpha_1} + G

ほかの全ての内生変数が、Hの関数の形に書き直された。

 \frac{dH}{dt} = G - \theta (\frac{\alpha_1 G + \alpha_2 H}{1 - \alpha_1} + G) = (1 - \theta)G - \theta \frac{\alpha_1 G}{1 - \alpha_1} - \theta \frac{\alpha_2}{1 - \alpha_1} H

Hについての一階の微分方程式が出てきたので、これを解く。微分方程式の解き方は趣旨と外れるので、ここでは結果だけ書く。私はラプラス変換したりした。計算が間違っていなければ、

 H = H_0 \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) - G (\frac{1-\theta}{\theta} \frac{1-\alpha_1}{\alpha_2} - \frac{\alpha_1}{\alpha_2}) \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) + G \{\frac{1-\theta}{\theta} \frac{1-\alpha_1}{\alpha_2} - \frac{\alpha_1}{\alpha_2} \}

あとはHの関数として書かれた内生変数に、Hを代入するだけ。

 C = \frac{\alpha_2 H_0 \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) - G \{\frac{1-\theta}{\theta} (1-\alpha_1) - \alpha_1\} \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) + G \frac{1-\theta}{\theta} (1-\alpha_1)}{1 - \alpha_1}

 Y = \frac{\alpha_2 H_0 \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) - G \{\frac{1-\theta}{\theta} (1-\alpha_1) - \alpha_1\} \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t)}{1 - \alpha_1} + \frac{G}{\theta}

 T = \theta [\frac{\alpha_2 H_0 \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) - G \{\frac{1-\theta}{\theta} (1-\alpha_1) - \alpha_1\} \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t)}{1 - \alpha_1} + \frac{G}{\theta}]

 YD = (1 - \theta)[\frac{\alpha_2 H_0 \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) - G \{\frac{1-\theta}{\theta} (1-\alpha_1) - \alpha_1\} \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t)}{1 - \alpha_1} + \frac{G}{\theta}]

 W = \frac{\alpha_2 H_0 \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t) - G \{\frac{1-\theta}{\theta} (1-\alpha_1) - \alpha_1\} \exp(-\theta \frac{\alpha_2}{1-\alpha_1}t)}{1 - \alpha_1} + \frac{G}{\theta}





 t → \infty のとき、

 C = \frac{1-\theta}{\theta} G

 Y = \frac{G}{\theta}

 T = G

 YD = \frac{1 - \theta}{\theta} G

 W = \frac{G}{\theta}

 H = G \{\frac{1-\theta}{\theta} \frac{1-\alpha_1}{\alpha_2} - \frac{\alpha_1}{\alpha_2} \}

に収束していく。