Объясните, как `eigen` помогает инвертировать матрицу

13

Мой вопрос относится к вычислительной технике, используемой в geoR:::.negloglik.GRFили geoR:::solve.geoR.

В линейной смешанной модели:

Y=Xβ+Zb+e
где β и b - фиксированные и случайные эффекты соответственно. Также Σ=cov(Y)

При оценке последствий, необходимо , чтобы вычислить , которые обычно можно сделать , используя что - то вроде , но иногда ( X ' Σ - 1 X ) почти не- обратимый, так что используй трюк

(XΣ1X)1XΣ1Y
solve(XtS_invX,XtS_invY)(XΣ1X)geoR
t.ei=eigen(XtS_invX)
crossprod(t(t.ei$vec)/sqrt(t.ei$val))%*%XtS_invY

(можно увидеть в geoR:::.negloglik.GRFи geoR:::.solve.geoR) , которая составляет разлагая

(XΣ1X)=ΛDΛ1
где и , следовательно , ( Х ' Σ - 1 X ) - 1 = ( Д - 1 / 2 Λ - 1 ) ' ( Д - 1 / 2 Λ - 1 )Λ=Λ1
(XΣ1X)1=(D1/2Λ1)(D1/2Λ1)

Два вопроса:

  1. Как это собственное разложение помогает переворачивания ?(XΣ1X)
  2. Есть ли другие жизнеспособные альтернативы (надежные и стабильные)? (например qr.solveили chol2inv?)
Qoheleth
источник

Ответы:

15

ΣXTΣ1X

ΣΣ=LLTL1XL1X=QRL1XL

XTΣ1X=XT(LLT)1X=XTLTL1X=(L1X)T(L1X)=(QR)TQR=RTQTQT=RTR
RRTR

XTΣYXTΣ1Y

XTΣ1Y=XT(LLT)1Y=XTLTL1Y=(L1X)TL1Y=(QR)TL1Y=RTQTL1Y
β
XTΣ1Xβ=XTΣ1YRTRβ=RTQTL1YRβ=QTL1Yβ=R1QTL1Y
R
Билл Весснер
источник
Благодарю. это полезный ответ. Проще говоря, ваша альтернатива chol / qr поможет выиграть войну? или просто выиграть игру лучше, чем то, что делает Эйген?
Кохелет
Это сложный вопрос, чтобы ответить. Я уверен, что объединение факторизаций Холецкого и QR даст вам лучший ответ (и более быстрый ответ). Правильный ли это ответ зависит от источника проблемы. В этом случае есть 2 потенциальных источника. Либо колонныИкс почти линейно зависимы или Σприближается к единственному. Когда вы формируетеИксTΣ-1ИксЭти проблемы усиливают друг друга. Подход Cholesky + QR не (и не может) смягчить ни одну из этих проблем, но предотвращает ухудшение ситуации.
Билл Весснер