Conozco dos procedimientos para "arreglar" una matriz de correlación que tiene valores propios negativos como resultado de un error de redondeo. Uno es de Higham "Computing the nearest correlation matrix, a problem in finance", que está implementado en el paquete R nearPD. El otro es de Rebonato y está publicado bajo el título "el método más general para crear una matriz de correlación válida".
Además, algunas personas intentan evitar el problema por completo estimando la matriz mediante un método de contracción que garantiza que el resultado es positivo definido. Entre ellos se encuentra "Improved Estimation of the Covariance Matrix of Stock Returns", de Ledoit y Wolf, con código disponible en Matlab, y documentos relacionados.