Jarak mahalanobis via PCA saat

10

Saya memiliki matriks , di mana p adalah jumlah gen dan n adalah jumlah pasien. Siapa pun yang bekerja dengan data tersebut tahu bahwa p selalu lebih besar dari n . Dengan menggunakan pemilihan fitur, saya mendapatkan p ke angka yang lebih masuk akal, namun p masih lebih besar dari n .n×ppnpnppn

Saya ingin menghitung kesamaan pasien berdasarkan profil genetik mereka; Saya bisa menggunakan jarak euclidean, namun Mahalanobis tampaknya lebih tepat karena memperhitungkan korelasi antara variabel. Masalahnya (seperti dicatat dalam posting ini ) adalah bahwa jarak Mahalanobis, khususnya matriks kovarians, tidak berfungsi ketika . Ketika saya menjalankan jarak Mahalanobis di R, kesalahan yang saya dapatkan adalah:n<p

 Error in solve.default(cov, ...) :    system is computationally
 singular: reciprocal condition number = 2.81408e-21

Sejauh ini untuk mencoba menyelesaikan ini, saya telah menggunakan PCA dan alih-alih menggunakan gen, saya menggunakan komponen dan ini tampaknya memungkinkan saya untuk menghitung jarak Mahalanobis; 5 komponen mewakili sekitar 80% dari varians, jadi sekarang .n>p

Pertanyaan saya adalah: Dapatkah saya menggunakan PCA untuk secara bermakna mendapatkan jarak Mahalanobis antara pasien, atau apakah itu tidak pantas? Apakah ada metrik jarak alternatif yang bekerja ketika dan ada juga banyak korelasi di antara variabel n ?n<pn

pengguna4673
sumber
Itu PCAbisa mematahkan korelasi variabel, kecuali jika Anda menggunakan sesuatu seperti rotasi miring. Saya juga tidak yakin bagaimana perbedaan pembagian PCAakan mempengaruhi jarak Mahalanobis antara pasien yang serupa.
Michelle
Jika PCA memecah korelasi variabel, dapatkah saya menggunakan beberapa metrik jarak lain (seperti jarak Pearson) alih-alih jarak Mahalanobis?
user4673
Saya tidak cukup tahu untuk merekomendasikan lebih lanjut. Saya berharap orang lain akan terjun ke percakapan. :) Mengingat bagaimana teknik reduksi variabel seperti PCAbekerja, saya ingin tahu apakah ada metrik jarak yang dapat digunakan pada output.
Michelle
Saya bukan ahli di bidang ini. Saya hanya ingin berbagi, bahwa saya memiliki masalah kecil Anda, dan saya telah menggunakan 'cov.shrink' dari paket corpcor .
Bruno Sousa

Jawaban:

8

Jika Anda menyimpan semua komponen dari PCA - maka jarak Euclidean antara pasien di ruang PCA baru akan sama dengan jarak Mahalanobis mereka di ruang variabel yang diamati. Jika Anda akan melewati beberapa komponen, itu akan berubah sedikit, tetapi toh. Di sini saya merujuk ke komponen-varians PCA-komponen, bukan jenis yang variansnya sama dengan nilai eigen (saya tidak yakin tentang implementasi PCA Anda).

Maksud saya, jika Anda ingin mengevaluasi jarak Mahalanobis antara pasien, Anda dapat menerapkan PCA dan mengevaluasi jarak Euclidean. Mengevaluasi jarak Mahalanobis setelah menerapkan PCA tampaknya sesuatu yang tidak berarti bagi saya.

Dmitry Laptev
sumber
Berikut ini adalah artikel pendek yang membahas hubungan: Brereton, RG Jarak Mahalanobis dan hubungannya dengan skor komponen utama Jurnal Chemometrics, Wiley-Blackwell, 2015, 29, 143-145. dx.doi.org/10.1002/cem.2692 . Perhatikan bahwa PCA dalam chemometrics secara default adalah rotasi murni data, sehingga bukan versi unit-variance yang Dmitry rujuk.
cbeleites tidak senang dengan SX
2

Lihatlah kertas berikut:

Zuber, V., Silva, APD, & Strimmer, K. (2012). Algoritma baru untuk pemilihan SNP simultan dalam studi asosiasi genome-wide dimensi tinggi . Bioinformatika BMC , 13 (1), 284.

