skfolio.moments
.EWCovariance#
- class skfolio.moments.EWCovariance(window_size=None, alpha=0.2, nearest=True, higham=False, higham_max_iteration=100)[source]#
Exponentially Weighted Covariance estimator.
Estimator of the covariance using the historical exponentially weighted returns.
- Parameters:
- window_sizeint, optional
Window size. The model is fitted on the last
window_size
observations. The default (None
) is to use all the data.- alphafloat, default=0.2
Exponential smoothing factor. The default value is
0.2
.\(0 < \alpha \leq 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 & Nick (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
False
and use the clipping method as the Higham & Nick algorithm can be slow for large datasets.- higham_max_iterationint, default=100
Maximum number of iteration of the Higham & Nick (2002) algorithm. The default value is
100
.
- Attributes:
- covariance_ndarray of shape (n_assets, n_assets)
Estimated covariance.
- 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.
Methods
fit
(X[, y])Fit the Exponentially Weighted Covariance 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 Exponentially Weighted Covariance 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:
- selfEWCovariance
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.