skfolio.descriptor.EbitdaToEnterpriseValue#
- class skfolio.descriptor.EbitdaToEnterpriseValue[source]#
EBITDA-to-enterprise-value ratio descriptor.
Computes the ratio of trailing twelve-month EBITDA to enterprise value:
\[\text{ebitda\_to\_enterprise\_value}(t) = \frac{\text{ebitda\_ttm}(t)}{\text{enterprise\_value}(t)}\]Enterprise value adjusts for capital structure by adding debt and subtracting cash and equivalents from market capitalization:
\[EV = \text{market\_cap} + \text{total\_debt} - \text{cash\_and\_equivalents}\]EBITDA measures operating profitability before financing, taxes and non-cash charges. A high ratio identifies firms generating strong operating income relative to their total firm value, regardless of how they are financed. The corresponding enterprise multiple has been studied as a predictor of average stock returns [1].
This is the inverse of the conventional EV/EBITDA multiple. It provides a valuation measure that is comparable across firms with different leverage, unlike price-based ratios which only reflect equity value.
If
enterprise_valueis not available directly from your data provider, it can be computed as:\[\text{EV} = \text{market\_cap} + \text{total\_debt} - \text{cash\_and\_equivalents}\]Non-missing
enterprise_valuevalues must be finite. Observations withenterprise_value <= 0are masked to NaN because the valuation yield is not economically interpretable.- 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 EBITDA-to-enterprise-value 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.
References
[1]“New evidence on the relation between the enterprise multiple and average stock returns” Journal of Financial and Quantitative Analysis. Loughran, T., & Wellman, J. W. (2011).
Examples
>>> from skfolio.datasets import make_synthetic_characteristics >>> from skfolio.descriptor import EbitdaToEnterpriseValue >>> >>> X = make_synthetic_characteristics() >>> >>> descriptor = EbitdaToEnterpriseValue() >>> ebitda_to_enterprise_value = descriptor.fit_transform(X)
- fit_transform(X, y=None, **fit_params)[source]#
Compute EBITDA-to-enterprise-value ratios.
- Parameters:
- XAssetPanel
Input panel containing
ebitda_ttmandenterprise_value.- yNone
Ignored. Present for compatibility with scikit-learn’s API.
- **fit_paramsdict
Additional fit parameters. Ignored.
- Returns:
- ebitda_to_enterprise_valuendarray of shape (n_observations, n_assets)
EBITDA divided by enterprise value 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.