Explicar cómo `eigen` ayuda a invertir una matriz


13

Mi pregunta se refiere a una técnica de cálculo explotada en geoR:::.negloglik.GRFo geoR:::solve.geoR.

En una configuración de modelo mixto lineal: donde y son los efectos fijos y aleatorios, respectivamente. Además,

Y=Xβ+Zsi+mi
βsiΣ=cov(Y)

Al estimar los efectos, es necesario calcular

(XΣ-1X)-1XΣ-1Y
que normalmente se puede hacer usando algo como solve(XtS_invX,XtS_invY), pero a veces (XΣ-1X) es casi no invertible, así que geoRemplea el truco
t.ei=eigen(XtS_invX)
crossprod(t(t.ei$vec)/sqrt(t.ei$val))%*%XtS_invY

(puede verse en geoR:::.negloglik.GRFy geoR:::.solve.geoR) lo que equivale a descomponerse where y, por lo tanto,

(XΣ-1X)=ΛreΛ-1
( X Σ - 1 X ) - 1 = ( D -Λ=Λ-1
(XΣ-1X)-1=(re-1/ /2Λ-1)(re-1/ /2Λ-1)

Dos preguntas:

  1. ¿Cómo esta descomposición propia ayuda a invertir ?(XΣ-1X)
  2. ¿Hay alguna otra alternativa viable (que sea robusta y estable)? (p. ej. qr.solveo chol2inv?)

Respuestas:


15

1) La descomposición propia realmente no ayuda mucho. Ciertamente es más estable numéricamente que una factorización de Cholesky, lo que es útil si su matriz está mal acondicionada / casi singular / tiene un número de condición alto. Por lo tanto, puede usar la descomposición propia y le dará una solución a su problema. Pero hay pocas garantías de que será la solución CORRECTA . Honestamente, una vez que inviertes explícitamente , el daño ya está hecho. Formar simplemente empeora las cosas. La descomposición propia lo ayudará a ganar la batalla, pero la guerra ciertamente se pierde.X T Σ - 1 XΣXTΣ-1X

2) Sin saber los detalles de su problema, esto es lo que haría. En primer lugar, realizar una factorización de Cholesky de de manera que . Luego realice una factorización QR en para que . Por favor asegúrese de cómputo mediante la sustitución hacia delante - NO explícitamente invertido . Entonces obtienes: Desde aquí, puede resolver cualquier lado derecho que desee. Pero otra vez,Σ = L L T L - 1 X L - 1 X = Q R L - 1 X L X T Σ - 1 X = X T ( L L T ) - 1 XΣΣ=LLTL-1XL-1X=QRL-1XL RRTR

XTΣ-1X=XT(LLT)-1X=XTL-TL-1X=(L-1X)T(L-1X)=(QR)TQR=RTQTQT=RTR
R(o ). Use sustituciones hacia adelante y hacia atrás según sea necesario.RTR

Por cierto, tengo curiosidad sobre el lado derecho de su ecuación. Usted escribió que es . ¿Estás seguro de que no es ? Porque si lo fuera, podría usar un truco similar en el lado derecho: Y luego puede entregar el golpe de gracia cuando vaya a resolver : X T Σ - 1 Y X T Σ - 1 Y = X T ( L L T ) - 1 YXTΣYXTΣ-1Y

XTΣ-1Y=XT(LLT)-1Y=XTL-TL-1Y=(L-1X)TL-1Y=(QR)TL-1Y=RTQTL-1Y
β
XTΣ-1Xβ=XTΣ-1YRTRβ=RTQTL-1YRβ=QTL-1Yβ=R-1QTL-1Y
Rpara el paso final, ¿verdad? Eso es solo una sustitución hacia atrás. :-)

Gracias. Esta es una respuesta útil. Para ser explícito, ¿su alternativa chol / qr ayudará a ganar la guerra? o simplemente ganar el juego mejor que lo que hace eigen?
qoheleth

Esa es una pregunta difícil de responder. Estoy seguro de que la combinación de las factorizaciones Cholesky y QR le dará una mejor respuesta (y una respuesta más rápida). Si es la respuesta correcta realmente depende de la fuente del problema. En este caso, hay 2 fuentes potenciales. O las columnas de dependen casi linealmente o se acerca a singular. Cuando forma , estos problemas se amplifican entre sí. El enfoque Cholesky + QR no mitiga (y no puede) ninguno de estos problemas, pero evita que la situación empeore. XΣXTΣ-1X
Bill Woessner
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.