OAS

class ibex.sklearn.covariance.OAS(store_precision=True, assume_centered=False)

Bases: sklearn.covariance.shrunk_covariance_.OAS, ibex._base.FrameMixin

Note

The documentation following is of the class wrapped by this class. There are some changes, in particular:

Oracle Approximating Shrinkage Estimator

Read more in the User Guide.

OAS is a particular form of shrinkage described in “Shrinkage Algorithms for MMSE Covariance Estimation” Chen et al., IEEE Trans. on Sign. Proc., Volume 58, Issue 10, October 2010.

The formula used here does not correspond to the one given in the article. It has been taken from the Matlab program available from the authors’ webpage (http://tbayes.eecs.umich.edu/yilun/covestimation). In the original article, formula (23) states that 2/p is multiplied by Trace(cov*cov) in both the numerator and denominator, this operation is omitted in the author’s MATLAB program because for a large p, the value of 2/p is so small that it doesn’t affect the value of the estimator.

store_precision : bool, default=True
Specify if the estimated precision is stored.
assume_centered : bool, default=False
If True, data are not centered before computation. Useful when working with data whose mean is almost, but not exactly zero. If False (default), data are centered before computation.
covariance_ : array-like, shape (n_features, n_features)
Estimated covariance matrix.
precision_ : array-like, shape (n_features, n_features)
Estimated pseudo inverse matrix. (stored only if store_precision is True)
shrinkage_ : float, 0 <= shrinkage <= 1
coefficient in the convex combination used for the computation of the shrunk estimate.

The regularised covariance is:

(1 - shrinkage)*cov
        + shrinkage*mu*np.identity(n_features)

where mu = trace(cov) / n_features and shrinkage is given by the OAS formula (see References)

“Shrinkage Algorithms for MMSE Covariance Estimation” Chen et al., IEEE Trans. on Sign. Proc., Volume 58, Issue 10, October 2010.

fit(X, y=None)[source]

Note

The documentation following is of the class wrapped by this class. There are some changes, in particular:

Fits the Oracle Approximating Shrinkage covariance model

according to the given training data and parameters.

X : array-like, shape = [n_samples, n_features]
Training data, where n_samples is the number of samples and n_features is the number of features.

y : not used, present for API consistence purpose.

self : object
Returns self.
score(X_test, y=None)

Note

The documentation following is of the class wrapped by this class. There are some changes, in particular:

Computes the log-likelihood of a Gaussian data set with

self.covariance_ as an estimator of its covariance matrix.

X_test : array-like, shape = [n_samples, n_features]
Test data of which we compute the likelihood, where n_samples is the number of samples and n_features is the number of features. X_test is assumed to be drawn from the same distribution than the data used in fit (including centering).

y : not used, present for API consistence purpose.

res : float
The likelihood of the data set with self.covariance_ as an estimator of its covariance matrix.