merton.batch.panel

batch_fit — calibrate Merton over a panel of firms in parallel.

Functions

batch_fit(→ Any)

Fit a Merton model to every firm in a panel.

Module Contents

merton.batch.panel.batch_fit(df: Any, *, method: str = 'vassalou_xing', mapping: dict[str, str] | None = None, n_jobs: int = -1, dispatch: str = 'joblib', chunk_size: int | None = None, progress: bool = False, on_error: str = 'warn', horizon: float | None = None, **fit_kwargs: Any) Any[source]

Fit a Merton model to every firm in a panel.

Parameters:
  • df – Either a FirmPanel, pandas DataFrame, polars DataFrame, or pyarrow Table containing one row per (firm, snapshot). Required columns: equity, debt_short, debt_long. Optional: equity_vol, rf, dividend_yield, horizon, ticker.

  • method – Calibration method (any name in merton.calibration.available_methods()).

  • mapping – Optional column-rename map applied before validation.

  • n_jobs – joblib workers. -1 = all logical cores.

  • dispatch"joblib" (default), "sequential", "dask", or "ray".

  • chunk_size – Chunk size for the dispatch. Default: max(1, len(panel)//n_jobs). (Currently advisory — joblib chooses chunk sizes automatically.)

  • progress – Render a Rich progress bar.

  • on_error"warn" (default) emits a warning and continues with NaNs. "raise" propagates the first exception. "skip" drops the row.

  • horizon – Override the horizon for every firm (handy when the input panel doesn’t carry one).

  • **fit_kwargs – Forwarded to MertonModel (e.g. tol, max_iter, physical_measure, sharpe_ratio, n_bootstrap).