Proporsi varians yang dijelaskan dalam PCA dan LDA

8

Saya punya beberapa pertanyaan mendasar tentang PCA (analisis komponen utama) dan LDA (analisis diskriminan linier):

  1. Dalam PCA ada cara untuk menghitung proporsi varian yang dijelaskan. Apakah mungkin untuk LDA? Jika ya, bagaimana caranya?

  2. Apakah "Proportion of trace" output dari ldafungsi (dalam perpustakaan R MASS) setara dengan "proporsi varian dijelaskan"?

wrek
sumber
1
Pertanyaan pertama Anda mungkin merupakan duplikat dari stats.stackexchange.com/questions/22569 , tempat Anda dapat menemukan jawabannya. Agaknya "LDA" berarti Analisis Diskriminan Linier (ini memiliki makna statistik lain juga, itulah sebabnya kami mencoba memperluas akronim ).
whuber
1
Dalam arti tertentu, akun diskriminan untuk variabilitas sebagai p. komponen tidak, nilai eigen menjadi jumlah itu. Namun, "variabilitas" dalam LDA adalah jenis khusus - itu adalah rasio antara variabilitas antar kelas dengan variabilitas dalam kelas. Setiap diskriminan mencoba menghitung sebanyak mungkin dari rasio itu. Baca lebih lanjut
ttnphns
Terima kasih untuk penjelasannya. Oleh karena itu, jika dalam sumbu komponen PC saya beri label "PC (X% dari Variance yang dijelaskan)" apa yang akan menjadi jangka pendek yang benar ketika saya memberi label pada LDs. Terima kasih lagi.
wrek
Dengan LDA, kata-kata yang benar adalah “LD (X% dari penjelasan antar-kelompok yang dijelaskan)”.
ttnphns
Sekali lagi terima kasih atas bantuan dan kesabarannya. BTW bagaimana saya bisa mengakses Proporsi jejak (LD1, LD2) karena saya ingin menyimpannya dalam dua variabel terpisah?
wrek

Jawaban:

10

Pertama saya akan memberikan penjelasan verbal, dan kemudian yang lebih teknis. Jawaban saya terdiri dari empat pengamatan:

  1. Sebagaimana @ttnphns dijelaskan dalam komentar di atas, di PCA setiap komponen utama memiliki varian tertentu, yang semuanya bersama-sama menambahkan hingga 100% dari total varian. Untuk setiap komponen utama, rasio variansinya terhadap total varians disebut "proporsi varian yang dijelaskan". Ini sangat terkenal.

  2. Di sisi lain, dalam LDA setiap "komponen diskriminan" memiliki "diskriminasi" (saya mengarang istilah ini!) Terkait dengan itu, dan mereka semua bersama-sama menambahkan hingga 100% dari "total diskriminasi". Jadi untuk setiap "komponen diskriminan", seseorang dapat mendefinisikan "proporsi diskriminasi yang dijelaskan". Saya kira "proporsi jejak" yang Anda maksudkan adalah persis seperti itu (lihat di bawah). Ini kurang dikenal, tetapi masih lumrah.

  3. Namun, orang dapat melihat varians dari setiap komponen diskriminan, dan menghitung "proporsi varian" masing-masing. Ternyata, mereka akan menambahkan hingga sesuatu yang kurang dari 100%. Saya tidak berpikir bahwa saya pernah melihat ini dibahas di mana saja, yang merupakan alasan utama saya ingin memberikan jawaban yang panjang ini.

  4. Kita juga dapat melangkah lebih jauh dan menghitung jumlah varian yang dijelaskan oleh masing-masing komponen LDA; ini akan menjadi lebih dari sekadar variansnya sendiri.


Membiarkan T menjadi total sebar matriks data (yaitu matriks kovarians tetapi tanpa dinormalisasi dengan jumlah titik data), W menjadi matriks pencar di dalam kelas, dan Bmenjadi matriks pencar antar-kelas. Lihat di sini untuk definisi . Dengan nyaman,T=W+B.

PCA melakukan dekomposisi eigen T, mengambil unit vektor eigen sebagai sumbu utama, dan proyeksi data pada vektor eigen sebagai komponen utama. Varian masing-masing komponen utama diberikan oleh nilai eigen yang sesuai. Semua nilai eigen dariT (Yang simetris dan pasti positif) adalah positif dan dijumlahkan ke tr(T), yang dikenal sebagai varian total .

LDA melakukan dekomposisi eigen W1B, mengambil vektor eigen unit non-ortogonal (!) sebagai sumbu diskriminan, dan proyeksi pada vektor eigen sebagai komponen diskriminan (istilah yang dibuat-buat). Untuk setiap komponen diskriminan, kita dapat menghitung rasio varian antar kelasB dan varian dalam kelas W, yaitu rasio signal-to-noise B/W. Ternyata itu akan diberikan oleh nilai eigen yang sesuaiW1B(Lemma 1, lihat di bawah). Semua nilai eigen dariW1B positif (Lemma 2) jadi jumlahkan ke angka positif tr(W1B)mana yang bisa disebut rasio sinyal-to-noise total . Setiap komponen diskriminan memiliki proporsi tertentu, dan itulah, saya percaya, apa yang dimaksud dengan "proporsi jejak". Lihat jawaban ini oleh @ttnphns untuk diskusi serupa .

