「固有」が行列の反転にどのように役立つかを説明する


13

私の質問は、geoR:::.negloglik.GRFまたはで悪用された計算技術に関するものgeoR:::solve.geoRです。

線形混合モデルのセットアップ: ここで、とはそれぞれ固定効果とランダム効果です。また、β B Σ = COV (Y )

Y=バツβ+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′Σ−1X)−1=(D−1/2Λ−1)′(D−1/2Λ−1)

2つの質問:

  1. この固有分解は反転にどのように役立ちますか?(X′Σ−1X)
  2. 他の実行可能な代替手段(堅牢で安定したもの)はありますか?(例:qr.solveまたはchol2inv)

回答:


15

1)固有分解はそれほど役に立ちません。確かに、コレスキー分解よりも数値的に安定です。これは、行列の条件が悪い/ほぼ特異である/条件数が高い場合に役立ちます。だから、固有値分解を使用することができますし、それはあなたを与えるだろうあなたの問題を解決します。しかし、それが正しいソリューションになるという保証はほとんどありません。正直なところ、明示的にΣを反転すると、損傷はすでに完了しています。形成X T Σを- 1 Xは、単に問題を悪化させます。固有分解は戦闘に勝利するのに役立ちますが、戦争は間違いなく失われます。ΣXTΣ−1X

2)あなたの問題の詳細を知らずに、これは私がすることです。まず、上のコレスキー分解を実行ようΣ = L L T。その後にQR分解を行うL - 1 XようにL - 1 X = Q R。必ず前方置換を使用してL − 1 Xを計算してください- 明示的にLを反転しないでください。だから、あなたが得る: X T Σ - 1 X = X T(LをΣΣ=LLTL−1XL−1X=QRL−1XL ここから、必要な右側を解くことができます。ただし、R(またはRTR)を明示的に反転しないでください。必要に応じて、前方および後方置換を使用します。

XTΣ−1X=XT(LLT)−1X=XTL−TL−1X=(L−1X)T(L−1X)=(QR)TQR=RTQTQT=RTR
RRTR

XTΣYXTΣ−1Y

XTΣ−1Y=XT(LLT)−1Y=XTL−TL−1Y=(L−1X)TL−1Y=(QR)TL−1Y=RTQTL−1Y
β もちろん、最終ステップでRを明示的に反転させることはありませんか?それは単なる後方置換です。:-)
XTΣ−1Xβ=XTΣ−1YRTRβ=RTQTL−1YRβ=QTL−1Yβ=R−1QTL−1Y
R

ありがとう。これは有用な対応です。明確にするために、あなたのchol / qrの選択肢は戦争に勝つ助けになるでしょうか?それとも、eigenが何をするよりも勝ったのでしょうか?
— qoheleth

XΣXTΣ−1X
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.