1 付加価値
/マクロ経済学
【問題】
ある1年で、みかん農家は200億円のみかんを生産し、そのうち150億円分をジュース製造業者に販売した。
ジュース製造業者は、それをもとに280億円のみかんジュースを生産し、小売業者に全て販売した。
小売業者は、それを300億円で消費者に販売した。
この時、小売業者の1年間の付加価値はいくらか。
【解説】
付加価値 = 生産額 − 中間投入
小売業者の場合、生産額 = 300億円、中間投入 = 280億円
よって、付加価値 = 300 − 280 = 20億円
【関連問題】
- 付加価値という概念はなぜ重要なのか。
- ジュース製造業者の付加価値はいくらか。(答:280 − 150 = 130億円)
- みかん50億円を小売に、150億円をジュース業者に販売。
ジュース業者は280億円のジュースを生産。
小売業者は、みかんを60億円、ジュースを300億円で消費者に販売。
このとき小売業者の付加価値はいくらか。
(答:360 − (50+280) = 30億円)
2 GDP の概念
/マクロ経済学
【問題】
GDPとは何か説明しなさい。
【解説】
GDP = Gross Domestic Product(国内総生産)
一定期間に国内で新たに生み出された付加価値の総計。
類似概念:
- GNP(Gross National Product, 国民総生産)
国民が生み出した付加価値の総計(国内にいる外国人・外国企業は含まない) - GNI(Gross National Income, 国民総所得)
GNPを所得面から捉えた概念
【関連問題】
国民経済計算に関する次の記述のうち妥当なものはどれか。
イ) 国内総生産は、国内生産+海外投資収益である。
ロ) 国民総生産は、国内生産−外国人の国内分を差し引いたものである。
ハ) 国内総生産には持ち家の帰属家賃が含まれる。 ← 正しい
ニ) 在庫増加は国民総支出に含まれない。
ホ) 国民総支出 = 最終消費支出+総固定資本形成+在庫品増加+輸入
3 GDP の構成要素
/マクロ経済学
【問題】
GDPの支出項目(構成要素)を説明しなさい。
【解説】
GDP = 民間最終消費支出+民間住宅+民間企業設備+民間在庫品増加
+ 政府最終消費支出+公的固定資本形成+公的在庫品増加
+ (輸出−輸入)
例:2010年名目GDP(481兆7733億円)の内訳
- 民間最終消費支出:285兆円
- 民間住宅:13兆円
- 民間企業設備:62兆円
- 政府最終消費支出:95兆円
- 公的固定資本形成:22兆円
- 純輸出:6兆円
まとめ:
民需 = 民間最終消費+民間住宅+民間設備+民間在庫
公需 = 政府消費+公的設備+公的在庫
内需 = 民需+公需
外需 = 輸出−輸入
【関連問題】
公的固定資本形成とは何か説明せよ。
(答:政府が道路・橋・公共施設などのインフラ整備に投資すること)
4 三面等価の原則
/マクロ経済学
【問題】
三面等価の原則とは何か。
【解説】
三面等価の原則とは:
「GDP(国内総生産)は、生産面・分配面・支出面のどこから測っても同じになる」
という原則。
(1) 生産面のGDP:
一定期間に国内で生み出された付加価値の総額
(2) 分配面のGDP:
雇用者所得+営業余剰・混合所得+固定資本減耗+(間接税−補助金)
(3) 支出面のGDP:
民間消費+政府消費+国内総固定資本形成+在庫増加+純輸出
在庫の増減を調整項目として含めることで、3つが一致する。
【関連問題】
- “意図せざる在庫の変化”とは何か。
→ 企業が販売予定より多く生産して残った在庫。 - 例題:
部品会社が120万円分を生産。自動車会社は100万円分を購入し、自動車を150万円分販売。
→ GDP = 部品120 + 自動車150 − 中間投入100 = 170万円
意図せざる在庫増加 = 20万円
# ============================================
# マクロ経済学 基礎計算 Pythonサンプル
# ============================================
# 1. 付加価値の計算
def added_value(output, input_cost):
"""付加価値 = 生産額 - 中間投入"""
return output - input_cost
# 例:小売業者(生産額300億円, 中間投入280億円)
print("小売業者の付加価値 =", added_value(300, 280), "億円")
# → 20億円
# 2. GDPの概念 (支出面からの計算)
def gdp_expenditure(consumption, housing, investment, inventory,
gov_consumption, gov_investment, gov_inventory,
export_, import_):
"""GDP = 民需 + 公需 + (輸出 - 輸入)"""
private_demand = consumption + housing + investment + inventory
public_demand = gov_consumption + gov_investment + gov_inventory
domestic_demand = private_demand + public_demand
foreign_demand = export_ - import_
return domestic_demand + foreign_demand
# 2010年の名目値(兆円)
GDP = gdp_expenditure(
consumption=285,
housing=13,
investment=62,
inventory=-1.5, # 民間在庫品増加
gov_consumption=95,
gov_investment=22,
gov_inventory=-0.6,
export_=73,
import_=67
)
print("2010年名目GDP =", round(GDP, 1), "兆円")
# → 約481.0兆円
# 3. 三面等価の原則チェック
def gdp_three_sides(value_added, income, expenditure):
"""生産・分配・支出の三面が一致するかを確認"""
return value_added == income == expenditure
# 仮の数値例
value_added = 170 # 生産面
income = 170 # 分配面
expenditure = 170 # 支出面
print("三面等価が成立しているか?", gdp_three_sides(value_added, income, expenditure))
# → True
# 4. 意図せざる在庫変化を含めたGDP計算
def gdp_with_inventory(parts_output, parts_sold, car_output):
"""部品と自動車の例によるGDP計算"""
unintended_inventory = parts_output - parts_sold
gdp = parts_output + car_output - parts_sold
return gdp, unintended_inventory
gdp, inv = gdp_with_inventory(parts_output=120, parts_sold=100, car_output=150)
print("GDP =", gdp, "万円")
print("意図せざる在庫増加 =", inv, "万円")
# → GDP = 170万円, 在庫増加 = 20万円
1. 限界の概念(MPC と MPS)
【問題】
限界貯蓄性向とは何か。また、限界貯蓄性向が 0.6 の時、限界消費性向はいくらか。
【解説】
- 限界消費性向(MPC)= 所得が 1 増えたときに消費がどれだけ増えるか。
- 限界貯蓄性向(MPS)= 所得が 1 増えたときに貯蓄がどれだけ増えるか。
基本式:
MPC + MPS = 1
計算:
MPS = 0.6 → MPC = 1 − 0.6 = 0.4
【関連問題】
MPC = 0.3 のとき、MPS = 1 − 0.3 = 0.7
2. 乗数プロセスと派生需要
【問題】
限界消費性向が 0.7、初期所得増加が 50 億円。
二次派生需要と三次派生需要を求めよ。
【解説】
二次派生需要 = 初期需要 × MPC
= 50 × 0.7 = 35 億円
三次派生需要 = 二次派生需要 × MPC
= 35 × 0.7 = 24.5 億円
【関連問題】
MPC = 0.4、初期所得増加 = 100 億円
→ 二次派生需要 = 100 × 0.4 = 40 億円
MPC = 0.4、初期所得増加 = 50 億円
→ 二次派生需要 = 20 億円
→ 三次派生需要 = 20 × 0.4 = 8 億円
3. 乗数の計算
【問題】
MPC = 0.8 のとき、乗数はいくらか。
【解説】
乗数 k = 1 / (1 − MPC)
計算:
k = 1 / (1 − 0.8) = 1 / 0.2 = 5
→ 初期需要増加 A が 1 のとき、最終的に所得は 5 倍に拡大。
【関連問題】
一般式:MPC = c のとき
k = 1 / (1 − c)
4. 消費関数 1
【問題】
C = 0.8Y + 40
このとき限界消費性向と、Y=0 のときの消費はいくらか。
【解説】
- 限界消費性向(MPC)= Y の係数 = 0.8
- 独立的消費(Y=0 のとき)= 40
【関連問題】
独立的消費の例:最低限の食費、医療費、住居費など(所得に依存しない部分)。
5. 消費関数 2(消費関数と貯蓄関数)
【問題】
C = cY + A
のとき、貯蓄関数を求めよ。
【解説】
Y = C + S より
S = Y − C
= Y − (cY + A)
= (1 − c)Y − A
→ 消費関数:C = cY + A
→ 貯蓄関数:S = (1 − c)Y − A
【関連問題】
45°線より右側の領域では、Y > C となるので S > 0 (=貯蓄超過)。
45°線より左側では S < 0(=貯蓄不足)。
# --- Marginal Propensities ---
def calc_mpc_mps(mps):
mpc = 1 - mps
return mpc, mps
# Example: if MPS = 0.6
mpc, mps = calc_mpc_mps(0.6)
print("MPC =", mpc, "MPS =", mps)
# --- Multiplier Process (Derived Demands) ---
def derived_demand(initial_income, mpc, n):
"""
Calculate the nth derived demand.
Example: n=2 → second derived demand
n=3 → third derived demand
"""
return initial_income * (mpc ** (n-1))
initial_income = 50 # billion yen
mpc = 0.7
second = derived_demand(initial_income, mpc, 2)
third = derived_demand(initial_income, mpc, 3)
print("Second derived demand =", second)
print("Third derived demand =", third)
# --- Multiplier ---
def multiplier(mpc):
return 1 / (1 - mpc)
print("Multiplier (MPC=0.8):", multiplier(0.8))
# --- Consumption and Saving Functions ---
def consumption(Y, c, A):
"""Consumption function: C = cY + A"""
return c*Y + A
def saving(Y, c, A):
"""Saving function: S = (1-c)Y - A"""
return (1-c)*Y - A
# Example: C = 0.8Y + 40
c, A = 0.8, 40
Y = 100
print("Consumption at Y=100:", consumption(Y, c, A))
print("Saving at Y=100:", saving(Y, c, A))
10 消費関数 3
/マクロ経済学
【問題】
消費関数が C=0.7Y+400 のとき、
- 所得 Y=1600 のときの貯蓄はいくらか。
- 所得 Y=2000 のときの貯蓄はいくらか。
さらに、それぞれの平均消費性向(APC)と平均貯蓄性向(APS)を求めよ。
【解説】
C = 0.7Y + 400
S = Y − C
-
Y=1600
C=0.7×1600+400=1520
S=1600−1520=80
APC=1520/1600=0.95
APS=80/1600=0.05 -
Y=2000
C=0.7×2000+400=1800
S=2000−1800=200
APC=1800/2000=0.9
APS=200/2000=0.1
→ 所得が増加すると、APC は低下し、APS は上昇する。
限界消費性向 = 0.7(一定)、限界貯蓄性向 = 0.3(一定)。
11 消費関数 4
/マクロ経済学
【問題】
C=0.8Y+40
- 所得が400から500に増加したとき、消費はいくら増加するか。
- 消費が200から232に増加したとき、所得はいくら増加するか。
【解説】
-
Y=400 → C=0.8×400+40=360
Y=500 → C=0.8×500+40=440
消費増加=440−360=80 -
C=200 → 200=0.8Y+40 → Y=200
C=232 → 232=0.8Y+40 → Y=240
所得増加=40
12 均衡所得の決定(閉鎖経済)1
/マクロ経済学
【問題】
需要が C+I+G で構成されるとき、均衡所得の条件式はどう表されるか。
【解説】
供給=Y
需要=C+I+G
均衡条件:Y=C+I+G
・Y>C+I+G → 超過供給 → Y減少
・Y<C+I+G → 超過需要 → Y増加
(注)三面等価の原則の Y=C+I+G は「事後的恒等式」、ここでの式は「意図された投資」に基づく均衡条件。
13 均衡所得の決定(閉鎖経済)2
/マクロ経済学
【問題】
C=0.9Y+14, I=13, G=26 のとき、均衡所得 Y* を求めよ。
【解説】
均衡式:Y=C+I+G
Y=0.9Y+14+13+26
Y−0.9Y=53
0.1Y=53
Y=530
→ 均衡所得 Y* = 530
14 均衡所得の決定(閉鎖経済)3
/マクロ経済学
【問題】
C=0.5Y+30, I=30, G=25 から、投資が6減少したとき、均衡所得はいくら減少するか。
【解説】
乗数 k=1/(1−c)=1/(1−0.5)=2
所得減少=乗数×投資減少=2×6=12
→ 均衡所得は12減少
15 均衡所得の決定(閉鎖経済)4
/マクロ経済学
【問題】
C=0.5Y+30, I=30, G=25 のとき、完全雇用所得 Yf=200 を実現するには政府支出 G をいくらにすればよいか。
【解説】
均衡式:Y=(0.5Y+30)+30+25
Y−0.5Y=85
0.5Y=85 → Y=170
完全雇用所得 Yf=200 → 追加で30必要
乗数 k=2 → 需要増加=30/2=15
G=25+15=40
→ 政府支出を40にすれば完全雇用所得200を実現。
# Macroeconomics Functions in Python
# Topics: Consumption Function, Saving, APC/APS, Equilibrium Income
# --- Problem 10: Consumption Function 3 ---
def consumption_function(Y):
"""Consumption function: C = 0.7Y + 400"""
C = 0.7 * Y + 400
S = Y - C
APC = C / Y
APS = S / Y
return {"Income": Y, "Consumption": C, "Saving": S, "APC": APC, "APS": APS}
print("Problem 10:")
for Y in [1600, 2000]:
print(consumption_function(Y))
# --- Problem 11: Consumption Function 4 ---
def consumption_change(Y1, Y2):
"""Consumption increase when income changes"""
C1 = 0.8 * Y1 + 40
C2 = 0.8 * Y2 + 40
return C2 - C1
def income_change(C1, C2):
"""Income increase when consumption changes"""
Y1 = (C1 - 40) / 0.8
Y2 = (C2 - 40) / 0.8
return Y2 - Y1
print("\nProblem 11:")
print("Consumption increase (Y:400→500):", consumption_change(400, 500))
print("Income increase (C:200→232):", income_change(200, 232))
# --- Problem 12: Equilibrium Condition ---
print("\nProblem 12:")
print("Equilibrium condition: Y = C + I + G")
# --- Problem 13: Equilibrium Income 2 ---
def equilibrium_income(C_params, I, G):
"""Solve equilibrium income given consumption function C = cY + A"""
c, A = C_params
# Y = cY + A + I + G
Y = (A + I + G) / (1 - c)
return Y
print("\nProblem 13:")
Y_star = equilibrium_income((0.9, 14), I=13, G=26)
print("Equilibrium income Y* =", Y_star)
# --- Problem 14: Investment Reduction ---
def income_change_due_to_investment(c, delta_I):
"""Income change from investment change, using multiplier"""
k = 1 / (1 - c)
return k * delta_I
print("\nProblem 14:")
delta_Y = income_change_due_to_investment(c=0.5, delta_I=-6)
print("Decrease in equilibrium income =", delta_Y)
# --- Problem 15: Full Employment Income ---
def required_government_spending(C_params, I, G, Y_full):
"""Find new G to achieve full employment income"""
c, A = C_params
Y_eq = equilibrium_income(C_params, I, G)
gap = Y_full - Y_eq
k = 1 / (1 - c)
delta_G = gap / k
return G + delta_G
print("\nProblem 15:")
new_G = required_government_spending((0.5, 30), I=30, G=25, Y_full=200)
print("Government spending required =", new_G)
16 均衡所得の決定(開放経済)1
/マクロ経済学
【問題】
需要が C, I, G, X(輸出), M(輸入)で構成されるとき、均衡所得の条件式を示せ。
【解説】
閉鎖経済: Y = C + I + G
開放経済では輸出をプラス、輸入をマイナスで調整する。
均衡条件:
Y = C + I + G + X − M
純輸出 NX = X − M を用いれば、
Y = C + I + G + NX
【関連問題】
- 内需とは何か。→ C + I + G
- 外需とは何か。→ X − M (純輸出)
17 均衡所得の決定(開放経済)2
/マクロ経済学
【問題】
輸入関数 M = 0.2Y + 40 のとき、限界輸入性向と Y=500 の輸入額を求めよ。
【解説】
・限界輸入性向 = Y の係数 = 0.2
・Y=500 のとき
M = 0.2×500 + 40 = 100 + 40 = 140
【関連問題】
- 所得が増えると輸入量はどう変化するか。→ 所得に比例して増加。
- 限界輸入性向とは何か。→ 所得1増加あたり輸入が増える割合。
- M=0.4Y+B, Y:320→370
増加分 = 0.4×(370−320) = 20
18 均衡所得の決定(開放経済)3
/マクロ経済学
【問題】
C=0.6Y+30, M=0.1Y+20, I=40, G=20, X=50 のとき、乗数はいくらか。
【解説】
一般式: 乗数 k = 1 / (1 − c + m)
c = 限界消費性向 = 0.6
m = 限界輸入性向 = 0.1
k = 1 / (1 − 0.6 + 0.1) = 1 / 0.5 = 2
【関連問題】
MPC=0.4, MPM=0.2 のとき
k = 1 / (1 − 0.4 + 0.2) = 1 / 0.8 = 1.25
19 物価と実質値
/マクロ経済学
【問題】
名目GDP、実質GDP、GDPデフレータの関係式を示せ。
【解説】
・GDPデフレータ = 名目GDP ÷ 実質GDP × 100
・実質GDP = 名目GDP ÷ (GDPデフレータ/100)
・名目GDP = 実質GDP × (GDPデフレータ/100)
実質GDPは物価変動を除いた生産量を測るため、経済福祉の指標として有効。
【関連問題】
- GDPデフレータとは? → 名目GDPと実質GDPの比率から求める物価指数。
- なぜ名目GDPではなく実質GDPを使うか? → 物価変動の影響を除き、実際の生産能力を測るため。
- 名目GDEと実質GDEはどちらが大きいか? → 物価が上昇すると名目GDPの方が大きくなる。交差は基準年。
20 投資関数
/マクロ経済学
【問題】
企業が投資計画 A〜E を検討。利子率 r=6% のとき実行する投資額はいくらか。
投資計画(費用・収益):
A:40→43, B:50→52, C:70→74, D:90→95, E:120→128
【解説】
収益率 = (収益−費用)/費用
A: (43−40)/40 = 7.5%
B: (52−50)/50 = 4%
C: (74−70)/70 ≈ 5.7%
D: (95−90)/90 ≈ 5.5%
E: (128−120)/120 ≈ 6.6%
利子率 r=6% のとき、収益率>6% は A,E。
投資額 = 40+120 = 160
利子率 r=7% のとき、残るのは A のみ。投資額=40
→ 投資は利子率の減少関数。
# =======================================
# Macroeconomics Problems #16–20
# Python Implementation (with English comments)
# =======================================
# 16. Equilibrium income (open economy)
def equilibrium_open(C, I, G, X, M):
"""
Y = C + I + G + X - M
"""
return C + I + G + X - M
# Example:
Y16 = equilibrium_open(C=100, I=50, G=30, X=40, M=20)
print("Q16 Example: Equilibrium income =", Y16)
# 17. Import function
def import_function(Y, coeff=0.2, intercept=40):
"""
M = coeff*Y + intercept
coeff = marginal propensity to import (MPM)
"""
return coeff * Y + intercept
M17 = import_function(500, coeff=0.2, intercept=40)
print("Q17: Import at Y=500 =", M17, " (MPM=0.2)")
# 18. Multiplier with foreign trade
def multiplier_open(mpc, mpm):
"""
k = 1 / (1 - mpc + mpm)
"""
return 1 / (1 - mpc + mpm)
k18 = multiplier_open(mpc=0.6, mpm=0.1)
print("Q18: Multiplier =", k18)
# 19. Nominal GDP, Real GDP, Deflator
def gdp_deflator(nominal, real):
return (nominal / real) * 100
def real_gdp(nominal, deflator):
return nominal / (deflator / 100)
def nominal_gdp(real, deflator):
return real * (deflator / 100)
nominal = 500
real = 400
deflator19 = gdp_deflator(nominal, real)
print("Q19: GDP Deflator =", deflator19)
real19 = real_gdp(nominal, deflator19)
print("Q19: Real GDP from nominal/deflator =", real19)
# 20. Investment function
def investment_decision(plans, interest_rate):
"""
plans: list of (cost, revenue)
interest_rate: decimal (e.g., 0.06 for 6%)
return total investment amount chosen
"""
total_investment = 0
chosen = []
for cost, revenue in plans:
rate = (revenue - cost) / cost
if rate > interest_rate:
total_investment += cost
chosen.append((cost, revenue, round(rate*100, 1)))
return total_investment, chosen
plans20 = [(40, 43), (50, 52), (70, 74), (90, 95), (120, 128)]
inv6, chosen6 = investment_decision(plans20, 0.06)
print("Q20: At r=6%, Investment =", inv6, "Chosen plans =", chosen6)
inv7, chosen7 = investment_decision(plans20, 0.07)
print("Q20: At r=7%, Investment =", inv7, "Chosen plans =", chosen7)
21 IS 曲線
問題
消費関数 C = 300 + 0.9Y
投資関数 I = 200 − 0.2r
政府支出 G = 300
財市場の均衡式
Y = C + I + G
代入すると:
Y = (300 + 0.9Y) + (200 − 0.2r) + 300
Y − 0.9Y = 800 − 0.2r
0.1Y = 800 − 0.2r
r = −0.5Y + 4000
👉 IS 曲線: r = −0.5Y + 4000
22 貨幣需要(ケインズ)
ケインズは貨幣需要の動機を 3 つに分類:
- 取引的動機 → 所得 Y が大きいほど貨幣需要 ↑
- 予備的動機 → 所得 Y が大きいほど予備的に保有する貨幣 ↑
- 投機的動機 → 利子率 r が高いと貨幣需要 ↓、利子率 r が低いと貨幣需要 ↑
したがって:
貨幣需要 MD は
- 所得 Y の増加関数
- 利子率 r の減少関数
関数形:
MD = L₁(Y) + L₂(r)
23 LM 曲線
与えられた式
MD = 10Y − 2r
MS = M/P = 200/1 = 200
均衡条件:
MD = MS
10Y − 2r = 200
r = 5Y − 100
👉 LM 曲線: r = 5Y − 100
24 IS–LM 分析
- IS 曲線:財市場の均衡 Y = C + I + G から導出
- LM 曲線:貨幣市場の均衡 MS = MD から導出
両者の交点 (Y*, r*) が同時均衡を決定。
- 政府支出 G の増加 → IS 曲線を右上方へシフト → Y 上昇、r 上昇
- 貨幣供給 M の増加 → LM 曲線を右下方へシフト → Y 上昇、r 低下
25 クラウディング・アウト
設定
C = 300 + 0.8Y
I = 200 − 10r
G = 300
MD = 0.4Y − 20r
MS = 400, P = 1
IS 曲線
Y = C + I + G
= (300 + 0.8Y) + (200 − 10r) + 300
0.2Y = 800 − 10r
r = −0.02Y + 80
LM 曲線
MD = MS → 0.4Y − 20r = 400
r = 0.02Y − 20
均衡解
連立:
−0.02Y + 80 = 0.02Y − 20
0.04Y = 100 → Y = 2500
r = 30
👉 均衡点:Y = 2500, r = 30
政府支出増加(G=500)
IS 曲線:r = −0.02Y + 100
LM 曲線同じ:r = 0.02Y − 20
連立解:Y = 3000, r = 40
クラウディング・アウト効果
もし利子率が変わらず r=30 のままなら Y=3500 となるはず。
実際は Y=3000 までしか増えない。
→ 投資減退による 500 の所得減少 がクラウディング・アウト。
# IS–LM Model and Crowding Out
# =============================
# This script computes and visualizes IS and LM curves
# for the macroeconomics problems #21–#25.
import numpy as np
import matplotlib.pyplot as plt
# ----------------------------
# 21. IS Curve
# ----------------------------
# Given: C = 300 + 0.9Y, I = 200 - 0.2r, G = 300
# IS: r = -0.5Y + 4000
def IS_curve(Y):
return -0.5 * Y + 4000
# ----------------------------
# 23. LM Curve
# ----------------------------
# Given: MD = 10Y - 2r, MS = 200
# LM: r = 5Y - 100
def LM_curve(Y):
return 5 * Y - 100
# ----------------------------
# 25. Crowding Out Example
# ----------------------------
# IS when G=300: r = -0.02Y + 80
# IS when G=500: r = -0.02Y + 100
# LM: r = 0.02Y - 20
def IS_G300(Y):
return -0.02 * Y + 80
def IS_G500(Y):
return -0.02 * Y + 100
def LM_case(Y):
return 0.02 * Y - 20
# ----------------------------
# Solve Equilibrium
# ----------------------------
# Intersection IS and LM (case #25)
Y_star = (80 - (-20)) / (0.02 + 0.02) # solve -0.02Y+80 = 0.02Y-20
r_star = IS_G300(Y_star)
Y_star2 = (100 - (-20)) / (0.02 + 0.02) # with G=500
r_star2 = IS_G500(Y_star2)
print("Case G=300 → Equilibrium: Y =", Y_star, ", r =", r_star)
print("Case G=500 → Equilibrium: Y =", Y_star2, ", r =", r_star2)
print("Crowding-out effect =", 3500 - Y_star2) # potential Y - actual Y
# ----------------------------
# Visualization
# ----------------------------
Y = np.linspace(2000, 3600, 200)
plt.figure(figsize=(8,6))
plt.plot(Y, IS_G300(Y), label="IS (G=300)", color="blue")
plt.plot(Y, IS_G500(Y), label="IS (G=500)", color="blue", linestyle="--")
plt.plot(Y, LM_case(Y), label="LM", color="red")
# Mark equilibrium points
plt.scatter([Y_star], [r_star], color="black", zorder=5, label="Equilibrium G=300")
plt.scatter([Y_star2], [r_star2], color="green", zorder=5, label="Equilibrium G=500")
plt.xlabel("Income (Y)")
plt.ylabel("Interest Rate (r)")
plt.title("IS–LM Model with Crowding Out")
plt.legend()
plt.grid(True)
plt.show()
26 AD(総需要)曲線
【問題】
消費関数 C=c₀+c₁Y、投資関数 I=i₀−i₁r、政府支出 G=G₀、貨幣需要 MD=m₀Y−m₁r、貨幣供給 MS=M/P が与えられている。財市場・貨幣市場が同時均衡するとき、所得 Y と物価 P の関係(AD 曲線)を導け。
【解説】
- 財市場均衡:
Y = C + I + G = c₀ + c₁Y + (i₀−i₁r) + G₀
→ r = (1−c₁)/i₁·Y − (c₀+i₀+G₀)/i₁
- 貨幣市場均衡:
MS = MD
M/P = m₀Y − m₁r
→ r = (m₀/m₁)Y − (M/P)/m₁
- 両式から r を消去 → AD 曲線
P = M / { m₁[(1−c₁)/i₁ + m₀/m₁]Y − (c₀+i₀+G₀)/i₁ }
→ Y と P は負の関係、AD 曲線は右下がり。
→ G↑, M↑ → AD 曲線は右上方シフト。
27 AS(総供給)曲線
【問題】
マクロ生産関数 Y=f(L)、労働市場における賃金調整が
(1) 完全に伸縮的な場合
(2) 名目賃金が下方に硬直的な場合
AS 曲線の形状はどう異なるか。
【解説】
-
古典派モデル(賃金が柔軟):
物価変動に応じて賃金も調整 → 雇用・生産は完全雇用水準 Yf で一定 → AS 曲線は垂直。 -
ケインズ・モデル(賃金が下方硬直):
物価下落 → 実質賃金上昇 → 雇用減少 → 生産減少。
物価上昇 → 雇用増加 → 生産増加。
→ AS 曲線は右上がり。
28 AD–AS 分析 1
【問題】
財政政策・金融政策は物価・所得にどのような影響を与えるか。古典派モデルとケインズ・モデルで違いを説明せよ。
【解説】
-
古典派モデル(AS 垂直):
AD 曲線のシフト → 物価は変化するが、所得 Y は変わらない。
政策効果=無効。 -
ケインズ・モデル(AS 右上がり):
AD 曲線のシフト → 物価上昇+所得増加。
短期的には政策効果あり。
29 AD–AS 分析 2
【問題】
C=20+0.6Y, I=20−2r, G=10, MD=0.2Y−4r, M=400
AS 曲線:P=(1/6)Y
均衡 (Y, P) を求めよ。
【解説】
-
IS 曲線:
Y = C+I+G = (20+0.6Y)+(20−2r)+10
0.4Y = 50 − 2r → r = −0.2Y+25 -
LM 曲線:
MD=MS → 0.2Y−4r = 400/P
r = −0.05Y − 100/P -
IS=LM → AD 曲線:
−0.2Y+25 = −0.05Y − 100/P
Y = 100 + 400/P -
AS 曲線 P=(1/6)Y を代入:
Y = 100 + 2400/Y
Y²−100Y−2400=0
(Y−120)(Y+20)=0 → Y=120
P=(1/6)×120=20
👉 均衡点:(Y,P)=(120,20)
30 フィリップス曲線と自然失業率仮説
【問題】
フリードマンの自然失業率仮説とは何か。
【解説】
・短期:フィリップス曲線は右下がり → インフレ率と失業率にトレードオフ。
・長期:人々がインフレを予想に織り込む → トレードオフは消滅。
自然失業率(un)は摩擦的・構造的要因による失業で、長期には失業率は un に収束。
長期のフィリップス曲線は 垂直。
👉 ケインズ政策(需要刺激策)は短期的に失業率を下げても、長期的にはインフレ率を高めるだけで実質的な効果はない。
26. Aggregate Demand (AD) Curve
Model Setup
- Consumption: $C = c_0 + c_1Y$
- Investment: $I = i_0 - i_1r$
- Government spending: $G = G_0$
- Money demand: $MD = m_0Y - m_1r$
- Money supply: $MS = M/P$
AD equation (after eliminating $r$):
$$
P = \frac{M}{m_1 \left(\frac{1-c_1}{i_1} + \frac{m_0}{m_1}\right)Y - \frac{c_0+i_0+G_0}{i_1}}
$$
👉 AD curve is downward sloping in (Y,P).
import numpy as np
import matplotlib.pyplot as plt
# Parameters
c0, c1 = 50, 0.6
i0, i1 = 40, 2
G0 = 20
m0, m1 = 0.2, 4
M = 400
def AD(Y):
return M / (m1*((1-c1)/i1 + m0/m1)*Y - (c0+i0+G0)/i1)
Y_vals = np.linspace(50, 300, 200)
P_vals = AD(Y_vals)
plt.plot(Y_vals, P_vals, label="AD curve")
plt.xlabel("Income Y")
plt.ylabel("Price Level P")
plt.title("Aggregate Demand Curve")
plt.legend()
plt.grid(True)
plt.show()
27. Aggregate Supply (AS) Curve
Case 1: Classical
- Flexible wages → output fixed at full employment $Y_f$.
- AS curve is vertical at $Y=Y_f$.
Case 2: Keynesian
- Sticky wages downward → AS curve is upward sloping.
- As P rises, employment and Y rise.
👉 In code, you can plot both shapes:
Yf = 200 # full employment output
Y_vals = np.linspace(0, 300, 200)
AS_classical = np.full_like(Y_vals, 50) # vertical, P irrelevant
AS_keynes = 0.1*Y_vals # simple upward-sloping
plt.plot([Yf, Yf], [0,100], label="AS (Classical)")
plt.plot(Y_vals, AS_keynes, label="AS (Keynesian)")
plt.xlabel("Income Y")
plt.ylabel("Price Level P")
plt.title("Aggregate Supply Curves")
plt.legend()
plt.grid(True)
plt.show()
28. AD–AS Analysis
- Classical: Fiscal/monetary expansion shifts AD → only P increases.
- Keynesian: AD shift → both P and Y increase.
# AD: Y = 100 + 400/P (from your setup)
def AD(P): return 100 + 400/P
# AS: P = (1/6)Y
def AS(Y): return (1/6)*Y
P_vals = np.linspace(5, 50, 200)
Y_AD = AD(P_vals)
Y_AS = np.linspace(0, 300, 200)
P_AS = AS(Y_AS)
plt.plot(Y_AD, P_vals, label="AD")
plt.plot(Y_AS, P_AS, label="AS")
plt.xlabel("Income Y")
plt.ylabel("Price Level P")
plt.title("AD-AS Equilibrium")
plt.legend()
plt.grid(True)
plt.show()
29. AD–AS Equilibrium Example
From your derivation:
- AD: $Y = 100 + 400/P$
- AS: $P = \frac{1}{6}Y$
- Solution: $(Y,P) = (120,20)$.
Y_eq, P_eq = 120, 20
print(f"Equilibrium: Y = {Y_eq}, P = {P_eq}")
30. Phillips Curve & Natural Rate Hypothesis
- Short run: Trade-off (downward sloping PC).
- Long run: Vertical line at natural unemployment $u_n$.
u = np.linspace(2, 12, 200)
pi_short = 10 - 0.5*u # short-run PC
u_n = 6 # natural rate
pi_long = np.linspace(0, 10, 200)
plt.plot(u, pi_short, label="Short-run PC")
plt.plot([u_n, u_n], [0,10], 'r--', label="Long-run PC")
plt.xlabel("Unemployment rate u")
plt.ylabel("Inflation rate π")
plt.title("Phillips Curve and Natural Rate")
plt.legend()
plt.grid(True)
plt.show()