skfolio.distance
.SpearmanDistance#
- class skfolio.distance.SpearmanDistance(absolute=False, power=1)[source]#
Spearman Distance estimator.
The codependence is computed from the Spearman correlation to which is applied a power and/or absolute transformation. This codependence is then used to compute the distance matrix. Some widely used distances are:
Standard angular distance = \(\sqrt{0.5 \times (1 - corr)}\)
Absolute angular distance = \(\sqrt{1 - |corr|}\)
Squared angular distance = \(\sqrt{1 - corr^2}\)
- Parameters:
- absolutebool, default=False
If this is set to True, the absolute transformation is applied to the correlation matrix. The default is
False
.- powerfloat, default=1
Exponent of the power transformation applied to the correlation matrix. The default value is
1
.
- Attributes:
- codependence_ndarray of shape (n_assets, n_assets)
Codependence matrix.
- distance_ndarray of shape (n_assets, n_assets)
Distance matrix.
- 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 whenX
has assets names that are all strings.
References
[1]“Building Diversified Portfolios that Outperform Out-of-Sample”, Lòpez de Prado, Journal of Portfolio Management (2016)
Methods
fit
(X[, y])Fit the Spearman Kendall 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)[source]#
Fit the Spearman Kendall estimator.
- Parameters:
- Xarray-like of shape (n_observations, n_assets)
Price returns of the assets.
- yIgnored
Not used, present for API consistency by convention.
- Returns:
- selfSpearmanDistance
Fitted estimator.
- get_metadata_routing()#
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.