5D Library › Credit Cycles, Self-Organised Criticality and the Statistical Physics of Market Phase Transitions · 中文

Chapter 1 Debt and Output: Minsky, Goodwin and Keen

Minsky’s three financing positions

Hyman Minsky argued that the financial structure of a capitalist economy changes endogenously as prosperity continues (Minsky 1986, 1992). He classified borrowers by the relation between their cash flows and their debt obligations:

  • Hedge finance: expected cash flow covers both the interest and the principal due in every period.
  • Speculative finance: cash flow covers the interest but not all the principal when due, so the debt must keep being rolled over.
  • Ponzi finance: in some periods cash flow does not even cover the interest, so debt must keep growing, or assets must be sold.

Minsky’s 1992 working paper summed up the financial instability hypothesis in two theorems: the economy has financing regimes under which it is stable and regimes under which it is unstable; and over long periods of prosperity the economy moves from a stable structure dominated by hedge finance to an unstable one in which speculative and Ponzi finance carry ever more weight (Minsky 1992). The idea goes back to Fisher’s 1933 “debt-deflation” theory: in an over-indebted economy, selling assets to repay debt depresses prices and so makes the real burden of the debt heavier (Fisher 1933).

Calculation

Five fictional borrowers each borrow 100, repaid in equal instalments of principal. Compare which class each falls into at interest rates of 3 % and 6 %, and how much each must refinance or newly borrow over the life of its loan.

# 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

At 3 % only one of the five borrowers is a hedge borrower. At 6 % even the utility, whose cash flow is steady, becomes speculative and must refinance about 4.4; the property developer, whose money arrives only when the project is sold in the last year, moves from speculative to Ponzi, because its cash flow in the early years no longer covers the interest.

This small example shows one key element of Minsky’s argument: without anyone changing their behaviour, a change in financing conditions alone shifts the same set of borrowers from a sounder towards a more fragile structure. In a real economy the effect is stronger, because easier financing during a boom also lets projects borrow that would otherwise not have borrowed at all.

Goodwin: the cycle of wages and employment

In 1967 Goodwin proposed a growth-cycle model with only two variables (Goodwin 1967): the share of wages in output, ω\omega, and the employment rate, λ\lambda. When employment is high, workers bargain strongly and the wage share rises; a rising wage share squeezes profits, investment falls and employment falls; falling employment lowers the wage share, profits recover and investment rises again. Mathematically, this is the predator–prey equation of ecology in another guise:

ω̇=ω[Φ(λ)−α],λ̇=λ[1−ων−α−β−δ]\dot\omega = \omega\,[\Phi(\lambda) – \alpha], \qquad \dot\lambda = \lambda\left[\frac{1-\omega}{\nu} – \alpha – \beta – \delta\right]

Here Φ\Phi is a “Phillips curve” in which wage growth rises with employment, α\alpha the growth rate of labour productivity, β\beta the growth rate of the labour force, δ\delta the depreciation rate and ν\nu the capital–output ratio. In Goodwin’s model firms invest all their profits and do not borrow. Its solutions are a family of closed orbits: the economy cycles round the same loop for ever, neither converging nor collapsing.

Keen: adding debt

In 1995 Keen wrote Minsky’s ideas into the Goodwin model (Keen 1995). Investment no longer equals profit; it is a function κ(π)\kappa(\pi) that rises steeply with the profit share, and investment beyond profit is financed by borrowing. This brings in a third variable, the ratio of firm debt to output, dd:

ḋ=κ(π)−π−d(κ(π)ν−δ),π=1−ω−rd\dot d = \kappa(\pi) – \pi – d\left(\frac{\kappa(\pi)}{\nu} – \delta\right), \qquad \pi = 1 – \omega – r d

where π\pi is the profit share after interest and rr the interest rate. Grasselli and Costa Lima analysed the model systematically (Grasselli and Costa Lima 2012). It has a “good” equilibrium with positive employment and wage share and finite debt, and a “bad” equilibrium in which wage share and employment go to zero while the debt-to-output ratio goes to infinity; over a range of parameters both are locally stable. Which one the economy ends in depends on the parameters and on where it starts.

Calculation

With the parameters of Grasselli and Costa Lima’s numerical examples (illustrative, not estimates for any economy), first run the Goodwin model without debt, then run the Keen model from two starting points whose employment rates differ by only 5 percentage points. Time is measured in model “years”.

# 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)
Left: undamped cycles of the employment rate in the Goodwin model and slowly damped cycles in the Keen model. Right: the debt-to-output ratio in the Keen model from two nearby starting points (log scale).

The results repay a careful look:

  • In the Goodwin model employment cycles between about 0.90 and 0.99 for ever, with no crisis.
  • The Keen model started from employment of 0.75: during the boom the debt-to-output ratio rises to about 1.85, after which the cycles slowly die away; the debt ratio falls to about 0.16 after two hundred years and the economy converges to the “good” equilibrium.
  • Started from employment of 0.70: for the first few decades the path looks much like the previous one, with the debt ratio higher at each cyclical boom, about 3.6 by year 60; in the 80s interest payments swallow profits, the debt ratio shoots up, and thereafter wage share and employment decay together as the economy heads to the “bad” equilibrium.

