merton.calibration.base

Calibrator ABC, result dataclass, and registry.

Classes

CalibrationResult

Output of any Calibrator.

Calibrator

Base class for calibration strategies.

Functions

register(→ Any)

Decorator: register a custom Calibrator under name.

get(→ type[Calibrator])

Look up a calibrator class by name.

available_methods(→ list[str])

Return all registered calibration method names.

Module Contents

class merton.calibration.base.CalibrationResult[source]

Output of any Calibrator.

asset_value[source]

Inferred firm asset value A (scalar or time series).

asset_vol[source]

Inferred annualised asset volatility σ_A.

asset_drift[source]

Inferred drift μ (only set by MLE methods).

log_likelihood[source]

Optimised log-likelihood, when applicable.

covariance[source]

Asymptotic covariance matrix of parameters, when applicable.

n_iter[source]

Iteration count of the solver.

converged[source]

Whether the solver hit tol before max_iter.

method[source]

Name of the calibrator that produced this result.

diagnostics[source]

Free-form bag of solver-specific telemetry.

asset_value: float | merton._typing.FloatArray[source]
asset_vol: float[source]
asset_drift: float | None = None[source]
log_likelihood: float | None = None[source]
covariance: numpy.ndarray | None = None[source]
n_iter: int = 0[source]
converged: bool = True[source]
method: str = 'unknown'[source]
diagnostics: dict[str, Any][source]
class merton.calibration.base.Calibrator[source]

Bases: abc.ABC

Base class for calibration strategies.

Subclasses override fit() and set the class attribute method (a short string identifier used for registry lookups).

method: ClassVar[str] = ''[source]
abstractmethod fit(firm: merton.core.firm.Firm) CalibrationResult[source]

Infer asset value & volatility for firm.

merton.calibration.base.register(name: str) Any[source]

Decorator: register a custom Calibrator under name.

Examples

>>> @register("my_method")
... class MyCalibrator(Calibrator):
...     method = "my_method"
...
...     def fit(self, firm): ...
merton.calibration.base.get(name: str) type[Calibrator][source]

Look up a calibrator class by name.

merton.calibration.base.available_methods() list[str][source]

Return all registered calibration method names.