skfolio.prior
.EmpiricalPrior#
- class skfolio.prior.EmpiricalPrior(mu_estimator=None, covariance_estimator=None, is_log_normal=False, investment_horizon=None)[source]#
Empirical Prior estimator.
The Empirical Prior estimates the
PriorModel
by fitting amu_estimator
and acovariance_estimator
separately.- Parameters:
- mu_estimatorBaseMu, optional
The assets expected returns estimator. The default (
None
) is to useEmpiricalMu
.- covariance_estimatorBaseCovariance , optional
The assets covariance matrix estimator. The default (
None
) is to useEmpiricalCovariance
.- is_log_normalbool, default=False
If this is set to True, the moments are estimated on the logarithmic returns as opposed to the linear returns. Then the moments estimations of the logarithmic returns are projected to the investment horizon and transformed to obtain the moments estimation of the linear returns at the investment horizon. If True,
investment_horizon
must be provided. The inputX
must be linear returns. They will be converted into logarithmic returns only for the moments estimation.See also
- investment_horizonfloat, optional
The investment horizon used for the moments estimation of the linear returns when
is_log_normal
isTrue
.
- Attributes:
- prior_model_PriorModel
The assets
PriorModel
.- mu_estimator_BaseMu
Fitted
mu_estimator
.- 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 features seen during
fit
. Defined only whenX
has feature names that are all strings.
References
[1]“Linear vs. Compounded Returns - Common Pitfalls in Portfolio Management”. GARP Risk Professional. Attilio Meucci (2010).
Methods
fit
(X[, y])Fit the Empirical Prior estimator.
Get metadata routing of this object.
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 Empirical Prior estimator.
- 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:
- selfEmpiricalPrior
Fitted estimator.
- get_metadata_routing()[source]#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequest
encapsulating 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.
- 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.