7 votos

Cómo tratar a los grandes (5K-10K) no positivo-definida (especialmente cerca-singular) de las matrices de covarianza para la descomposición de Cholesky?

Tengo una gran matriz de covarianza (alrededor de 10000x10000) de los rendimientos, que está construido utilizando un tamaño de muestra de 1000 10000 variables. Mi objetivo es realizar una (de buen ver) la descomposición de Cholesky de la matriz. Sin embargo, como era de esperar, esta matriz es casi singular con muy pequeñas ( < 10^-10 ) valores propios (alrededor de 5K-6K de 10K).

He intentado un enfoque ingenuo; haciendo un autovalor de descomposición, y la configuración de todos los autovalores de menos de 10^-10 a 10^-10. En otras palabras, si el autovalor < 10^-10, entonces autovalor = 10^-10. Después de eso, he reconstruido la matriz con la modificación de autovalor de la matriz. Sin embargo, a pesar de que puede realizar la descomposición de Cholesky, es muy inestable.

¿Cuál es la mejor manera de manejar este EP aproximación para matrices grandes?

2voto

El problema se demostró en R con la solución interesante Equidad Modelo de Riesgo de Uso de PCA. Otro enlace útil en Matlab por Nick Higham mismo NCM aplicación por parte de Nick Higham escrito para Matlab. Otra buena discusión sobre la contracción y otros aspectos de la Correlación de Ajuste

1voto

scottishwildcat Puntos 146

Creo que tu problema se resuelve mediante el uso de otro estimador para su matriz de covarianza. Lo que se llama un estimador de la contracción conduce a la matriz de covarianza que es no singular. A continuación, una descomposición de Cholesky, debería funcionar (tal vez incluso hay un pequeño corte en la contracción mundo, voy a comprobar alter on).

El paquete de R corpcor contiene funciones para realizar la contracción de la estimación. Más información se puede encontrar en la página web del desarrollador.

1voto

Marco Breitig Puntos 463

De LEP de la respuesta:

habrá p−t autovalores cero cuando p>t y un autovalor cero cuando p=t.

Esta es la razón principal, su verdadera matriz de covarianza tendrá p-t autovalores exactamente 0. Con equipo aritmética usted tendrá un montón de autovalores alrededor de precisión de la máquina, por lo general alrededor de 10^-15. Así que no sólo debería ser alrededor de 5K-6K cero autovalores, pero sobre 9K.

Usted también puede tener una mirada en el Cómputo de la más cercana de la matriz de correlación-un problema de financiación por Nicholas J. Higham.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X