PCA tentang korelasi atau kovarian?

153

Apa perbedaan utama antara melakukan analisis komponen utama (PCA) pada matriks korelasi dan pada matriks kovarians? Apakah mereka memberikan hasil yang sama?

Acak
sumber
2
Balasan yang terlambat, tetapi Anda mungkin menemukan handout SANGAT berguna pada analisis data multivariat "à la française" di departemen Bioinformatika Lyon. Ini berasal dari penulis paket R ade4 . Ini dalam bahasa Prancis.
chl
3
Untuk diskusi tambahan, silakan kunjungi stats.stackexchange.com/questions/62677/… .
whuber

Jawaban:

130

Anda cenderung menggunakan matriks kovarians ketika skala variabel serupa dan matriks korelasi ketika variabel berada pada skala yang berbeda.

Menggunakan matriks korelasi setara dengan standarisasi masing-masing variabel (berarti 0 dan standar deviasi 1). Secara umum, PCA dengan dan tanpa standardisasi akan memberikan hasil yang berbeda. Apalagi ketika timbangannya berbeda.

Sebagai contoh, lihat heptathlonkumpulan data R ini . Beberapa variabel memiliki nilai rata-rata sekitar 1,8 (lompatan tinggi), sedangkan variabel lainnya (lari 800m) sekitar 120.

library(HSAUR)
heptathlon[,-8]      # look at heptathlon data (excluding 'score' variable)

Output ini:

                   hurdles highjump  shot run200m longjump javelin run800m
Joyner-Kersee (USA)   12.69     1.86 15.80   22.56     7.27   45.66  128.51
John (GDR)            12.85     1.80 16.23   23.65     6.71   42.56  126.12
Behmer (GDR)          13.20     1.83 14.20   23.10     6.68   44.54  124.20
Sablovskaite (URS)    13.61     1.80 15.23   23.92     6.25   42.78  132.24
Choubenkova (URS)     13.51     1.74 14.76   23.93     6.32   47.46  127.90
...

Sekarang mari kita lakukan PCA tentang kovarian dan korelasi:

# scale=T bases the PCA on the correlation matrix
hep.PC.cor = prcomp(heptathlon[,-8], scale=TRUE)
hep.PC.cov = prcomp(heptathlon[,-8], scale=FALSE)

biplot(hep.PC.cov)
biplot(hep.PC.cor)  

PCA tentang korelasi atau kovarians

Perhatikan bahwa PCA pada kovarians didominasi oleh run800mdan javelin: PC1 hampir sama dengan run800m(dan menjelaskan dari varians) dan PC2 hampir sama dengan (bersama-sama mereka menjelaskan ). PCA pada korelasi jauh lebih informatif dan mengungkapkan beberapa struktur dalam data dan hubungan antar variabel (tetapi perhatikan bahwa varians yang dijelaskan turun menjadi dan ).82%javelin97%64%71%

Perhatikan juga bahwa individu yang berada di luar (dalam set data ini ) adalah outlier terlepas dari apakah kovarian atau matriks korelasi digunakan.

csgillespie
sumber
Bagaimana situasinya, jika saya mengonversi variabel menjadi skor-z terlebih dahulu?
Jirka-x1
9
@ Jirka-x1 matriks kovarians dari variabel standar (yaitu skor z ) sama dengan matriks korelasi.
Alexis
@Alexis Bisakah karena itu disimpulkan bahwa matriks kovarians dari variabel standar sama dengan matriks korelasi variabel standar?
jb
1
@JamieBullock (matriks kovarians) untuk data standar = (matriks korelasi). apakah data terstandarisasi (korelasi tidak peka terhadap transformasi linear data. Jadi, misalnya, jika Anda memiliki dan dan berkorelasi dengan , maka jika dan dan juga berkorelasi dengan ). RΣRR=RXYrXYX=aX+bY=aY+b XYrXY
Alexis
Satu pemberitahuan penting: ketika menggunakan kovarians di PCA Anda, PC Anda tidak akan saling berkorelasi, yang tidak berlaku untuk PCA berbasis korelasi. Ini sangat penting ketika berniat untuk melakukan PCA sebelum regresi dalam set variabel penjelas multikolinear. Namun teori di balik ini tidak jelas. Adakah yang bisa menjelaskan perbedaan ini?
ouranos
54

