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 when X 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()

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.