In his books, Marcos mentions a technique that allows us to denoise a correlation matrix. It is based on linear algebra, more particularly eigenvalues and eigenvectors.
I have a correlation matrix of the returns of 500 stocks, and in order to denoise the matrix I have to find the maximum eigenvalue thanks to Marcenko-Pastur's theorem. However, except the largest eigenvalue (around 300) the other eigenvalues computed by Python are very close to 0 and some are negatives. Therefore I can't fit any Marcenko-Pastur's distribution and even if I could, it would eliminate all eigenvalues except the first.
Have you already implemented Marcos' technique of denoising and have it worked ? Or do you know why all my eigenvalues are very close to 0 / negative ?
Thank you and take care,