Bernard Flury, dalam bukunya yang sangat bagus memperkenalkan analisis multivariat, menggambarkan ini sebagai anti-properti komponen utama. Ini sebenarnya lebih buruk daripada memilih antara korelasi atau kovarian. Jika Anda mengubah unit (mis. Galon gaya AS, inci, dll. Dan EU style liter, centimeter) Anda akan mendapatkan proyeksi data yang berbeda secara nyata.

Argumen yang menentang secara otomatis menggunakan matriks korelasi adalah bahwa ini adalah cara yang brutal untuk menstandarkan data Anda. Masalah dengan secara otomatis menggunakan matriks kovarians, yang sangat jelas dengan data heptathalon itu, adalah bahwa variabel dengan varians tertinggi akan mendominasi komponen utama pertama (properti memaksimalkan varians).

Jadi metode "terbaik" untuk digunakan didasarkan pada pilihan subjektif, pemikiran yang cermat dan beberapa pengalaman.

Paul Hewson
sumber
46

DATA UNTRANSFORMED (RAW): Jika Anda memiliki variabel dengan skala yang sangat bervariasi untuk data mentah, data yang tidak diubah, yaitu, asupan kalori per hari, ekspresi gen, ELISA / Luminex dalam satuan ug / dl, ng / dl, berdasarkan beberapa pesanan dari besarnya ekspresi protein, kemudian gunakan korelasi sebagai input ke PCA. Namun, jika semua data Anda didasarkan pada misalnya ekspresi gen dari platform yang sama dengan rentang dan skala yang sama, atau Anda bekerja dengan pengembalian aset ekuitas log, maka menggunakan korelasi akan membuang sejumlah besar informasi.

Anda sebenarnya tidak perlu memikirkan perbedaan menggunakan matriks korelasi atau matriks kovarians sebagai input ke PCA, tetapi lihatlah nilai diagonal dari dan . Anda dapat mengamati varian untuk satu variabel, dan pada variabel lain - yang berada di diagonal . Tetapi ketika melihat korelasinya, diagonal berisi semua yang ada, sehingga varians dari setiap variabel pada dasarnya berubah menjadi saat Anda menggunakan matriks .RCCR10010C1R

DATA TRANSFORMED: Jika data telah ditransformasikan melalui normalisasi, persentil, atau standar-nol rata-rata (yaitu, skor- ), sehingga rentang dan skala semua variabel kontinu adalah sama, maka Anda dapat menggunakan matriks Covariance tanpa masalah. (korelasi akan berarti-nol variabel standar). Ingat, bagaimanapun, bahwa transformasi ini tidak akan menghapus kemiringan (yaitu, ekor kiri atau kanan dalam histogram) dalam variabel Anda sebelum menjalankan PCA . Analisis PCA tipikal tidak melibatkan penghilangan kemiringan; namun, beberapa pembaca mungkin perlu menghilangkan kemiringan untuk memenuhi batasan normalitas yang ketat.ZC

Singkatnya, gunakan matriks korelasi ketika dalam rentang variabel dan skala sangat berbeda, dan gunakan matriks kovarians untuk mempertahankan varians jika rentang dan skala variabel sama atau dalam unit yang sama dari mengukur.RC