At one point the wage share in the model exceeds 1, meaning that total wages exceed output and the difference is paid with borrowed money. This is a product of the model in an extreme state and corresponds to no number in any real economy.

Note

This is neither an “arithmetic necessity” nor a prediction. A popular claim holds that the periodic clearing of credit cycles is a mathematical necessity. The Keen model does not support so strong a conclusion. The same model with the same parameters, started from nearby points, can converge to a steady state with finite debt or move towards exploding debt; changing the investment function or the interest rate changes the range of each outcome again. What the model shows is a structural mechanism: in a boom driven by debt-financed investment, the debt-to-output ratio can build up cycle after cycle during apparently healthy growth, until interest payments overwhelm profits. The model’s “years” are abstract units of time and cannot be used to work out the date of any collapse in a real economy or market.

What the historical data say

A model only shows that a mechanism could exist. The empirical relation between credit booms and financial crises has to be tested with long-run data across countries.

Evidence

Credit growth and crises. Schularick and Taylor assembled data for 14 developed countries from 1870 to 2008 and found that lagged credit growth is among the most important predictors of financial crises; “credit booms gone bust” recur (Schularick and Taylor 2012). Jordà, Schularick and Taylor further found that recessions preceded by larger credit expansions tend to be deeper, with slower recoveries (Jordà et al. 2013). Mian, Sufi and Verner found that a rise in the ratio of household debt to output predicts lower economic growth in the following years (Mian et al. 2017). Greenwood and colleagues found that when rapid credit growth coincides with a rapid rise in asset prices, the probability of a financial crisis in the following years rises markedly; according to the authors, when credit and asset prices in the business or household sector have both grown rapidly over the previous three years, the probability of entering a financial crisis within the next three years is about 40 %, against about 7 % in normal times when neither has been elevated (Greenwood et al. 2022).

These studies support “credit booms raise the risk of crisis”, but what they give is a higher probability, not a timetable: even in the riskiest combination, many credit booms did not end in a crisis. In Principles for Navigating Big Debt Crises, Dalio describes long-term and short-term debt cycles and “beautiful deleveragings” from a practitioner’s standpoint (Dalio 2018); that is a framework distilled from history by a market participant and can serve as a reference for observation, but it is not a peer-reviewed statistical test.

Hypothesis · not established

Debt-service structural shift hypothesis (not yet established). On Minsky’s mechanism, the share of borrowers whose cash flow covers interest but not principal (speculative borrowers) rises during credit booms, and rises more before crises than before credit expansions that end without a crisis. This can be tested with firm-level data on cash flows and debt maturities. If the share of speculative and Ponzi borrowers rises no more before crises than before calm expansions, the hypothesis is weakened.

Summary

Minsky’s financial instability hypothesis holds that a long boom shifts the financing structure from hedge towards speculative and Ponzi finance; a simple classification program shows that a rise in interest rates alone produces such a shift. The Goodwin model has only undamped cycles; the Keen model with debt can converge to a steady state or move towards exploding debt, depending on parameters and starting point. Long-run data across countries show that credit booms markedly raise the probability of a crisis but give no timetable. The next chapter turns to another way of understanding “small causes, large effects”: self-organised criticality.

References

Dalio, Ray. 2018. Principles for Navigating Big Debt Crises. Bridgewater.
Fisher, Irving. 1933. “The Debt-Deflation Theory of Great Depressions.” Econometrica 1 (4): 337–57.
Goodwin, Richard M. 1967. “A Growth Cycle.” In Socialism, Capitalism and Economic Growth, edited by C. H. Feinstein. Cambridge University Press.
Grasselli, Matheus R., and B. Costa Lima. 2012. “An Analysis of the Keen Model for Credit Expansion, Asset Price Bubbles and Financial Fragility.” Mathematics and Financial Economics 6 (3): 191–210. https://doi.org/10.1007/s11579-012-0071-8.
Greenwood, Robin, Samuel G. Hanson, Andrei Shleifer, and Jakob Ahm Sørensen. 2022. “Predictable Financial Crises.” Journal of Finance 77 (2): 863–921.
Jordà, Òscar, Moritz Schularick, and Alan M. Taylor. 2013. “When Credit Bites Back.” Journal of Money, Credit and Banking 45 (s2): 3–28.
Keen, Steve. 1995. “Finance and Economic Breakdown: Modeling Minsky’s ‘Financial Instability Hypothesis’.” Journal of Post Keynesian Economics 17 (4): 607–35.
Mian, Atif, Amir Sufi, and Emil Verner. 2017. “Household Debt and Business Cycles Worldwide.” Quarterly Journal of Economics 132 (4): 1755–817.
Minsky, Hyman P. 1986. Stabilizing an Unstable Economy. Yale University Press.
Minsky, Hyman P. 1992. The Financial Instability Hypothesis. Working Paper No. 74. The Jerome Levy Economics Institute of Bard College.
Schularick, Moritz, and Alan M. Taylor. 2012. “Credit Booms Gone Bust: Monetary Policy, Leverage Cycles, and Financial Crises, 1870–2008.” American Economic Review 102 (2): 1029–61.

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).