5D Library › 信贷周期、自组织临界性与市场相变的统计物理 · English
第一章 债务与产出:明斯基、古德温与基恩
明斯基的三种融资姿态
海曼·明斯基认为,资本主义经济的金融结构会随着繁荣的延续而内生地变化 (Minsky 1986, 1992)。他把借款人按现金流与偿债义务的关系分为三类:
- 对冲型融资(hedge):预期现金流足以支付每一期的利息和本金。
- 投机型融资(speculative):现金流足以支付利息,但不足以按期偿还全部本金,需要不断借新还旧。
- 庞氏型融资(Ponzi):在某些时期,现金流连利息都付不起,债务必须继续增加,或者必须出售资产。
明斯基 1992 年的工作论文把金融不稳定假说概括为两个命题:经济中既有使经济稳定的融资结构,也有使经济不稳定的融资结构;在长期的繁荣中,经济会从以对冲型为主的稳定结构,转向投机型与庞氏型比重越来越大的不稳定结构 (Minsky 1992)。这一想法可以追溯到费雪 1933 年的「债务–通缩」理论:过度负债的经济中,抛售资产偿债会压低价格,使实际债务负担反而加重 (Fisher 1933)。
推导
五个虚构的借款人,各借 100,分期等额还本。比较利率 3% 与 6% 时,每个借款人属于哪一类,以及在贷款期内必须再融资或新增借款的总额。
# Minsky's three financing positions, applied to a fictional set of borrowers.
# hedge: expected cash flow covers interest AND principal due in every year
# speculative: covers interest every year, but not all principal -> must roll over debt
# Ponzi: in some year it does not even cover interest -> debt must grow (or assets be sold)
# Minsky (1992) argues that long booms shift the mix from hedge towards speculative and Ponzi.
# Each borrower: debt, years to maturity (equal principal instalments), and yearly cash flows.
# All numbers are invented for illustration.
BORROWERS = {
"A utility": (100, 10, [14] * 10),
"B manufacturer": (100, 5, [12] * 5),
"C property dev.": (100, 5, [3, 3, 6, 10, 130]), # cash arrives when the project is sold
"D growth start-up": (100, 5, [-5, 0, 4, 9, 20]),
"E leveraged buyer": (100, 3, [7, 7, 7]),
}
def position(debt, years, cash, rate):
instal = debt / years
rem, worst_int, worst_all, roll = debt, float("inf"), float("inf"), 0.0
for cf in cash:
interest = rem * rate
worst_int = min(worst_int, cf - interest)
worst_all = min(worst_all, cf - interest - instal)
roll += max(0.0, interest + instal - cf) # what must be refinanced or borrowed
rem -= instal
kind = "hedge" if worst_all >= 0 else "speculative" if worst_int >= 0 else "Ponzi"
return kind, roll
for rate in (0.03, 0.06):
print(f"interest rate {rate:.0%}")
count = {"hedge": 0, "speculative": 0, "Ponzi": 0}
for name, (debt, years, cash) in BORROWERS.items():
kind, roll = position(debt, years, cash, rate)
count[kind] += 1
print(f" {name:18s} {kind:12s} must refinance or borrow {roll:6.1f} over the life of the loan")
print(" mix:", ", ".join(f"{k} {v}" for k, v in count.items()))
# interest rate 3%
# A utility hedge must refinance or borrow 0.0 over the life of the loan
# B manufacturer speculative must refinance or borrow 49.0 over the life of the loan
# C property dev. speculative must refinance or borrow 66.4 over the life of the loan
# D growth start-up Ponzi must refinance or borrow 81.0 over the life of the loan
# E leveraged buyer speculative must refinance or borrow 85.0 over the life of the loan
# mix: hedge 1, speculative 3, Ponzi 1
# interest rate 6%
# A utility speculative must refinance or borrow 4.4 over the life of the loan
# B manufacturer speculative must refinance or borrow 58.0 over the life of the loan
# C property dev. Ponzi must refinance or borrow 74.8 over the life of the loan
# D growth start-up Ponzi must refinance or borrow 90.0 over the life of the loan
# E leveraged buyer speculative must refinance or borrow 91.0 over the life of the loan
# mix: hedge 0, speculative 3, Ponzi 2利率为 3% 时,五个借款人中只有一个是对冲型。利率升到 6% 后,连现金流稳定的公用事业公司也变成了投机型,需要再融资约 4.4;靠项目最后一年出售回款的房地产开发商则从投机型变成了庞氏型:前几年的现金流已经不够付利息。
这个小例子说明了明斯基论证中的一个关键:同一组借款人,不需要任何人的行为改变,只要融资条件变化,就会从较稳的结构滑向较脆弱的结构。真正的经济中,繁荣时期融资条件变宽松,会让更多原本不会借款的项目借到钱,这一效应更强。
古德温:工资与就业的循环
古德温在 1967 年提出了一个只有两个变量的增长周期模型 (Goodwin 1967):工资在产出中的份额 与就业率 。就业率高时,工人议价能力强,工资份额上升;工资份额上升挤压利润,投资减少,就业率下降;就业率下降使工资份额回落,利润恢复,投资又增加。数学上,这是生态学中捕食者–猎物方程的翻版:
其中 是工资增长随就业率上升的「菲利普斯曲线」, 是劳动生产率增长率, 是劳动力增长率, 是折旧率, 是资本产出比。在古德温模型中,企业把全部利润用于投资,没有借贷。它的解是一族封闭的轨道:经济永远在同一个循环中往复,不会收敛,也不会崩溃。
基恩:加上债务
基恩在 1995 年把明斯基的想法写进了古德温模型 (Keen 1995):企业的投资不再等于利润,而是随利润份额上升而急剧增加的函数 ;投资超过利润的部分靠借款,于是出现了第三个变量,企业债务与产出之比 :
其中 是扣除利息后的利润份额, 是利率。格拉塞利与科斯塔·利马对这个模型做了系统的数学分析 (Grasselli and Costa Lima 2012):它有一个就业率和工资份额都为正、债务有限的「好」均衡,也有一个工资份额和就业率趋于零、债务与产出之比趋于无穷的「坏」均衡,两者在一定参数范围内都是局部稳定的。经济最后落到哪一个,取决于参数,也取决于起点。
推导
用格拉塞利与科斯塔·利马数值例子中的参数(示意性的,不是对任何经济的估计),先运行没有债务的古德温模型,再从两个只差 5 个百分点就业率的起点运行基恩模型。时间单位是模型中的「年」。
# Goodwin (1967) growth cycle and the Keen (1995) model with private debt, in the form analysed by
# Grasselli & Costa Lima (2012). State: wage share w, employment rate lam, firm debt / output d.
# dw/dt = w (Phi(lam) - alpha)
# dlam/dt = lam (kappa(pi)/nu - alpha - beta - delta), pi = 1 - w - r d (net profit share)
# dd/dt = kappa(pi) - pi - d (kappa(pi)/nu - delta)
# Goodwin is the special case "invest exactly the profit, no debt": kappa(pi) = pi and d = 0.
# Parameters as in Grasselli & Costa Lima's numerical examples; they are illustrative, not fitted.
import math
nu, alpha, beta, delta, r = 3.0, 0.025, 0.02, 0.01, 0.03
phi0, phi1 = 0.04 / (1 - 0.04 ** 2), 0.04 ** 3 / (1 - 0.04 ** 2)
Phi = lambda lam: phi1 / (1 - lam) ** 2 - phi0 # Phillips curve: wages rise near full employment
kappa = lambda p: -0.0065 + math.exp(-5) * math.exp(20 * p) # investment share of output, rises with profit
def deriv(s, keen=True):
w, lam, d = s
pi = 1 - w - r * d if keen else 1 - w
k = kappa(pi) if keen else pi
g = k / nu - delta # growth rate of output
return (w * (Phi(lam) - alpha), lam * (g - alpha - beta), (k - pi - d * g) if keen else 0.0)
def run(s, years, keen=True, h=0.01, c=0.02):
"""RK4 with a step that shrinks as employment nears 1, where the Phillips curve is steep."""
out, t, nxt = [(0.0, *s)], 0.0, 1.0
while t < years:
dt = min(h, c * (1 - s[1]), nxt - t)
k1 = deriv(s, keen); k2 = deriv([a + dt / 2 * b for a, b in zip(s, k1)], keen)
k3 = deriv([a + dt / 2 * b for a, b in zip(s, k2)], keen); k4 = deriv([a + dt * b for a, b in zip(s, k3)], keen)
s = [a + dt / 6 * (p + 2 * q + 2 * u + v) for a, p, q, u, v in zip(s, k1, k2, k3, k4)]
t += dt
if s[2] > 1e6: # debt has exploded
out.append((t, *s)); break
if t >= nxt - 1e-9: out.append((round(t), *s)); nxt += 1.0
return out
if __name__ == "__main__":
g = run([0.80, 0.90, 0.0], 100, keen=False)
lam_ = [x[2] for x in g]
print(f"Goodwin, no debt: employment cycles between {min(lam_):.3f} and {max(lam_):.3f} for 100 years"
" - closed orbits, no crisis")
for lab, s0 in (("Keen, start lam = 0.75", [0.75, 0.75, 0.1]), ("Keen, start lam = 0.70", [0.75, 0.70, 0.1])):
path = run(s0, 200)
print(f"\n{lab}, w = 0.75, d = 0.1 (years: wage share, employment, debt/output)")
for t, w, lam, d in path:
if t in (0, 10, 20, 40, 60, 80, 100, 150, 200):
print(f" t = {t:3.0f}: w = {w:7.3f} lam = {lam:.3f} d = {d:10.2f}")
t, w, lam, d = path[-1]
print(" ->", "damped cycles converge to the 'good' equilibrium with finite debt" if d < 10
else "debt/output explodes; wage share and employment then decay towards zero (the 'bad' equilibrium)")
# Goodwin, no debt: employment cycles between 0.896 and 0.991 for 100 years - closed orbits, no crisis
#
# Keen, start lam = 0.75, w = 0.75, d = 0.1 (years: wage share, employment, debt/output)
# t = 0: w = 0.750 lam = 0.750 d = 0.10
# t = 10: w = 1.013 lam = 0.991 d = 1.40
# t = 20: w = 0.979 lam = 0.889 d = 1.85
# t = 40: w = 0.700 lam = 0.931 d = 1.85
# t = 60: w = 0.739 lam = 0.829 d = 1.75
# t = 80: w = 0.717 lam = 0.924 d = 1.62
# t = 100: w = 0.871 lam = 0.892 d = 1.41
# t = 150: w = 0.786 lam = 0.965 d = 0.59
# t = 200: w = 0.825 lam = 0.969 d = 0.16
# -> damped cycles converge to the 'good' equilibrium with finite debt
#
# Keen, start lam = 0.70, w = 0.75, d = 0.1 (years: wage share, employment, debt/output)
# t = 0: w = 0.750 lam = 0.700 d = 0.10
# t = 10: w = 0.719 lam = 0.789 d = 1.43
# t = 20: w = 1.066 lam = 0.988 d = 2.01
# t = 40: w = 1.041 lam = 0.881 d = 2.80
# t = 60: w = 1.184 lam = 0.887 d = 3.59
# t = 80: w = 0.939 lam = 0.580 d = 8.56
# t = 100: w = 43.601 lam = 0.566 d = 756.71
# t = 150: w = 1.695 lam = 0.032 d = 9396.63
# t = 200: w = 0.066 lam = 0.002 d = 77333.50
# -> debt/output explodes; wage share and employment then decay towards zero (the 'bad' equilibrium)结果值得仔细看:
- 古德温模型中,就业率在约 0.90 到 0.99 之间永远循环,没有危机。
- 基恩模型从就业率 0.75 出发:繁荣期中债务与产出之比升到约 1.85,之后的循环逐渐衰减,债务比在两百年后降到约 0.16,经济收敛到「好」均衡。
- 从就业率 0.70 出发:前几十年看起来与前一种情形相似,周期性繁荣中债务比一轮比一轮高,第 60 年已达约 3.6;到了第 80 多年,利息负担吞没利润,债务比急剧上升,此后工资份额与就业率一起衰减,经济走向「坏」均衡。
模型中工资份额一度超过 1,意思是工资总额超过了产出,差额靠企业借款支付。这是模型在极端状态下的产物,不对应任何真实经济的数字。
注
这不是「算术必然」,也不是预测。 有一种流行的说法是:信贷周期性出清是数学上的必然。基恩模型并不支持这么强的结论。同一个模型、同样的参数,从相近的起点出发,可以收敛到债务有限的平稳状态,也可以走向债务爆炸;改变投资函数或利率,又会改变两种结局的范围。模型展示的是一种结构性机制:在债务融资的投资主导的繁荣中,债务与产出之比可以在看似健康的增长中一轮轮累积,直到利息支出压倒利润。模型中的「年」是抽象的时间单位,不能用来推算任何真实经济或市场的崩溃日期。
历史数据说了什么
模型只说明一种机制可能存在。信贷繁荣与金融危机之间的经验关系,要靠跨国长期数据来检验。
证据
信贷增长与危机。 舒拉里克与泰勒整理了 14 个发达国家 1870–2008 年的数据,发现滞后几年的信贷增长是预测金融危机的最重要变量之一,「信贷繁荣之后的破灭」反复出现 (Schularick and Taylor 2012)。若尔达、舒拉里克与泰勒进一步发现,之前信贷扩张越大的衰退,往往越深,复苏越慢 (Jordà et al. 2013)。米安、苏菲与韦尔纳发现,家庭债务与产出之比的上升,预示着随后几年较低的经济增长 (Mian et al. 2017)。格林伍德等人发现,信贷快速增长与资产价格快速上涨同时出现时,随后几年发生金融危机的概率明显提高;据作者报告,企业部门或家庭部门的信贷与资产价格在此前三年都快速增长时,随后三年内进入金融危机的概率约为 40%,而在两者都没有明显升高的正常时期约为 7% (Greenwood et al. 2022)。
这些研究支持「信贷繁荣提高危机风险」,但它们给出的是概率的提高,不是确定的时间表:即使在风险最高的组合中,也有相当多的信贷繁荣没有以危机告终。达利欧在《债务危机》一书中从实务角度描述了长期与短期债务周期以及「美丽的去杠杆」(beautiful deleveraging,指债务负担下降的同时经济仍保持增长、通胀温和的去杠杆过程)(Dalio 2018);那是一位从业者的历史归纳框架,可以作为观察的参考,但不是经过同行评议的统计检验。
假说 · 尚未验证
偿债覆盖率的结构转移假说(尚未确立)。按明斯基的机制,在信贷繁荣中,「现金流够付利息、不够还本金」的借款人(投机型)所占的比重会上升,并且在危机之前比在没有危机的信贷扩张之前上升得更多。可以用企业层面的现金流与债务到期数据检验。如果投机型与庞氏型比重在危机之前并不比在平稳扩张之前上升得更多,这一假说就被削弱。
本章小结
明斯基的金融不稳定假说认为,长期繁荣会使融资结构从对冲型滑向投机型与庞氏型;一个简单的分类程序显示,仅仅利率上升就会造成这种滑移。古德温模型只有永不衰减的循环;加上债务的基恩模型可以收敛到平稳状态,也可以走向债务爆炸,取决于参数与起点。跨国历史数据显示信贷繁荣明显提高危机的概率,但不能给出时间表。下一章讨论另一种理解「小原因、大后果」的方式:自组织临界性。
参考文献
Fan, Y. (2026). Credit Cycles, Self-Organised Criticality and the Statistical Physics of Market Phase Transitions: From Minsky's Financial Instability Hypothesis and Sandpile Power-Law Avalanches to Implied-Volatility Skew, Read Beside Classical Chinese Thought on Rise and Decline [信贷周期、自组织临界性与市场相变的统计物理] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23754711 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).