VARIABEL SKEWED: Jika salah satu variabel miring dengan ekor kiri atau kanan dalam histogram mereka, yaitu, tes normalitas Shapiro-Wilk atau Lilliefors signifikan , maka mungkin ada beberapa masalah jika Anda perlu menerapkan normalitas. anggapan. Dalam hal ini, gunakan skor van der Waerden (transformasi) yang ditentukan dari masing-masing variabel. Skor van der Waerden (VDW) untuk pengamatan tunggal hanyalah pemetaan normal kumulatif (standar) dari nilai persentasi pengamatan. Misalnya, Anda memiliki pengamatan untuk variabel kontinu, Anda dapat menentukan skor VDW menggunakan:(P<0.05)n=100

  1. Pertama, urutkan nilai dalam urutan naik, kemudian tetapkan peringkat, sehingga Anda akan mendapatkan peringkatRi=1,2,,100.
  2. Selanjutnya, tentukan persentil untuk setiap pengamatan sebagai . pcti=Ri/(n+1)
  3. Setelah nilai-nilai persentil diperoleh, masukkan mereka ke dalam fungsi pemetaan terbalik untuk CDF dari distribusi normal standar, yaitu, , untuk mendapatkan nilai- untuk masing-masing, menggunakan . N(0,1)ZZi=Φ1(pcti)

Misalnya, jika Anda memasukkan nilai 0,025, Anda akan mendapatkan . Hal yang sama berlaku untuk nilai plugin , Anda akan mendapatkan . pcti1.96=Φ1(0.025)pcti=0.9751.96=Φ1(0.975)

Penggunaan skor VDW sangat populer dalam genetika, di mana banyak variabel ditransformasikan menjadi skor VDW, dan kemudian dimasukkan ke dalam analisis. Keuntungan menggunakan skor VDW adalah bahwa skewness dan efek outlier dihilangkan dari data, dan dapat digunakan jika tujuannya adalah untuk melakukan analisis di bawah batasan normalitas - dan setiap variabel harus murni standar, terdistribusi normal tanpa skewness atau outlier.

JoleT
sumber
7
Sejauh ini, inilah jawaban yang paling masuk akal di sini, karena sebenarnya memberikan pandangan yang tepat bahwa kovarians menang jika perlu. Terlalu banyak jawaban di sini dan di tempat lain menyebutkan "itu tergantung" yang biasa tanpa benar-benar memberikan dasar yang keras mengapa seseorang harus lebih memilih kovarians jika memungkinkan . Di sini lep tidak: kovarians tidak membuang salah satu info yang korelasi lakukan. Contoh data stok adalah yang baik: stok beta yang tinggi tentu saja akan memiliki pemuatan yang lebih tinggi tetapi mereka mungkin harus , sama seperti setiap aspek dari setiap analisis yang lebih tidak stabil biasanya lebih menarik (sesuai alasan).
Thomas Browne
3
Tentu saja masalah yang dihadapi harus dianalisis apakah varians yang lebih tinggi merupakan aspek yang menarik dari analisis. Jika tidak, maka tentu saja korelasinya lebih baik, dan itu pasti berlaku jika unit berbeda.
Thomas Browne
Jawaban bagus +1. Saya kira satu contoh lagi mungkin menerapkan PCA untuk analisis struktur jangka pada hasil obligasi di bidang keuangan. Variansi hasil pada berbagai kematangan bervariasi, tetapi karena semuanya merupakan hasil, skala yang bervariasi biasanya tidak terlalu lebar. Memang, volatilitas hasil kematangan tertentu lebih / kurang itu sendiri memberikan informasi yang kaya.
Nicholas
11

Jawaban umum adalah untuk menyarankan bahwa kovarians digunakan ketika variabel pada skala yang sama, dan korelasi ketika skala mereka berbeda. Namun, ini hanya benar ketika skala variabel bukan merupakan faktor. Kalau tidak, mengapa ada orang yang melakukan kovarian PCA? Akan lebih aman untuk selalu melakukan korelasi PCA.

Bayangkan bahwa variabel Anda memiliki satuan ukuran yang berbeda, seperti meter dan kilogram. Seharusnya tidak masalah apakah Anda menggunakan meter atau sentimeter dalam kasus ini, sehingga Anda dapat berdebat bahwa matriks korelasi harus digunakan.