Persisnya berkaitan dengan masalah Anda. Para penulis mengandaikan penggunaan pengukuran penting-variabel baru, selain itu mereka sebelumnya memperkenalkan metode estimasi hukuman untuk matriks korelasi variabel penjelas yang sesuai dengan masalah Anda. Mereka juga menggunakan jarak Mahalanobis untuk dekorasi!

Metode ini termasuk dalam 'paket' R-paket, tersedia di CRAN

Claas
sumber
0

Skor PCA (atau hasil PCA) digunakan dalam literatur untuk menghitung jarak Mahalanobis antara sampel dan distribusi sampel. Sebagai contoh, lihat artikel ini . Di bawah bagian "Metode analisis", penulis menyatakan:

Kumpulan data spektrum fluoresensi (681) direduksi menjadi dimensi yang lebih rendah (11) dengan mengevaluasi komponen utama (PC) dari matriks korelasi (681 × 681). Skor PC diperkirakan dengan memproyeksikan data asli sepanjang PC. Klasifikasi di antara set data telah dilakukan dengan menggunakan model jarak Mahalanobis dengan menghitung jarak Mahalanobis untuk skor PC.

Saya telah melihat contoh-contoh lain dari analisis diskriminan berbasis jarak PCA / Mahalanobis dalam literatur dan dalam menu bantuan dari perangkat lunak chemometrics GRAMS IQ. Kombinasi ini masuk akal karena jarak Mahalanobis tidak berfungsi dengan baik ketika jumlah variabel lebih besar dari jumlah sampel yang tersedia, dan PCA mengurangi jumlah variabel.

Algoritma pembelajaran mesin klasifikasi satu kelas (yaitu Hutan Isolasi, One-ClassSVM, dll.) Merupakan alternatif yang memungkinkan untuk analisis diskriminan berbasis jarak PCA / Mahalanobis. Di lab kami, Hutan Isolasi dikombinasikan dengan data pra-pemrosesan telah menghasilkan hasil yang baik dalam klasifikasi spektrum Infra Merah Dekat.

Pada catatan yang sedikit terkait, deteksi outlier atau kebaruan dengan jarak PCA / Mahalanobis, untuk data dimensi tinggi, seringkali membutuhkan perhitungan cutoff jarak Mahalanobis . Artikel ini menunjukkan bahwa cutoff dapat dihitung sebagai akar kuadrat dari nilai kritis distribusi kuadrat , dengan asumsi bahwa data terdistribusi secara normal. Nilai kritis ini membutuhkan jumlah derajat kebebasan dan nilai probabilitas yang terkait dengan data. Artikel ini tampaknya menunjukkan bahwa jumlah komponen utama yang dipertahankan sama dengan jumlah derajat kebebasan yang diperlukan untuk menghitung nilai kritis karena penulis menggunakan jumlah fitur dalam set data untuk perhitungan mereka.

Cherif Diallo
sumber
n<p
Saat n <p, PCA digunakan untuk mengurangi hal. Jumlah komponen yang disimpan dari analisis PCA (nc) biasanya jauh lebih kecil dari p, dan mungkin juga lebih kecil dari n tergantung pada ukuran n. Dengan demikian, PCA mengubah masalah "n oleh p" menjadi masalah "n oleh nc". Di lab kami tempat kami menganalisis spektrum NIR, p mewakili jumlah panjang gelombang, yang biasanya lebih besar dari dua ribu. n mewakili jumlah sampel pelatihan (~ 20 hingga 150). nc biasanya 3 hingga 11. Ketika n> nc, analisis PCA / Mahalanobis menghasilkan hasil yang baik.
Cherif Diallo
1
Masalahnya bukan pada apa yang PCA lakukan. Itu tercakup dalam utas lain di situs ini. Masalahnya adalah bahwa jarak mahalanobis biasanya tidak dapat dihitung dalam kasus ini karena singularitas dari matriks kovarians: ini adalah keadaan yang dijelaskan dalam pertanyaan.
whuber
Terima kasih atas komentar baik Anda. Tampaknya kami memiliki interpretasi berbeda tentang apa yang ditanyakan pengguna. Jawaban yang diterima menyatakan, "jika Anda ingin mengevaluasi jarak Mahalanobis antara pasien, Anda dapat menerapkan PCA dan mengevaluasi jarak Euclidean. Mengevaluasi jarak Mahalanobis setelah menerapkan PCA tampaknya sesuatu yang tidak berarti ...". Saya pikir kalimat terakhir bertentangan dengan literatur yang telah saya lihat dan kutip. Bagaimana menurut anda? Salam Hormat.
Cherif Diallo
1
Oke. Terima kasih :)!
Cherif Diallo