skfolio.descriptor.MarketLeverage#
- class skfolio.descriptor.MarketLeverage[source]#
Market leverage descriptor.
Computes the proportion of total capital (at market value) financed by debt:
\[\text{market\_leverage}(t) = \frac{\text{total\_debt}(t)} {\text{total\_debt}(t) + \text{market\_cap}(t)}\]Market leverage blends accounting data (total debt) with market data (market capitalization). Unlike
BookLeverage, the denominator updates daily with the stock price, making it more responsive to changes in the firm’s risk profile. When a stock drops sharply, market leverage rises immediately, capturing the increased financial risk before any accounting restatement [1].NaNs are allowed as missing observations and propagate to the output. Non-missing
total_debtvalues must be finite. Non-missingmarket_capvalues must be finite and strictly positive.When
total_debtis non-negative and given thatmarket_capis non-negative by construction, the ratio is bounded in \([0, 1)\). This makes it the most numerically well-behaved of the leverage descriptors, requiring no special treatment for negative-equity firms.- Parameters:
- None
- Attributes:
- n_assets_int
Number of assets seen during fitting.
- asset_names_ndarray of shape (n_assets,)
Asset names seen during fitting.
Methods
fit_transform(X[, y])Compute market leverage ratios.
Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
partial_fit_transform(X[, y])Stateless class delegation to
fit_transform.set_params(**params)Set the parameters of this estimator.
See also
DebtToAssetsLeverage relative to total assets.
BookLeverageLeverage as a fraction of total book capital.
References
[1]“Capital structure decisions: which factors are reliably important?” Financial Management. Frank, M. Z., & Goyal, V. K. (2009).
Examples
>>> from skfolio.datasets import make_synthetic_characteristics >>> from skfolio.descriptor import MarketLeverage >>> >>> X = make_synthetic_characteristics() >>> >>> descriptor = MarketLeverage() >>> market_leverage = descriptor.fit_transform(X)
- fit_transform(X, y=None, **fit_params)[source]#
Compute market leverage ratios.
- Parameters:
- XAssetPanel
Input panel containing
total_debtandmarket_cap.- yNone
Ignored. Present for compatibility with scikit-learn’s API.
- **fit_paramsdict
Additional fit parameters. Ignored.
- Returns:
- market_leveragendarray of shape (n_observations, n_assets)
Market leverage ratio for each observation and asset.
- get_metadata_routing()#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequestencapsulating routing information.
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters:
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
- paramsdict
Parameter names mapped to their values.
- partial_fit_transform(X, y=None, **fit_params)#
Stateless class delegation to
fit_transform.
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline). The latter have parameters of the form<component>__<parameter>so that it’s possible to update each component of a nested object.- Parameters:
- **paramsdict
Estimator parameters.
- Returns:
- selfestimator instance
Estimator instance.