อธิบายว่า "eigen" ช่วยเปลี่ยนเมทริกซ์ได้อย่างไร


13

คำถามของฉันที่เกี่ยวข้องกับเทคนิคการคำนวณใช้ประโยชน์ในหรือgeoR:::.negloglik.GRFgeoR:::solve.geoR

ในการตั้งค่าโมเดลเชิงเส้นผสม: โดยที่และเป็นเอฟเฟกต์แบบคงที่และแบบสุ่มตามลำดับ นอกจากนี้β b Σ = cov ( Y )

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

เมื่อประเมินผลกระทบมีความจำเป็นต้องคำนวณ ซึ่งปกติสามารถทำได้โดยใช้สิ่งที่ชอบแต่บางครั้งเกือบจะไม่สามารถย้อนกลับได้ดังนั้นให้ใช้เล่ห์เหลี่ยม

(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=(D1/2Λ1)(D1/2Λ1)

สองคำถาม:

  1. วิธีการที่ไม่สลายตัวไอเกนนี้จะช่วยให้กลับหัว ?(XΣ1X)
  2. มีทางเลือกอื่น ๆ (ที่แข็งแกร่งและมั่นคง) หรือไม่? (เช่นqr.solveหรือchol2inv?)

คำตอบ:


15

1) eigendecomposition ไม่ได้ช่วยอะไรมาก แน่นอนว่ามีความเสถียรเชิงตัวเลขมากกว่าตัวประกอบแบบ Cholesky ซึ่งจะเป็นประโยชน์หากเมทริกซ์ของคุณมีสภาวะที่ไม่ดี / เกือบเอกพจน์ / มีจำนวนเงื่อนไขสูง ดังนั้นคุณสามารถใช้ eigendecomposition และมันจะทำให้คุณวิธีการแก้ปัญหาของคุณ แต่มีการรับประกันเล็กน้อยว่ามันจะเป็นทางออกที่ถูกต้อง โดยสุจริตเมื่อคุณกลับเข้ามาอย่างชัดเจนความเสียหายจะเสร็จสิ้น การขึ้นรูปเพียงทำให้เรื่องแย่ลง eigendecomposition จะช่วยให้คุณชนะการต่อสู้ แต่สงครามจะหายไปแน่นอนที่สุดΣXTΣ1X

2) โดยไม่ทราบถึงปัญหาเฉพาะของคุณนี่คือสิ่งที่ฉันจะทำ ครั้งแรกที่ดำเนินการแยกตัวประกอบ Cholesky ในเพื่อให้ T จากนั้นทำการตัวประกอบ QR บนเพื่อให้QR โปรดตรวจสอบเพื่อคำนวณใช้ทดแทนไปข้างหน้า - DO NOTอย่างชัดเจนสลับLดังนั้นคุณจะได้รับ: จากที่นี่คุณสามารถแก้ไขทางด้านขวามือที่คุณต้องการ แต่อีกครั้งΣΣ=LLTL1XL1X=QRL1XL

XTΣ1X=XT(LLT)1X=XTLTL1X=(L1X)T(L1X)=(QR)TQR=RTQTQT=RTR
R(หรือ ) ใช้การทดแทนไปข้างหน้าและข้างหลังตามความจำเป็นRTR

BTW ฉันอยากรู้เกี่ยวกับด้านขวาของสมการของคุณ คุณเขียนว่ามันY คุณแน่ใจว่ามันไม่ได้เป็น ? เพราะถ้าเป็นเช่นนั้นคุณสามารถใช้กลอุบายที่คล้ายกันทางด้านขวา: และจากนั้นคุณสามารถส่งมอบรัฐประหารเมื่อคุณไปหา : XTΣYXTΣ1Y

XTΣ1Y=XT(LLT)1Y=XTLTL1Y=(L1X)TL1Y=(QR)TL1Y=RTQTL1Y
β
XTΣ1Xβ=XTΣ1YRTRβ=RTQTL1YRβ=QTL1Yβ=R1QTL1Y
Rสำหรับขั้นตอนสุดท้ายใช่ไหม? นั่นเป็นเพียงการทดแทนย้อนหลัง :-)

ขอบคุณ นี่คือคำตอบที่เป็นประโยชน์ เพื่อให้ชัดเจนคุณเลือก chol / qr เพื่อช่วยให้ชนะสงครามหรือไม่? หรือเพียงแค่ชนะเกมได้ดีกว่าสิ่งที่ eigen ทำ
qoheleth

นั่นเป็นคำถามที่ตอบยาก ฉันมั่นใจว่าการรวม Cholesky และ QR factorizations จะให้คำตอบที่ดีกว่า (และคำตอบที่เร็วกว่า) ไม่ว่าจะเป็นคำตอบที่ถูกต้องขึ้นอยู่กับแหล่งที่มาของปัญหา ในกรณีนี้มี 2 แหล่งที่อาจเกิดขึ้น คอลัมน์ของเกือบจะเป็นเชิงเส้นตรงหรือกำลังเข้าใกล้เอกพจน์ เมื่อคุณสร้างปัญหาเหล่านี้จะขยายซึ่งกันและกัน วิธี Cholesky + QR ไม่ได้ (และไม่สามารถทำได้) บรรเทาปัญหาเหล่านี้อย่างใดอย่างหนึ่ง แต่จะป้องกันไม่ให้สถานการณ์แย่ลง Σ X T Σ - 1 XXΣXTΣ1X
Bill Woessner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.