Giải thích cách `eigen` giúp đảo ngược ma trận


13

Câu hỏi của tôi liên quan đến một kỹ thuật tính toán được khai thác trong geoR:::.negloglik.GRFhoặc geoR:::solve.geoR.

Trong thiết lập mô hình hỗn hợp tuyến tính: trong đó và lần lượt là các hiệu ứng cố định và ngẫu nhiên. Ngoài ra,

Y= =Xβ+Zb+e
βbΣ= =cov(Y)

Khi ước tính các hiệu ứng, cần phải tính toán thường có thể được thực hiện bằng cách sử dụng một cái gì đó như , nhưng đôi khi gần như không thể đảo ngược, vì vậy hãy sử dụng mánh khóe

(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

(có thể thấy trong geoR:::.negloglik.GRFgeoR:::.solve.geoR) số tiền cần phân hủy trong đó và do đó

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

Hai câu hỏi:

  1. Làm thế nào để phân tách bản địa này giúp đảo ngược ?(X'Σ-1X)
  2. Có sự thay thế khả thi nào khác (mạnh mẽ và ổn định) không? (vd qr.solvehay chol2inv?)

Câu trả lời:


15

1) Sự xuất tinh không thực sự giúp ích nhiều. Nó chắc chắn ổn định hơn về số lượng so với hệ số Cholesky, rất hữu ích nếu ma trận của bạn bị điều hòa / gần như số ít / có số điều kiện cao. Vì vậy, bạn có thể sử dụng eigendecro và nó sẽ cung cấp cho bạn một giải pháp cho vấn đề của bạn. Nhưng có rất ít đảm bảo rằng nó sẽ là giải pháp ĐÚNG . Thành thật mà nói, một khi bạn đảo ngược rõ ràng , thiệt hại đã được thực hiện. Hình thành chỉ làm cho vấn đề tồi tệ hơn. Sự xuất tinh sẽ giúp bạn chiến thắng trận chiến, nhưng chiến tranh chắc chắn là thua cuộc.X T Σ - 1 XΣXTΣ-1X

2) Không biết chi tiết cụ thể về vấn đề của bạn, đây là những gì tôi sẽ làm. Thứ nhất, thực hiện một thừa số Cholesky trên để . Sau đó thực hiện nhân tố QR trên sao cho . Hãy chắc chắn để tính toán sử dụng thay thế về phía trước - KHÔNG rõ ràng nghịch . Vì vậy, sau đó bạn nhận được: Từ đây, bạn có thể giải quyết bất kỳ phía bên tay phải nào bạn muốn. Nhưng một lần nữa,Σ = 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

XTΣ-1X= =XT(LLT)-1X= =XTL-TL-1X= =(L-1X)T(L-1X)= =(QR)TQR= =RTQTQT= =RTR
R(hoặc ). Sử dụng thay thế tiến và lùi khi cần thiết.RTR

BTW, tôi tò mò về phía bên phải của phương trình của bạn. Bạn đã viết rằng đó là . Bạn có chắc chắn đó không phải là ? Bởi vì nếu là vậy, bạn có thể sử dụng một mẹo tương tự ở phía bên tay phải: Và sau đó bạn có thể phân phối cuộc đảo chính khi bạn đi giải quyết cho : XTΣ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
Rcho bước cuối cùng, phải không? Đó chỉ là một sự thay thế lạc hậu. :-)

Cảm ơn. đây là một phản ứng hữu ích Nói rõ hơn, liệu chol / qr của bạn có giúp chiến thắng cuộc chiến không? hoặc chỉ chiến thắng trò chơi tốt hơn những gì eigen làm?
qoheleth

Đó là một câu hỏi khó trả lời. Tôi tự tin rằng việc kết hợp các yếu tố Cholesky và QR sẽ cho bạn câu trả lời tốt hơn (và câu trả lời nhanh hơn). Cho dù đó là câu trả lời đúng thực sự phụ thuộc vào nguồn gốc của vấn đề. Trong trường hợp này, có 2 nguồn tiềm năng. Các cột của gần như phụ thuộc tuyến tính hoặc đang tiếp cận số ít. Khi bạn tạo , các vấn đề này khuếch đại lẫn nhau. Cách tiếp cận Cholesky + QR không (và không thể) giảm thiểu một trong hai vấn đề này, nhưng nó ngăn tình hình trở nên tồi tệ hơn. XΣXTΣ-1X
Bill Woessner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.