Bagaimana membuat matriks positif pasti?

10

Saya mencoba menerapkan algoritma EM untuk model analisis faktor berikut;

Wj=μ+Baj+ejforj=1,,n

di mana adalah vektor acak p-dimensional, adalah vektor q-dimensi dari variabel laten dan adalah matriks parameter pxq.a j BWjajB

Sebagai hasil dari asumsi lain yang digunakan untuk model, saya tahu bahwa mana adalah matriks varians kovarians dari istilah kesalahan , = diag ( , , ..., ).D e j D σ 2 1 σ 2 2 σ 2 pWjN(μ,BB+D)DejDσ12σ22σp2

Untuk algoritma EM bekerja, aku melakukan iterasi kubah yang melibatkan estimasi dan matriks dan selama iterasi ini aku menghitung kebalikan dari pada setiap iterasi menggunakan perkiraan baru dari dan . Sayangnya selama iterasi, kehilangan kepastian positifnya (tetapi seharusnya tidak karena itu adalah matriks varians-kovarians) dan situasi ini merusak konvergensi algoritma. Pertanyaan saya adalah:DBDB D B B + DBB+DBDBB+D

  1. Apakah situasi ini menunjukkan bahwa ada yang salah dengan algoritma saya karena kemungkinan harus meningkat pada setiap langkah EM?

  2. Apa cara praktis untuk membuat matriks positif pasti?

Sunting: Saya menghitung inversinya dengan menggunakan lemma inversi matriks yang menyatakan bahwa:

(BB+D)1=D1D1B(Iq+BD1B)1BD1

di mana sisi kanan hanya melibatkan invers dari matriks .q×q

Andy Amos
sumber
1
Mungkin membantu untuk memahami dengan lebih baik bagaimana "kehilangan" kepastian positifnya. Ini menyiratkan bahwa atau (atau keduanya) menjadi pasti non-positif. Itu sulit dilakukan ketika dihitung langsung dari dan lebih sulit lagi ketika dihitung sebagai matriks diagonal dengan kotak pada diagonal-nya! B B D B B B DBB+DBBDBBBD
whuber
@whuber Biasanya dalam FA , jadi tidak pernah pasti positif. Tapi (secara teoritis) seharusnya, dengan asumsi bahwa semuanya lebih besar dari nol. B B B B + D σ 2 jq<pBBBB+Dσj2
JMS
Ini terkait dengan pertanyaan ini: stats.stackexchange.com/questions/6364/…
Gilead
1
@ JMS Terima kasih. Saya pikir komentar saya masih relevan: bisa tidak terbatas, tetapi seharusnya masih tidak memiliki nilai eigen negatif. Masalah akan muncul ketika yang terkecil dari sebanding dengan kesalahan numerik dalam algoritma inversi. Jika hal ini terjadi, salah satu solusi adalah untuk menerapkan SVD untuk dan nol keluar eigen sangat kecil (atau negatif), kemudian menghitung ulang dan menambahkan . σ 2 i B B B B DBBσi2BBBBD
whuber
1
Itu harus menjadi elemen kecil dalam ; harus dikondisikan dengan baik karenaI q + B D - 1 B q < pDIq+BD1Bq<p
JMS

Jawaban:

3

OK, karena Anda melakukan FA, saya mengasumsikan bahwa adalah peringkat kolom penuh dan . Kami membutuhkan beberapa detail lagi. Ini mungkin masalah numerik; mungkin juga ada masalah dengan data Anda.q q < pBqq<p

Bagaimana Anda menghitung invers? Apakah Anda memerlukan invers secara eksplisit, atau dapat menyatakan kembali perhitungan sebagai solusi untuk sistem linear? (Yaitu untuk mendapatkan memecahkan untuk x, yang biasanya lebih cepat dan lebih stabil)A x = bA1bAx=b

Apa yang terjadi pada ? Apakah perkiraannya benar-benar kecil / 0 / negatif? Dalam beberapa hal itu adalah tautan kritis, karena tentu saja kekurangan peringkat dan mendefinisikan matriks kovarian singular sebelum menambahkan , sehingga Anda tidak dapat membalikkannya. Menambahkan matriks diagonal positif teknis membuatnya peringkat penuh tetapi masih bisa terkondisi dengan buruk jika kecil.B B D D B B + D DDBBDDBB+DD

Seringkali estimasi untuk varian istimewa ( , elemen diagonal ) mendekati nol atau bahkan negatif; ini disebut kasus Heywood. Lihat misalnya http://www.technion.ac.il/docs/sas/stat/chap26/sect21.htm (teks FA apa pun harus membahas hal ini juga, ini adalah masalah yang sangat lama dan terkenal). Ini dapat diakibatkan oleh kesalahan spesifikasi model, pencilan, nasib buruk, semburan matahari ... MLE sangat rentan terhadap masalah ini, jadi jika algoritma EM Anda dirancang untuk membuat MLE melihat keluar. Dσi2D

Jika algoritma EM Anda mendekati mode dengan perkiraan seperti itu mungkin untuk kehilangan kepastian positifnya, saya pikir. Ada berbagai solusi; secara pribadi saya lebih suka pendekatan Bayesian tetapi bahkan kemudian Anda harus berhati-hati dengan prior Anda (prior yang tidak tepat atau bahkan tepat prior dengan massa terlalu dekat 0 dapat memiliki masalah yang sama karena pada dasarnya alasan yang sama)BB+D

JMS
sumber
Biarkan saya kedua bahwa di bagian utama dari algoritma, Anda tidak pernah ingin benar-benar membalikkan matriks Anda mungkin perlu di bagian paling akhir untuk mendapatkan estimasi standar. Lihat posting blog ini johndcook.com/blog/2010/01/19/dont-invert-that-matrix
Samsdram
Nilai-nilai matriks D semakin kecil karena jumlah iterasi meningkat. Mungkin ini masalahnya seperti yang Anda tunjukkan.
Andy Amos
1
@Andy Amos: Saya akan bertaruh uang untuk itu. Seperti @whuber tunjukkan, hampir tidak mungkin akan memiliki nilai eigen negatif jika Anda menghitungnya secara langsung, & nol (dari kekurangan peringkat) harus diurus dengan menambahkan sejak diagonal positif - kecuali beberapa elemen tersebut sangat kecil. Coba beberapa data dari model di mana cukup besar dan . Semakin banyak data semakin baik sehingga estimasi harus akurat dan stabil. Setidaknya itu akan memberi tahu Anda jika ada masalah dalam implementasi Anda. D σ 2 iq B 2 i qσ 2 iBBDσi2qBiq2σi2
JMS