Handling Negative Eigenvalues in Estimated Correlation Matrices
Summary
A correlation matrix may show small negative eigenvalues because of floating-point rounding or estimation problems. The document does not supply a universal cutoff for deciding whether a negative value is merely numerical noise. Instead, it points to established approaches for producing a valid correlation matrix: Higham’s nearest-correlation-matrix method, Rebonato’s method for constructing valid correlation matrices, and shrinkage estimators designed to ensure positive definiteness.
These methods address the matrix as a whole rather than relying on an arbitrary eigenvalue threshold. The cited approaches are relevant to financial correlation and covariance estimation, including stock-return data. The short answer names methods and references but offers no implementation details, diagnostics for distinguishing numerical error from structural problems, or comparison of the methods’ effects on downstream portfolio calculations. Choosing among them therefore requires attention to the estimation task and the properties desired in the repaired matrix.
Key ideas
- Small negative eigenvalues in a correlation matrix may result from numerical rounding or estimation issues.
- Higham’s nearest-correlation-matrix method can repair an invalid correlation matrix.
- Rebonato’s method provides another approach to constructing valid correlation matrices.
- Shrinkage estimation can produce positive definite covariance or correlation estimates.
Tags
Full text
# How to distinguish true negative eigenvalues from small negative eigenvalues due to floating point error? # How to distinguish true negative eigenvalues from small negative eigenvalues due to floating point error? Floating points have rounding errors so algorithm to find eigenvalues may report tiny negative eigenvalues but in reality thsee could actually be 0 if we had full precision. Any way to tell ? I have correlation matrix. Any way to pick cut off value ? ## Answer by Alex C (score 2) https://quant.stackexchange.com/a/21259 I know of two procedures to "fix" a correlation matrix which has negative eigenvalues as a result of rounding error. One is by Higham "Computing the nearest correlation matrix, a problem in finance", which is implemented in the R package nearPD. The other is by Rebonato and is published under the title "the most general method to create a valid correlation matrix". I addition some people attempt to bypass the problem entirely by estimating the matrix using a shrinkage method that guarantees the result is positive definite. Among these is Ledoit and Wolf's "Improved Estimation of the Covariance Matrix of Stock Returns", with code available in Matlab, and related papers.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.