R
解釋
解釋 eigen
如何幫助反轉矩陣
我的問題與在
geoR:::.negloglik.GRF
or中利用的計算技術有關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
)這相當於分解在哪裡因此
兩個問題:
- 這種特徵分解如何幫助反演?
- 還有其他可行的替代方案(強大且穩定)嗎?(例如
qr.solve
或chol2inv
?)
1)特徵分解並沒有那麼大的幫助。它肯定比 Cholesky 分解在數值上更穩定,如果您的矩陣是病態/幾乎奇異/具有高條件數,這將很有幫助。所以你可以使用特徵分解,它會給你一個解決問題的方法。但幾乎不能保證它會是正確的解決方案。老實說,一旦你明確地反轉,傷害已經造成。成型只會讓事情變得更糟。特徵分解將幫助您贏得戰鬥,但戰爭肯定會失敗。
2)不知道你的問題的細節,這就是我會做的。首先,對上執行 Cholesky 分解以便. 然後執行 QR 分解以便. 請務必計算使用前向替換 -不要顯式反轉. 那麼你得到:
從這裡,你可以解決任何你想要的右手邊。但同樣,請不要明確反轉(或者)。必要時使用前向和後向替換。 順便說一句,我很好奇你等式的右邊。你寫的是. 你確定不是? 因為如果是這樣,您可以在右側使用類似的技巧:
然後當你去解決:
當然,您永遠不會顯式反轉最後一步,對吧?這只是一個反向替換。:-)