Jelaskan bagaimana `eigen` membantu membalik matriks


13

Pertanyaan saya berkaitan dengan teknik perhitungan yang dieksploitasi di geoR:::.negloglik.GRFatau geoR:::solve.geoR.

Dalam pengaturan model campuran linier: mana dan masing-masing adalah efek tetap dan acak. Juga,

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

Ketika memperkirakan efek, ada kebutuhan untuk menghitung yang biasanya dapat dilakukan menggunakan sesuatu seperti , tetapi kadang-kadang hampir tidak dapat dibalik, jadi gunakan triknya( 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

(dapat dilihat pada geoR:::.negloglik.GRFdan geoR:::.solve.geoR) yang merupakan jumlah pembusukan mana dan karenanya

(X′Σ−1X)=ΛDΛ−1
Λ′=Λ−1
(X′Σ−1X)−1=(D−1/2Λ−1)′(D−1/2Λ−1)

Dua pertanyaan:

  1. Bagaimana dekomposisi eigen ini membantu pembalikan ?(X′Σ-1X)
  2. Apakah ada alternatif lain yang layak (yang kuat dan stabil)? (misalnya qr.solveatau chol2inv?)

Jawaban:


15

1) Komposisi eigend tidak terlalu membantu. Ini tentu saja lebih stabil secara numerik daripada faktorisasi Cholesky, yang membantu jika matriks Anda tidak dikondisikan / hampir tunggal / memiliki angka kondisi tinggi. Sehingga Anda dapat menggunakan eigendecomposition dan itu akan memberi Anda A solusi untuk masalah Anda. Tetapi ada sedikit jaminan bahwa itu akan menjadi solusi yang TEPAT . Jujur, setelah Anda membalikkan secara eksplisit , kerusakan sudah terjadi. Membentuk X T Σ - 1 X hanya memperburuk keadaan. Komposisi eigend akan membantu Anda memenangkan pertempuran, tetapi perang pasti hilang.ΣXTΣ−1X

2) Tanpa mengetahui secara spesifik masalah Anda, inilah yang akan saya lakukan. Pertama, melakukan faktorisasi Cholesky pada sehingga Σ = L L T . Kemudian melakukan QR faktorisasi pada L - 1 X sehingga L - 1 X = Q R . Pastikan untuk menghitung L - 1 X menggunakan penggantian maju - JANGAN membalikkan L secara eksplisit . Jadi Anda mendapatkan: X T Σ - 1 X = X T ( LΣΣ=LLTL−1XL−1X=QRL−1XL Dari sini, Anda dapat menyelesaikan sisi kanan yang Anda inginkan. Tapi sekali lagi, jangan eksplisit invertR(atauRTR). Gunakan penggantian maju dan mundur jika diperlukan.

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
β
XTΣ−1Xβ=XTΣ−1YRTRβ=RTQTL−1YRβ=QTL−1Yβ=R−1QTL−1Y
R

Terima kasih. ini adalah respons yang bermanfaat. Untuk lebih jelasnya, apakah alternatif Anda akan membantu memenangkan perang? atau hanya memenangkan permainan lebih baik daripada yang dilakukan eigen?
— qoheleth

XΣXTΣ−1X
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.