Apa yang harus dilakukan ketika sampel matriks kovarians tidak dapat dibalik?

12

Saya sedang mengerjakan beberapa teknik pengelompokan, di mana untuk kluster vektor d-dimensi yang diberikan, saya mengasumsikan distribusi normal multivariat dan menghitung sampel vektor rata-rata d-dimensi dan matriks kovarian sampel.

Kemudian ketika mencoba untuk memutuskan apakah baru, tak terlihat, d-dimensi vektor milik klaster ini saya memeriksa jarak melalui ukuran ini:

(Xiμ^X)σ^X1(Xiμ^X)>B0.95(p2,-hal2)

Yang mengharuskan saya untuk menghitung kebalikan dari kovarian matriks σ X . Tetapi mengingat beberapa sampel saya tidak dapat menjamin bahwa matriks kovarians akan dapat dibalik, apa yang harus saya lakukan jika tidak?σ^X

Terima kasih

Aly
sumber
itu tergantung pada apa yang menyebabkan matriks tidak dapat dibalik. Kemungkinan penyebabnya adalah (a) sampel yang Anda gunakan untuk menghitung matriks kovarians terlalu kecil (b) sampel Anda berukuran cukup tetapi anggotanya tidak diambil dari distribusi kontinu sehingga beberapa kolom / baris sampel Anda ulangi .
user603
Saya pikir ukuran sampel menjadi kecil
Aly
@ Anony-Mousse Saya telah memastikan bahwa saya sekarang menggunakan setidaknya sebanyak sampel sebagai dimensi, jika tidak, matriks akan kekurangan peringkat. Sejauh ini tidak ada masalah, tapi saya pikir dengan kovarians sampel dapat menjadi non-invertible?
Aly
1
Mengapa selalu bisa dibalik? Dengan satu pengamatan rata-rata sama dengan pengamatan itu, sehingga kovarians sampel adalah matriks nol, yang tidak akan terbalik. Saya pikir sebuah matriks harus memiliki peringkat penuh untuk dibalik, dan itu hanya akan menjadi peringkat penuh jika jumlah sampel> = dimensiM.M.T
Korone
1
@corone membuat itu menjadi ketat>
user603

Jawaban:

14

Jika dimensi sampel Anda kurang dari dimensi ruang vektor, matriks singular dapat muncul. Jika Anda memiliki sampel kurang dari (ketika d adalah dimensi Anda), situasi ini bahkan akan muncul: k + 1 rentang sampel paling banyakd+1dk+1 hyperplane dimensi. Dengan sampel sekecil itu, Anda jelas tidak dapat menghitung varians dalam ruang ortogonal.d

Inilah sebabnya mengapa itu umum untuk tidak menggunakan PCA literal, melainkan melakukan dekomposisi nilai singular , yang dapat digunakan untuk menghitung pseudoinverse dari matriks. Jika matriks tidak dapat dibalik, pseudoinverse akan menjadi kebalikannya.

Namun, jika Anda melihat matriks yang tidak dapat dibalik, kemungkinan jarak Anda dari cluster tidak akan berarti jika vektor berada di luar hyperplane yang diwakili cluster, karena Anda tidak tahu varians dalam ruang ortogonal (Anda dapat memikirkan varians ini sebagai 0!) SVD dapat menghitung pseudoinverse, tetapi "varians" akan tetap tidak ditentukan oleh data Anda.

y=xx-y sehubungan dengan standar deviasi (yaitu 0).

Selanjutnya, tergantung pada bagaimana Anda menghitung matriks kovarians, Anda mungkin mengalami masalah numerik karena pembatalan bencana. Solusi paling sederhana adalah dengan selalu memusatkan data terlebih dahulu, untuk mendapatkan rata-rata nol.

Memiliki QUIT - Anony-Mousse
sumber
maaf telah menjawab di sini tetapi saya sedang mengerjakan masalah yang sama. saya membandingkan jarak pengelompokan melalui jarak Mahalanobis yang membutuhkan matriks kovarians terbalik. Namun dalam kasus saya, saya mendapatkan kesalahan yang sama. jadi saya mencoba SingularValueDecomposition tetapi kali ini semua jarak sama dengan 1.4: D saya tidak bisa mengetahuinya
MonsterMMORPG