Apa perbedaan utama antara melakukan analisis komponen utama (PCA) pada matriks korelasi dan pada matriks kovarians? Apakah mereka memberikan hasil yang sama?
Apa perbedaan utama antara melakukan analisis komponen utama (PCA) pada matriks korelasi dan pada matriks kovarians? Apakah mereka memberikan hasil yang sama?
Jawaban:
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 heptathlon
kumpulan 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)
Perhatikan bahwa PCA pada kovarians didominasi oleh run800m
dan 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 ).javelin
Perhatikan juga bahwa individu yang berada di luar (dalam set data ini ) adalah outlier terlepas dari apakah kovarian atau matriks korelasi digunakan.
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.
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 .
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.
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.
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:
Misalnya, jika Anda memasukkan nilai 0,025, Anda akan mendapatkan . Hal yang sama berlaku untuk nilai plugin , Anda akan mendapatkan .
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.
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.
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:
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.
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.
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.