skfolio.moments.DetoneCovariance#
- class skfolio.moments.DetoneCovariance(covariance_estimator=None, n_markets=1, nearest=True, higham=False, higham_max_iteration=100)[source]#
 Covariance Detoning estimator.
Financial covariance matrices usually incorporate a market component corresponding to the first eigenvectors [1]. For some applications like clustering, removing the market component (loud tone) allow a greater portion of the covariance to be explained by components that affect specific subsets of the securities.
- Parameters:
 - covariance_estimatorBaseCovariance, optional
 Covariance estimator to estimate the covariance matrix prior detoning. The default (
None) is to useEmpiricalCovariance.- n_marketsint, default=1
 Number of eigenvectors related to the market. The default value is
1.- nearestbool, default=True
 If this is set to True, the covariance is replaced by the nearest covariance matrix that is positive definite and with a Cholesky decomposition than can be computed. The variance is left unchanged. A covariance matrix that is not positive definite often occurs in high dimensional problems. It can be due to multicollinearity, floating-point inaccuracies, or when the number of observations is smaller than the number of assets. For more details, see
cov_nearest. The default isTrue.- highambool, default=False
 If this is set to True, the Higham (2002) algorithm is used to find the nearest PD covariance, otherwise the eigenvalues are clipped to a threshold above zeros (1e-13). The default is
Falseand uses the clipping method as the Higham algorithm can be slow for large datasets.- higham_max_iterationint, default=100
 Maximum number of iterations of the Higham (2002) algorithm. The default value is
100.
- Attributes:
 - covariance_ndarray of shape (n_assets, n_assets)
 Estimated covariance.
- 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 Covariance Detoning estimator.
Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
set_params(**params)Set the parameters of this estimator.
References
[1]“Machine Learning for Asset Managers”. Elements in Quantitative Finance. Lòpez de Prado (2020).
- fit(X, y=None, **fit_params)[source]#
 Fit the Covariance Detoning 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:
 - selfDetoneCovariance
 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
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.
- 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.