Demand for Money and Supply of Money คืออะไร
Demand for Money (อุปสงค์เงิน) คือปริมาณเงินที่ประชาชนและธุรกิจต้องการถือครองในรูปแบบสภาพคล่อง เพื่อใช้จ่าย ลงทุน หรือเก็บรักษามูลค่า Supply of Money (อุปทานเงิน) คือปริมาณเงินทั้งหมดในระบบเศรษฐกิจ ควบคุมโดยธนาคารกลาง (เช่น ธปท. หรือ Federal Reserve) ผ่านนโยบายการเงิน ความสมดุลระหว่าง demand และ supply of money กำหนดอัตราดอกเบี้ย เงินเฟ้อ และสุขภาพเศรษฐกิจโดยรวม บทความนี้อธิบายทฤษฎี ปัจจัย การวิเคราะห์ และ Python tools สำหรับวิเคราะห์ money demand และ supply
Demand for Money — ทฤษฎีอุปสงค์เงิน
# money_demand.py — Money demand theories
import json
class MoneyDemand:
THEORIES = {
"classical": {
"name": "Classical Quantity Theory (Fisher)",
"equation": "MV = PT (Money × Velocity = Price × Transactions)",
"implication": "เงินใช้เพื่อ transactions เท่านั้น — เพิ่ม M → เพิ่ม P (เงินเฟ้อ)",
},
"cambridge": {
"name": "Cambridge Approach (Marshall, Pigou)",
"equation": "Md = kPY (k = สัดส่วนรายได้ที่ต้องการถือเป็นเงินสด)",
"implication": "คนถือเงินเพราะ convenience — สัดส่วนคงที่ของรายได้",
},
"keynesian": {
"name": "Keynesian Liquidity Preference",
"motives": {
"transaction": "ถือเงินเพื่อใช้จ่ายประจำวัน — ขึ้นกับรายได้",
"precautionary": "ถือเงินสำรองฉุกเฉิน — ขึ้นกับรายได้ + ความไม่แน่นอน",
"speculative": "ถือเงินรอจังหวะลงทุน — ขึ้นกับอัตราดอกเบี้ย (สัมพันธ์ผกผัน)",
},
"equation": "Md = L1(Y) + L2(r) — L1 ขึ้นกับ income, L2 ขึ้นกับ interest rate",
},
"friedman": {
"name": "Friedman's Modern Quantity Theory",
"equation": "Md/P = f(Yp, rb, re, πe)",
"variables": "Yp=permanent income, rb=bond return, re=equity return, πe=expected inflation",
"implication": "Money demand เสถียร — ขึ้นกับ wealth ไม่ใช่แค่ income",
},
}
FACTORS = {
"income": "รายได้เพิ่ม → demand for money เพิ่ม (ต้องใช้จ่ายมากขึ้น)",
"interest_rate": "ดอกเบี้ยเพิ่ม → demand for money ลด (ถือพันธบัตรดีกว่า)",
"price_level": "ราคาสินค้าเพิ่ม → ต้องการเงินมากขึ้นเพื่อซื้อของเท่าเดิม",
"technology": "FinTech, e-payment → ลด demand for cash (ถือน้อยลงได้)",
"uncertainty": "ความไม่แน่นอนสูง → ถือเงินสดมากขึ้น (precautionary)",
"inflation_expectation": "คาดว่าเงินเฟ้อสูง → ถือเงินน้อยลง (เงินเสียค่า)",
}
def show_theories(self):
print("=== Money Demand Theories ===\n")
for key, theory in self.THEORIES.items():
print(f"[{theory['name']}]")
if 'equation' in theory:
print(f" Equation: {theory['equation']}")
if 'motives' in theory:
for motive, desc in theory['motives'].items():
print(f" • {motive}: {desc}")
print()
def show_factors(self):
print("=== Factors Affecting Money Demand ===")
for factor, effect in self.FACTORS.items():
print(f" [{factor}] {effect}")
md = MoneyDemand()
md.show_theories()
md.show_factors()
Supply of Money — อุปทานเงิน
# money_supply.py — Money supply components and tools
import json
class MoneySupply:
MEASURES = {
"m0": {
"name": "M0 (Monetary Base / High-powered Money)",
"components": "เงินสดหมุนเวียน + เงินสำรองของธนาคารพาณิชย์ที่ ธปท.",
"control": "ธนาคารกลางควบคุมโดยตรง",
},
"m1": {
"name": "M1 (Narrow Money)",
"components": "M0 + เงินฝากกระแสรายวัน (demand deposits)",
"liquidity": "สภาพคล่องสูงสุด — ใช้จ่ายได้ทันที",
},
"m2": {
"name": "M2 (Broad Money)",
"components": "M1 + เงินฝากออมทรัพย์ + เงินฝากประจำ < 100K",
"liquidity": "สภาพคล่องปานกลาง — ใช้มากที่สุดในการวิเคราะห์",
},
"m3": {
"name": "M3",
"components": "M2 + เงินฝากประจำขนาดใหญ่ + ตราสารหนี้ระยะสั้น",
"liquidity": "สภาพคล่องต่ำกว่า — รวม near-money assets",
},
}
CB_TOOLS = {
"open_market": {
"name": "Open Market Operations (OMO)",
"how": "ธนาคารกลางซื้อ-ขายพันธบัตร",
"buy": "ซื้อพันธบัตร → เพิ่ม money supply → ลดดอกเบี้ย",
"sell": "ขายพันธบัตร → ลด money supply → เพิ่มดอกเบี้ย",
},
"reserve_ratio": {
"name": "Reserve Requirement Ratio",
"how": "กำหนดสัดส่วนเงินฝากที่ธนาคารต้องสำรอง",
"decrease": "ลด ratio → ธนาคารปล่อยกู้ได้มากขึ้น → เพิ่ม money supply",
"increase": "เพิ่ม ratio → ธนาคารปล่อยกู้ได้น้อยลง → ลด money supply",
},
"discount_rate": {
"name": "Discount Rate / Policy Rate",
"how": "อัตราดอกเบี้ยที่ธนาคารกลางเรียกเก็บจากธนาคารพาณิชย์",
"decrease": "ลด rate → ธนาคารกู้ง่ายขึ้น → เพิ่ม money supply",
"increase": "เพิ่ม rate → ธนาคารกู้แพงขึ้น → ลด money supply",
},
}
MONEY_MULTIPLIER = {
"formula": "Money Multiplier = 1 / Reserve Ratio",
"example": "Reserve Ratio 10% → Multiplier = 1/0.10 = 10 → ฝาก 100 → สร้างเงินได้ 1,000",
"reality": "ในความเป็นจริง multiplier ต่ำกว่า — เพราะ excess reserves, cash drain",
}
def show_measures(self):
print("=== Money Supply Measures ===\n")
for key, m in self.MEASURES.items():
print(f"[{m['name']}]")
print(f" Components: {m['components']}")
print()
def show_tools(self):
print("=== Central Bank Tools ===")
for key, tool in self.CB_TOOLS.items():
print(f"\n[{tool['name']}]")
print(f" {tool['how']}")
ms = MoneySupply()
ms.show_measures()
ms.show_tools()
Python Money Supply Analysis
# analysis.py — Python money supply analysis
import json
import random
class MoneyAnalysis:
CODE = """
# money_analysis.py — Analyze money supply data
import pandas as pd
import numpy as np
class MoneySupplyAnalyzer:
def __init__(self):
self.data = None
def load_data(self, filepath):
'''Load money supply data (CSV: date, M1, M2, GDP, CPI, interest_rate)'''
self.data = pd.read_csv(filepath, parse_dates=['date'])
self.data.set_index('date', inplace=True)
return self
def money_velocity(self):
'''Calculate velocity of money: V = nominal GDP / M2'''
self.data['velocity'] = self.data['gdp_nominal'] / self.data['m2']
return self.data['velocity']
def money_multiplier(self):
'''Calculate money multiplier: M2 / M0'''
self.data['multiplier'] = self.data['m2'] / self.data['m0']
return self.data['multiplier']
def growth_rates(self):
'''Calculate YoY growth rates'''
for col in ['m1', 'm2', 'gdp_nominal', 'cpi']:
self.data[f'{col}_growth'] = self.data[col].pct_change(12) * 100
return self.data
def quantity_theory_check(self):
'''Check if M2 growth ≈ inflation + GDP growth'''
self.growth_rates()
self.data['predicted_inflation'] = (
self.data['m2_growth'] - self.data['gdp_nominal_growth']
)
correlation = self.data['cpi_growth'].corr(self.data['predicted_inflation'])
return correlation
def money_demand_regression(self):
'''Estimate money demand function: ln(M/P) = a + b*ln(Y) + c*r'''
from sklearn.linear_model import LinearRegression
df = self.data.dropna()
X = df[['gdp_real_log', 'interest_rate']].values
y = (df['m2'] / df['cpi']).apply(np.log).values
model = LinearRegression().fit(X, y)
return {
'income_elasticity': model.coef_[0],
'interest_sensitivity': model.coef_[1],
'r_squared': model.score(X, y),
}
# Usage
analyzer = MoneySupplyAnalyzer()
# analyzer.load_data('money_supply_thailand.csv')
# velocity = analyzer.money_velocity()
# multiplier = analyzer.money_multiplier()
"""
def show_code(self):
print("=== Money Supply Analyzer ===")
print(self.CODE[:600])
def thai_data(self):
print(f"\n=== Thailand Money Supply (Simulated) ===")
years = [2020, 2021, 2022, 2023, 2024]
for year in years:
m2 = random.uniform(18, 22) * 1e6
growth = random.uniform(3, 10)
velocity = random.uniform(0.8, 1.2)
rate = random.uniform(0.5, 3.0)
print(f" {year}: M2 {m2/1e6:.1f}T บาท | Growth: {growth:.1f}% | Velocity: {velocity:.2f} | Policy Rate: {rate:.2f}%")
analysis = MoneyAnalysis()
analysis.show_code()
analysis.thai_data()
Equilibrium & Interest Rate
# equilibrium.py — Money market equilibrium
import json
import random
class MoneyEquilibrium:
CONCEPT = {
"equilibrium": "จุดที่ Money Demand = Money Supply → กำหนดอัตราดอกเบี้ยดุลยภาพ",
"excess_supply": "Ms > Md → คนถือเงินเกิน → ซื้อพันธบัตร → ดอกเบี้ยลง → Md เพิ่มจนกลับสู่สมดุล",
"excess_demand": "Md > Ms → คนต้องการเงินเกิน → ขายพันธบัตร → ดอกเบี้ยขึ้น → Md ลดจนกลับสู่สมดุล",
}
POLICY_EFFECTS = {
"expansionary": {
"name": "Expansionary Monetary Policy (ผ่อนคลาย)",
"action": "ธนาคารกลางเพิ่ม money supply",
"effects": [
"อัตราดอกเบี้ยลดลง",
"การลงทุนเพิ่ม (กู้ถูกลง)",
"การบริโภคเพิ่ม",
"GDP เพิ่ม (short-run)",
"เงินเฟ้ออาจเพิ่ม (long-run)",
"ค่าเงินอ่อน (ต่างชาติย้ายเงินออก)",
],
},
"contractionary": {
"name": "Contractionary Monetary Policy (เข้มงวด)",
"action": "ธนาคารกลางลด money supply",
"effects": [
"อัตราดอกเบี้ยเพิ่ม",
"การลงทุนลด (กู้แพง)",
"การบริโภคลด",
"เงินเฟ้อลด",
"ค่าเงินแข็ง",
"GDP อาจชะลอ",
],
},
}
def show_concept(self):
print("=== Money Market Equilibrium ===\n")
for key, desc in self.CONCEPT.items():
print(f" [{key}] {desc}")
def show_policy(self):
print(f"\n=== Monetary Policy Effects ===")
for key, policy in self.POLICY_EFFECTS.items():
print(f"\n[{policy['name']}]")
print(f" Action: {policy['action']}")
for effect in policy["effects"][:4]:
print(f" → {effect}")
def simulation(self):
print(f"\n=== Interest Rate Simulation ===")
ms = 100 # Fixed money supply
for income_growth in [0, 5, 10, 15]:
md = 80 + income_growth * 2 # Demand increases with income
eq_rate = max(0, (md - ms) * 0.5 + 2.5)
status = "Surplus" if ms > md else "Shortage" if md > ms else "Equilibrium"
print(f" Income growth {income_growth:>2}% → Md: {md} | Ms: {ms} | Rate: {eq_rate:.1f}% [{status}]")
eq = MoneyEquilibrium()
eq.show_concept()
eq.show_policy()
eq.simulation()
Real-world Applications
# applications.py — Real-world applications
import json
class RealWorldApplications:
CASES = {
"qe": {
"name": "Quantitative Easing (QE)",
"description": "ธนาคารกลางซื้อพันธบัตรจำนวนมาก → เพิ่ม money supply อย่างมหาศาล",
"examples": "Fed QE 2008-2014, BOJ QQE, ECB QE, ธปท. soft QE",
"effect": "ดอกเบี้ยต่ำมาก, asset prices เพิ่ม, เงินเฟ้อ (ช่วงหลัง)",
},
"inflation_targeting": {
"name": "Inflation Targeting",
"description": "ธนาคารกลางตั้งเป้าเงินเฟ้อ (ไทย: 1-3%) → ปรับ money supply ให้ได้เป้า",
"examples": "ธปท. เป้า 1-3%, Fed เป้า 2%, BOE เป้า 2%",
"effect": "Anchor expectations → เงินเฟ้อเสถียร",
},
"crypto_impact": {
"name": "Cryptocurrency & CBDC",
"description": "Crypto อาจลด demand for fiat money, CBDC อาจเปลี่ยนโครงสร้าง money supply",
"examples": "Bitcoin, Stablecoins, Digital Baht (ศึกษาโดย ธปท.)",
"effect": "อาจลด money multiplier (disintermediation)",
},
"thai_economy": {
"name": "Thailand Monetary Policy",
"description": "ธปท. ใช้ policy rate (อัตราดอกเบี้ยนโยบาย) เป็นเครื่องมือหลัก",
"current": "Policy rate: 2.50% (2024), เป้าเงินเฟ้อ 1-3%",
"tools": "OMO (bilateral repo), Standing facilities, Reserve requirements",
},
}
def show_cases(self):
print("=== Real-world Applications ===\n")
for key, case in self.CASES.items():
print(f"[{case['name']}]")
print(f" {case['description']}")
print(f" Examples: {case['examples']}")
print()
apps = RealWorldApplications()
apps.show_cases()
FAQ - คำถามที่พบบ่อย
Q: Money Demand กับ Money Supply สัมพันธ์กันอย่างไร?
A: เมื่อ Md = Ms → เกิดดุลยภาพ กำหนดอัตราดอกเบี้ยในตลาด ถ้า Ms > Md → ดอกเบี้ยลง (เงินเหลือ → ซื้อพันธบัตร) ถ้า Md > Ms → ดอกเบี้ยขึ้น (เงินไม่พอ → ขายพันธบัตร) ธนาคารกลางควบคุม Ms เพื่อให้ดอกเบี้ยอยู่ที่เป้าหมาย
Q: ทำไมเพิ่มเงินแล้วเกิดเงินเฟ้อ?
A: ตามทฤษฎี Quantity Theory: MV = PT ถ้า M (money supply) เพิ่ม แต่ T (transactions/output) ไม่เพิ่มตาม → P (price) ต้องเพิ่ม = เงินเฟ้อ ตัวอย่าง: QE หลัง COVID → เงินเข้าระบบมาก → อุปสงค์เพิ่ม แต่ supply chain ขาดแคลน → เงินเฟ้อ 2022-2023 แต่: ถ้าเศรษฐกิจยัง underperform (output gap) เพิ่ม M อาจไม่ทำให้เกิดเงินเฟ้อทันที
Q: M1 กับ M2 ต่างกันอย่างไร?
A: M1 = เงินที่ใช้จ่ายได้ทันที (เงินสด + เงินฝากกระแสรายวัน) M2 = M1 + เงินฝากออมทรัพย์ + เงินฝากประจำ นักวิเคราะห์ใช้ M2 มากกว่า เพราะครอบคลุม near-money assets M2 growth สูง → สัญญาณว่า liquidity เพิ่ม → อาจเกิดเงินเฟ้อ
Q: ธปท. ควบคุม money supply อย่างไร?
A: เครื่องมือหลัก: Policy Rate (อัตราดอกเบี้ยนโยบาย) — ปัจจุบัน 2.50% OMO: ซื้อ-ขายพันธบัตรผ่าน bilateral repo Reserve Requirements: กำหนดเงินสำรอง (ปัจจุบัน ~1%) กรรมการนโยบายการเงิน (กนง.) ประชุมทุก 2 เดือน → ตัดสินใจปรับดอกเบี้ย เป้าหมาย: เงินเฟ้อ 1-3%, เศรษฐกิจเติบโตยั่งยืน
