merton.calibration.jmr_iterative

Jones-Mason-Rosenfeld (1984) iterative calibration.

Solve the two simultaneous equations

E    = A · Φ(d₁) - D · e^{-rT} · Φ(d₂)              (BSM call value)
σ_E  = (A / E) · Φ(d₁) · σ_A                         (Ito's lemma)

for the unknowns A (asset value) and σ_A (asset volatility). Practically identical to the proprietary Crosbie-Bohn KMV iteration when applied to a snapshot of one firm.

Classes

JMRCalibrator

OO wrapper around jmr_iterative().

Functions

jmr_iterative(→ merton.calibration.base.CalibrationResult)

Solve the JMR two-equation system. Scalar inputs only.

Module Contents

merton.calibration.jmr_iterative.jmr_iterative(*, equity: float, equity_vol: float, debt: float, rf: float, T: float, dividend_yield: float = 0.0, tol: float = 1e-08, max_iter: int = 200) merton.calibration.base.CalibrationResult[source]

Solve the JMR two-equation system. Scalar inputs only.

Examples

>>> res = jmr_iterative(equity=80, equity_vol=0.30, debt=60, rf=0.04, T=1.0)
>>> abs(res.asset_value - 137) < 5  # rough sanity, exact value depends on σ_E
True
class merton.calibration.jmr_iterative.JMRCalibrator(*, tol: float = 1e-08, max_iter: int = 200)[source]

Bases: merton.calibration.base.Calibrator

OO wrapper around jmr_iterative().

method = 'jmr_iterative'[source]
tol = 1e-08[source]
max_iter = 200[source]
fit(firm: merton.core.firm.Firm) merton.calibration.base.CalibrationResult[source]

Infer asset value & volatility for firm.