Pertimbangkan sekarang populasi orang di berbagai negara. Satuan ukuran adalah sama - jumlah (jumlah) orang. Sekarang, timbangannya bisa berbeda: DC memiliki 600K dan CA - 38M orang. Haruskah kita menggunakan matriks korelasi di sini? Tergantung. Dalam beberapa aplikasi kami ingin menyesuaikan ukuran negara. Menggunakan matriks kovarians adalah salah satu cara untuk membangun faktor yang memperhitungkan ukuran negara.

Oleh karena itu, jawaban saya adalah menggunakan matriks kovarians ketika varians dari variabel asli penting, dan gunakan korelasi ketika tidak.

Aksakal
sumber
2

Saya pribadi merasa sangat berharga untuk membahas opsi-opsi ini mengingat model analisis komponen utama (MLPCA) kemungkinan maksimum [1,2]. Dalam MLPCA seseorang menerapkan penskalaan (atau bahkan rotasi) sehingga kesalahan pengukuran dalam variabel yang diukur independen dan didistribusikan sesuai dengan distribusi normal standar. Penskalaan ini juga dikenal sebagai penskalaan kemungkinan maksimum (MALS) [3]. Dalam beberapa kasus, model PCA dan parameter yang menentukan skala / rotasi MALS dapat diperkirakan bersama-sama [4].

Untuk menginterpretasikan PCA berbasis korelasi dan berbasis kovarians, orang kemudian dapat berpendapat bahwa:

  1. PCA berbasis kovarian setara dengan MLPCA setiap kali matriks varians-kovarians dari kesalahan pengukuran diasumsikan diagonal dengan elemen yang sama pada diagonalnya. Parameter varians kesalahan pengukuran kemudian dapat diperkirakan dengan menerapkan model analisis komponen utama probabilistik (PPCA) [5]. Saya menemukan ini asumsi yang masuk akal dalam beberapa kasus yang telah saya pelajari, khususnya ketika semua pengukuran dari jenis variabel yang sama (misalnya semua aliran, semua suhu, semua konsentrasi, atau semua pengukuran absorbansi). Memang, bisa aman untuk mengasumsikan bahwa kesalahan pengukuran untuk variabel-variabel tersebut didistribusikan secara independen dan identik.
  2. PCA berbasis korelasi setara dengan MLPCA setiap kali matriks varians-kovarians dari kesalahan pengukuran diasumsikan diagonal dengan masing-masing elemen pada diagonal sebanding dengan varians keseluruhan dari variabel terukur yang sesuai. Walaupun ini adalah metode yang populer, saya pribadi menemukan asumsi proporsionalitas tidak masuk akal dalam kebanyakan kasus saya belajar. Sebagai akibatnya, ini berarti saya tidak dapat menginterpretasikan PCA berbasis korelasi sebagai model MLPCA. Dalam kasus di mana (1) asumsi tersirat PCA berbasis kovarians tidak berlaku dan (2) interpretasi MLPCA berharga, saya sarankan untuk menggunakan salah satu metode MLPCA sebagai gantinya [1-4].
  3. PCA berbasis korelasi dan berbasis kovarian akan menghasilkan hasil yang sama persis - mulai dari pengganda skalar- ketika masing-masing varian untuk setiap variabel semuanya sama persis satu sama lain. Ketika varian individual ini mirip tetapi tidak sama, kedua metode akan menghasilkan hasil yang sama.

Seperti yang sudah ditekankan di atas, pilihan akhir bergantung pada asumsi yang Anda buat. Selain itu, kegunaan model tertentu juga tergantung pada konteks dan tujuan analisis Anda. Mengutip George EP Box: "Semua model salah, tetapi ada yang berguna".

[1] Wentzell, PD, Andrews, DT, Hamilton, DC, Faber, K., & Kowalski, BR (1997). Analisis komponen utama kemungkinan maksimum. Jurnal Chemometrics, 11 (4), 339-366.

