Misalkan kita memiliki variabel terukur, , kita melakukan sejumlah pengukuran, dan kemudian ingin melakukan dekomposisi nilai singular pada hasil untuk menemukan sumbu varians tertinggi untuk poin dalam dimensi ruang. ( Catatan: asumsikan bahwa sarana telah dikurangi, jadi untuk semua .)
Sekarang anggaplah satu (atau lebih) variabel memiliki magnitudo karakteristik yang berbeda secara signifikan daripada variabel lainnya. Misalnya dapat memiliki nilai dalam kisaran sedangkan sisanya dapat sekitar . Ini akan sangat condong ke sumbu varian tertinggi terhadap sumbu .
Perbedaan dalam besaran mungkin semata-mata karena pilihan yang tidak menguntungkan dari satuan pengukuran (jika kita berbicara tentang data fisik, misalnya kilometer vs meter), tetapi sebenarnya variabel yang berbeda mungkin memiliki dimensi yang sama sekali berbeda (misalnya berat vs volume), jadi mungkin tidak ada cara yang jelas untuk memilih unit "sebanding" untuk mereka.
Pertanyaan: Saya ingin tahu apakah ada cara standar / umum untuk menormalkan data untuk menghindari masalah ini. Saya lebih tertarik pada teknik standar yang menghasilkan besaran yang sebanding untuk untuk tujuan ini daripada menghasilkan sesuatu yang baru.
EDIT: Satu kemungkinan adalah untuk menormalkan setiap variabel dengan standar deviasinya atau yang serupa. Namun, masalah berikut muncul kemudian: mari kita menafsirkan data sebagai titik awan dalam ruang dimensi. Cloud titik ini dapat diputar, dan jenis normalisasi ini akan memberikan hasil akhir yang berbeda (setelah SVD) tergantung pada rotasi. (Misalnya dalam kasus paling ekstrim bayangkan memutar data dengan tepat untuk menyelaraskan sumbu utama dengan sumbu utama.)
Saya berharap tidak akan ada cara rotasi-invarian untuk melakukan ini, tapi saya akan menghargai jika seseorang dapat mengarahkan saya ke beberapa diskusi tentang masalah ini dalam literatur, terutama mengenai peringatan dalam interpretasi hasil.
Jawaban:
Tiga normalisasi yang umum adalah pemusatan, penskalaan, dan standarisasi.
Biarkan menjadi variabel acak.X
Centering adalah
Hasil akan memiliki .x∗ x∗¯=0
Penskalaan adalah
Hasil akan memiliki .x∗ ∑sayax∗saya2= 1
Standarisasi adalah penskalaan lalu penskalaan. Hasil akan memiliki dan .x∗ x∗¯= 0 ∑sayax∗saya2= 1
sumber
Anda benar bahwa memiliki variabel individual dengan varian yang sangat berbeda dapat menimbulkan masalah untuk PCA, terutama jika perbedaan ini disebabkan oleh unit yang berbeda atau dimensi fisik yang berbeda. Untuk alasan itu, kecuali semua variabel dapat dibandingkan (jumlah fisik yang sama, unit yang sama), disarankan untuk melakukan PCA pada matriks korelasi dan bukan matriks kovarians. Lihat disini:
Melakukan PCA pada matriks korelasi sama dengan standarisasi semua variabel sebelum analisis (dan kemudian melakukan PCA pada matriks kovarians). Standarisasi berarti memusatkan dan kemudian membagi masing-masing variabel dengan deviasi standarnya, sehingga semuanya menjadi varian unit. Ini dapat dilihat sebagai "perubahan unit" yang nyaman, untuk membuat semua unit dapat dibandingkan.
Orang bisa bertanya apakah kadang-kadang ada cara yang lebih baik untuk "menormalkan" variabel; mis. seseorang dapat memilih untuk membaginya dengan beberapa estimasi varian yang kuat, bukan oleh varians mentah. Ini ditanyakan di utas berikut, dan lihat diskusi berikutnya (meskipun tidak ada jawaban pasti diberikan di sana):
Akhirnya, Anda khawatir bahwa normalisasi dengan standar deviasi (atau yang serupa) bukan rotasi invarian. Ya tidak. Tapi, seperti yang dikatakan @whuber dalam komentar di atas, tidak ada cara rotasi invarian untuk melakukannya: mengubah unit variabel individual bukanlah operasi invarian rotasi ! Tidak ada yang perlu dikhawatirkan di sini.
sumber
Teknik umum sebelum menerapkan PCA adalah dengan mengurangi mean dari sampel. Jika Anda tidak melakukannya, vektor eigen pertama akan menjadi mean. Saya tidak yakin apakah Anda telah melakukannya tetapi biarkan saya membicarakannya. Jika kita berbicara dalam kode MATLAB: ini
Seperti yang dapat dilihat dari gambar, saya pikir Anda harus mengurangi mean dari data jika Anda ingin menganalisis varians (co) yang lebih baik. Maka nilainya tidak akan antara 10-100 dan 0,1-1, tetapi rata-rata semua akan menjadi nol. Varians akan ditemukan sebagai nilai eigen (atau kuadrat dari nilai singular). Vektor eigen yang ditemukan tidak terpengaruh oleh skala dimensi untuk kasus ketika kita mengurangi rata-rata sebanyak kasus ketika kita tidak. Sebagai contoh, saya telah menguji dan mengamati hal-hal berikut yang memberi tahu mengurangi mean mungkin penting untuk kasus Anda. Jadi masalahnya mungkin hasil bukan dari varians tetapi dari perbedaan terjemahan.
sumber
Untuk menormalkan data untuk PCA, rumus berikut juga digunakan
di mana adalah nilai mentah untuk indikator itu untuk negara pada tahun , dan menggambarkan semua nilai mentah di semua negara untuk indikator itu sepanjang tahun.c t XX c t X
sumber