Menariknya, varian semua komponen diskriminan akan menambahkan hingga sesuatu yang lebih kecil dari total varian (bahkan jika jumlahnya K kelas dalam kumpulan data lebih besar dari jumlah Ndimensi; karena hanya adaK1 kapak diskriminan, mereka bahkan tidak akan membentuk dasar dalam kasus K1<N). Ini adalah observasi non-sepele (Lemma 4) yang mengikuti dari fakta bahwa semua komponen diskriminan memiliki korelasi nol (Lemma 3). Yang berarti bahwa kita dapat menghitung proporsi varian yang biasa untuk setiap komponen diskriminan, tetapi jumlahnya akan kurang dari 100%.

Namun, saya enggan menyebut varian komponen ini sebagai "varian yang dijelaskan" (sebut saja "varian yang ditangkap"). Untuk setiap komponen LDA, seseorang dapat menghitung jumlah varians yang dapat dijelaskannya dalam data dengan mengembalikan data ke komponen ini; nilai ini secara umum akan lebih besar dari varians "ditangkap" komponen ini sendiri. Jika ada komponen yang cukup, maka bersama-sama varians mereka yang dijelaskan harus 100%. Lihat jawaban saya di sini untuk bagaimana menghitung varians yang dijelaskan dalam kasus umum: Analisis komponen utama "mundur": berapa banyak varians data yang dijelaskan oleh kombinasi linear dari variabel?

Berikut ini adalah ilustrasi menggunakan set data Iris (hanya pengukuran sepal!): PCA dan LDA pengukuran sepal dari set data Iris Garis solid tipis menunjukkan sumbu PCA (mereka ortogonal), garis putus-putus tebal menunjukkan sumbu LDA (non-ortogonal). Proporsi varians dijelaskan oleh sumbu PCA:79% dan 21%. Proporsi rasio signal-to-noise dari sumbu LDA:96% dan 4%. Proporsi varian yang ditangkap oleh sumbu LDA:48% dan 26% (yaitu hanya 74%bersama). Proporsi varians dijelaskan oleh sumbu LDA:65% dan 35%.

LDA axis 1LDA axis 2PCA axis 1PCA axis 2Captured variance48%26%79%21%Explained variance65%35%79%21%Signal-to-noise ratio96%4%

Lemma 1. Vektor vektorv dari W1B (atau, ekuivalen, vektor eigen umum dari masalah nilai eigen umum) Bv=λWv) adalah titik stasioner hasil bagi Rayleigh

vBvvWv=BW
(bedakan yang terakhir untuk melihatnya), dengan nilai yang sesuai dari hasil bagi Rayleigh yang memberikan nilai eigen λ, QED.

Lemma 2. Nilai Eigen dariW1B=W1/2W1/2B sama dengan nilai eigen dari W1/2BW1/2(memang, kedua matriks ini serupa ). Yang terakhir adalah pasti-positif simetris, sehingga semua nilai eigennya positif.

Lemma 3. Perhatikan bahwa kovarians / korelasi antara komponen diskriminan adalah nol. Memang, vektor eigen berbedav1 dan v2 masalah nilai eigen umum Bv=λWv keduanya B- dan W-orthogonal ( lihat misalnya di sini ), dan begitu jugaT-Reogonal juga (karena T=W+B), yang artinya memiliki kovarian nol: v1Tv2=0.

Lemma 4. Kapak diskriminatif membentuk basis non-ortogonalV, di mana matriks kovarians VTVdiagonal. Dalam hal ini seseorang dapat membuktikan bahwa

tr(VTV)<tr(T),
QED.
amuba
sumber
1
+1. Banyak hal yang Anda diskusikan di sini dibahas, sedikit lebih padat, dalam jawaban saya . Saya telah menambahkan tautan ke jawaban Anda saat ini di dalam tubuh jawaban saya yang lama.
ttnphns
1
@ttnphns: Saya ingat jawaban Anda (memiliki +1 saya sejak dulu), tetapi tidak melihat ke sana ketika menulis jawaban ini, begitu banyak hal yang disajikan dengan sangat mirip, mungkin terlalu banyak. Alasan utama saya menulis jawaban ini, bagaimanapun, adalah untuk membahas "perbedaan yang dijelaskan" (dalam arti PCA) dari komponen LDA. Saya tidak yakin seberapa berguna itu dalam praktek, tetapi saya sering bertanya-tanya tentang hal itu sebelumnya, dan baru-baru ini berjuang untuk beberapa waktu untuk membuktikan ketidaksetaraan dari Lemma 4 yang pada akhirnya terbukti bagi saya di Math.SE.
amoeba
Perhatikan bahwa diagonal dari VTV adalah λ+1, penyebut untuk menghitung korelasi kanonik.
ttnphns
@ttnphns: Hmmm ... Saya pikir itu untuk setiap vektor eigen v,
B/W=vBvvWv=λ
dan
B/T=vBvvTv=vBv(vBv+vWv)=λλ+1,
seperti yang Anda katakan dalam jawaban tertaut Anda. Tetapi nilaivTv (di luar rasio apa pun) tidak dapat benar-benar diekspresikan dengan λhanya.
amoeba
Tampak bagi saya bahwa vektor eigen dari diskriminan yang diberikan berisi informasi B/Wuntuk diskriminan itu; ketika kita mengkalibrasi denganTyang membuat kovarian antar variabel, kita bisa sampai pada nilai eigen dari diskriminan. Demikian informasi padaB/WIni disimpan dalam vektor eigen, dan itu "standar" ke bentuk yang sesuai dengan tidak ada korelasi antara variabel.
ttnphns