[2] Wentzell, PD, & Lohnes, MT (1999). Analisis komponen utama kemungkinan maksimum dengan kesalahan pengukuran berkorelasi: pertimbangan teoritis dan praktis. Chemometrics dan Sistem Laboratorium Cerdas, 45 (1-2), 65-85.

[3] Hoefsloot, HC, Verouden, MP, Westerhuis, JA, & Smilde, AK (2006). Penskalaan kemungkinan maksimum (MALS). Jurnal Chemometrics, 20 (3-4), 120-127.

[4] Narasimhan, S., & Shah, SL (2008). Identifikasi model dan estimasi matriks kovarians kesalahan dari data berisik menggunakan PCA. Praktek Teknik Kontrol, 16 (1), 146-155.

[5] Tipping, ME, & Bishop, CM (1999). Analisis komponen utama probabilistik. Jurnal Masyarakat Statistik Kerajaan: Seri B (Metodologi Statistik), 61 (3), 611-622.

Kris Villez
sumber
-1

Lurus dan sederhana: jika timbangan serupa gunakan cov-PCA, jika tidak, gunakan corr-PCA; jika tidak, Anda lebih baik memiliki pembelaan untuk tidak. Jika ragu, gunakan uji-F untuk persamaan varian (ANOVA). Jika gagal dalam uji-F, gunakan kor; jika tidak, gunakan cov.

Beruang kaki
sumber
2
-1. Saya tidak mengerti mengapa menjalankan uji-F bisa relevan di sini. PCA adalah metode eksplorasi, bukan metode konfirmasi (seperti halnya uji statistik).
amoeba
-5

Argumen berdasarkan skala (untuk variabel yang diekspresikan dalam satuan fisik yang sama) tampak agak lemah. Bayangkan satu set variabel (tanpa dimensi) yang standar deviasinya bervariasi antara 0,001 dan 0,1. Dibandingkan dengan nilai standar 1, keduanya tampaknya 'kecil' dan tingkat fluktuasi yang sebanding. Namun, ketika Anda mengekspresikannya dalam desibel, ini memberikan kisaran -60 dB terhadap -10 dan 0 dB, masing-masing. Maka ini mungkin kemudian akan diklasifikasikan sebagai 'rentang besar' - terutama jika Anda akan memasukkan standar deviasi mendekati 0, yaitu minus infinity dB.

Saran saya adalah melakukan KEDUA PCA berbasis korelasi dan kovarian. Jika keduanya memberikan PC yang sama (atau sangat mirip, apa pun artinya), maka Anda dapat diyakinkan bahwa Anda sudah mendapatkan jawaban yang bermakna. Jika mereka memberikan PC yang sangat berbeda tidak menggunakan PCA, karena dua jawaban berbeda untuk satu masalah bukanlah cara yang masuk akal untuk menyelesaikan pertanyaan.

Lucozade
sumber
9
(-1) Mendapat "dua jawaban berbeda untuk masalah yang sama" seringkali hanya berarti Anda menghancurkan tanpa berpikir tanpa memikirkan teknik mana yang sesuai untuk tujuan analitis Anda. Ini tidak berarti bahwa satu atau (seperti yang Anda sebutkan) kedua teknik tidak masuk akal, tetapi hanya bahwa setidaknya satu mungkin tidak sesuai untuk masalah atau data. Selain itu, dalam banyak kasus Anda dapat mengantisipasi bahwa PCA berbasis kovarian dan PCA berbasis korelasi harus memberikan jawaban yang berbeda. Bagaimanapun, mereka mengukur berbagai aspek data. Melakukan keduanya secara default tidak masuk akal.
whuber
Sebenarnya sangat masuk akal untuk mendapatkan 2 jawaban berbeda saat menggunakan PCA dengan korelasi dan kovarians. Dalam kasus stok, ini adalah pertanyaan apakah Anda harus mempertimbangkan betas (atau standar deviasi)
Juancentro