R

解釋 eigen 如何幫助反轉矩陣

  • October 29, 2015

我的問題與在geoR:::.negloglik.GRFor中利用的計算技術有關geoR:::solve.geoR

在線性混合模型設置中:

在哪裡和分別是固定效應和隨機效應。還, 在估計效果時,需要計算

這通常可以使用類似的東西來完成solve(XtS_invX,XtS_invY),但有時幾乎是不可逆的,所以geoR使用技巧

t.ei=eigen(XtS_invX)
crossprod(t(t.ei$vec)/sqrt(t.ei$val))%*%XtS_invY

(可以在geoR:::.negloglik.GRF和中看到geoR:::.solve.geoR)這相當於分解

在哪裡因此

兩個問題:

  1. 這種特徵分解如何幫助反演?
  2. 還有其他可行的替代方案(強大且穩定)嗎?(例如qr.solvechol2inv?)

1)特徵分解並沒有那麼大的幫助。它肯定比 Cholesky 分解在數值上更穩定,如果您的矩陣是病態/幾乎奇異/具有高條件數,這將很有幫助。所以你可以使用特徵分解,它會給你一個解決問題的方法。但幾乎​​不能保證它會是正確的解決方案。老實說,一旦你明確地反轉,傷害已經造成。成型只會讓事情變得更糟。特徵分解將幫助您贏得戰鬥,但戰爭肯定會失敗。

2)不知道你的問題的細節,這就是我會做的。首先,對上執行 Cholesky 分解以便. 然後執行 QR 分解以便. 請務必計算使用前向替換 -不要顯式反轉. 那麼你得到:

從這裡,你可以解決任何你想要的右手邊。但同樣,請不要明確反轉(或者)。必要時使用前向和後向替換。 順便說一句,我很好奇你等式的右邊。你寫的是. 你確定不是? 因為如果是這樣,您可以在右側使用類似的技巧:

然後當你去解決:

當然,您永遠不會顯式反轉最後一步,對吧?這只是一個反向替換。:-)

引用自:https://stats.stackexchange.com/questions/179185

comments powered by Disqus