Minimum Covariance Determinant (MCD) is a robust estimator of
covariance introduced by Rousseeuw [1]. The main idea behind the MCD
is to find a fixed proportion of observations whose scatter matrix has
the minimum determinant.
The MCD estimator is computed with the FastMCD algorithm [2].
[1] P. J. Rousseeuw. Least median of squares regression. J. Am Stat
Ass, 79:871, 1984.
[2] P. J. Rousseeuw and K. Van Driessen. A fast algorithm for the
minimum covariance determinant estimator. Technometrics, 41(3):212,
1999.
Mean Squared Error, Sum of Squared Error are controversial notions in
a covariances comparison context, so it is better not to use those terms
and let the user decide which type of error he exactly wants.
For this purpose, keywords have been introduced so that the user can choose:
- the type of norm he wants to use,
- if a scaling by the number of features must be applied,
- if he wants the square of the error norm or just the error norm
The user can now choose either Mean Squared Error, Root Mean Squared
Error or Sum of Squared Errors through a keyword.
Others types of error may be implemented depending on future needs.
I had to consider the case of assumed centered data separately,
yielding a lot of "if... else..." instructions and a lot
"assume_centered" arguments wherever needed.
Note that makes the code less readable (check lw_vs_oas.py example).
We now have the inheritance scheme:
Covariance <-- ShrunkCovariance <-- LedoitWolf and
Covariance <-- ShrunkCovariance <-- OAS
since LedoitWolf ans OAS are particular cases of shrinkage.
A nex example has been added. Previous one has been updated.