skfolio.moments.EquilibriumMu#
- class skfolio.moments.EquilibriumMu(risk_aversion=1, weights=None, covariance_estimator=None)[source]#
Equilibrium Expected Returns (Mu) estimator.
The Equilibrium is defined as:
\[risk\_aversion \times \Sigma \cdot w^T\]For Market Cap Equilibrium, the weights are the assets Market Caps. For Equal-weighted Equilibrium, the weights are equal-weighted (1/N).
- Parameters:
- risk_aversionfloat, default=1.0
Risk aversion factor. The default value is
1.0.- weightsarray-like of shape (n_assets,), optional
Reference portfolio weights used to compute the implied excess returns. Supplied weights are used as given, without normalization. They may contain negative values and need not sum to one. Their scale is preserved, so changing the portfolio exposure changes the estimated returns.
For a market-cap-weighted equilibrium, provide normalized market capitalizations:
market_caps / market_caps.sum().Other weights define a reverse-optimization prior for the chosen reference portfolio, which may be leveraged, long-short, or market-neutral.
The default (
None) is to use equal weights (1/N).- covariance_estimatorBaseCovariance, optional
Covariance estimator used to estimate the covariance in the equilibrium formula. The default (
None) is to useEmpiricalCovariance.
- Attributes:
- mu_ndarray of shape (n_assets,)
Estimated expected returns of the assets.
- covariance_estimator_BaseCovariance
Fitted
covariance_estimator.- n_features_in_int
Number of assets seen during
fit.- feature_names_in_ndarray of shape (
n_features_in_,) Names of assets seen during
fit. Defined only whenXhas assets names that are all strings.
Methods
fit(X[, y])Fit the EquilibriumMu estimator model.
Get metadata routing for this estimator.
get_params([deep])Get parameters for this estimator.
set_params(**params)Set the parameters of this estimator.
- fit(X, y=None, **fit_params)[source]#
Fit the EquilibriumMu estimator model.
- Parameters:
- Xarray-like of shape (n_observations, n_assets)
Price returns of the assets.
- yIgnored
Not used, present for API consistency by convention.
- **fit_paramsdict
Parameters to pass to the underlying estimators. Only available if
enable_metadata_routing=True, which can be set by usingsklearn.set_config(enable_metadata_routing=True). See Metadata Routing User Guide for more details.
- Returns:
- selfEquilibriumMu
Fitted estimator.
- get_metadata_routing()[source]#
Get metadata routing for this estimator.
Routes metadata passed to
fitto thefitmethod ofcovariance_estimator.- Returns:
- routingMetadataRouter
Metadata routing configuration.
- 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.
- 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.