Tidak menormalkan data sebelum PCA memberikan rasio varians yang dijelaskan lebih baik


19

Saya menormalkan dataset saya kemudian menjalankan 3 komponen PCA untuk mendapatkan rasio varians yang dijelaskan kecil ([0,50, 0,1, 0,05]).

Ketika saya tidak menormalkan tetapi memutihkan dataset saya kemudian menjalankan 3 komponen PCA, saya mendapat rasio varian yang dijelaskan tinggi ([0,86, 0,06,0,01]).

Karena saya ingin menyimpan sebanyak mungkin data menjadi 3 komponen, haruskah saya TIDAK menormalkan data? Dari pemahaman saya, kita harus selalu menormalkan sebelum PCA.

Dengan menormalkan: pengaturan berarti 0 dan memiliki varian unit.

pca 

3
Meskipun tidak jelas apa yang Anda maksud dengan "menormalkan" data (saya tahu setidaknya empat cara standar untuk melakukan ini dalam PCA dan kemungkinan ada lebih banyak), sepertinya materi di stats.stackexchange.com/questions/53 mungkin menjadi menerangi.
whuber

Hai whubber: Maksud saya menormalkan setiap pengamatan ke unit norma

1
Terima kasih. Istilah yang biasa untuk itu adalah "standardisasi." Ketika Anda melakukan itu, Anda menjalankan PCA berdasarkan korelasi: itulah mengapa saya pikir tautan yang saya berikan mungkin sudah menjawab pertanyaan Anda. Namun, saya melihat tidak ada jawaban di sana yang benar-benar menjelaskan mengapa atau bagaimana Anda akan mendapatkan hasil yang berbeda (mungkin karena rumit dan efek standardisasi mungkin sulit diprediksi).
whuber

1
Apakah pemutihan sebelum PCA khas? Apa tujuan melakukan itu?
shadowtalker

2
Jika Anda bekerja dengan gambar, misalnya, norma gambar sesuai dengan kecerahan. Varians penjelasan tinggi dari data yang tidak dinormalisasi berarti bahwa banyak data dapat dijelaskan oleh perubahan kecerahan. Jika kecerahan tidak penting bagi Anda, karena sering tidak dalam pemrosesan gambar, maka Anda ingin menjadikan semua unit gambar sebagai norma pertama. Bahkan mengira varian yang dijelaskan dari komponen pca Anda akan lebih rendah, lebih baik mencerminkan apa yang Anda minati.
Aaron

Jawaban:


37

Tergantung pada tujuan analisis Anda. Beberapa praktik umum, beberapa di antaranya disebutkan dalam tautan whuber:

  1. Standarisasi biasanya dilakukan ketika variabel yang dilakukan PCA tidak diukur pada skala yang sama. Perhatikan bahwa standardisasi menyiratkan menetapkan sama pentingnya untuk semua variabel.
  2. Jika mereka tidak diukur pada skala yang sama dan Anda memilih untuk bekerja pada variabel yang tidak terstandarisasi, sering kali setiap PC didominasi oleh variabel tunggal dan Anda hanya mendapatkan semacam pemesanan variabel dengan varians mereka. (Salah satu pemuatan masing-masing komponen (awal) akan mendekati +1 atau -1.)
  3. Kedua metode ini sering menghasilkan hasil yang berbeda, seperti yang Anda alami.

Contoh intuitif:

Misalkan Anda memiliki dua variabel: tinggi pohon dan ketebalan pohon yang sama. Kami akan mengonversi volume menjadi faktor: volume pohon akan tinggi jika volumenya lebih besar dari 20 kaki kubik, dan sebaliknya volume rendah. Kami akan menggunakan dataset pohon yang dimuat di R.

>data(trees)
>tree.girth<-trees[,1]
>tree.height<-trees[,2]
>tree.vol<-as.factor(ifelse(trees[,3]>20,"high","low"))

Sekarang anggaplah bahwa ketinggian sebenarnya diukur dalam mil bukan kaki.

>tree.height<-tree.height/5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
>summary(tree.pca)
Importance of components:
                      Comp.1       Comp.2
Standard deviation     3.0871086 1.014551e-03
Proportion of Variance 0.9999999 1.080050e-07
Cumulative Proportion  0.9999999 1.000000e+00

Komponen pertama menjelaskan hampir 100% dari variabilitas dalam data. Pemuatan:

> loadings(tree.pca)

Loadings:
            Comp.1 Comp.2
tree.height        -1    
tree.girth   1           

Penilaian grafis:

>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))

Biplot metode pertama

Kita melihat bahwa pohon dengan volume tinggi cenderung memiliki ketebalan pohon yang tinggi, tetapi ketiganya tidak memberikan informasi tentang volume pohon. Ini kemungkinan salah dan konsekuensi dari dua ukuran unit yang berbeda.

Kita bisa menggunakan unit yang sama, atau kita bisa membuat standar variabel. Saya berharap keduanya akan mengarah pada gambaran variabilitas yang lebih seimbang. Tentu saja dalam kasus ini orang dapat berargumen bahwa variabel harus memiliki unit yang sama tetapi tidak dibakukan, yang mungkin merupakan argumen yang valid, seandainya kita tidak mengukur dua hal yang berbeda. (Ketika kita akan mengukur berat pohon dan ketebalan pohon, skala di mana keduanya harus diukur tidak lagi sangat jelas. Dalam hal ini kita memiliki argumen yang jelas untuk bekerja pada variabel standar.)

>tree.height<-tree.height*5280
>tree<-cbind(tree.height,tree.girth)
>
>#do the PCA
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
                          Comp.1    Comp.2
Standard deviation     6.5088696 2.5407042
Proportion of Variance 0.8677775 0.1322225
Cumulative Proportion  0.8677775 1.0000000
> loadings(tree.pca)

Loadings:
            Comp.1 Comp.2
tree.height -0.956  0.293
tree.girth  -0.293 -0.956

>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))

Biplot metode kedua

Kita sekarang melihat bahwa pohon yang tinggi dan memiliki lingkar besar, volumenya tinggi (sudut kiri bawah), dibandingkan dengan lingkar rendah dan tinggi rendah untuk pohon volume rendah (sudut kanan atas). Ini secara intuitif masuk akal.

Namun, jika seseorang memperhatikan dengan seksama, kita melihat bahwa kontras antara volume tinggi / rendah paling kuat dalam arah ketebalan dan tidak dalam arah ketinggian. Mari kita lihat apa yang terjadi ketika kita melakukan standarisasi:

>tree<-scale(tree,center=F,scale=T)
>tree.pca<-princomp(tree)
> summary(tree.pca)
Importance of components:
                          Comp.1     Comp.2
Standard deviation     0.2275561 0.06779544
Proportion of Variance 0.9184749 0.08152510
Cumulative Proportion  0.9184749 1.00000000
> loadings(tree.pca)

Loadings:
            Comp.1 Comp.2
tree.height  0.203 -0.979
tree.girth   0.979  0.203
>biplot(tree.pca,xlabs=tree.vol,col=c("grey","red"))

Biplot metode ketiga

Memang, ketebalan sekarang menjelaskan sebagian besar perbedaan pohon volume tinggi dan rendah! (Panjang panah dalam biplot adalah indikasi varians dalam variabel asli.) Jadi, bahkan jika hal-hal diukur pada skala yang sama, standardisasi mungkin berguna. Tidak ada standardisasi yang direkomendasikan ketika kita misalnya membandingkan panjang spesies pohon yang berbeda karena pengukuran ini persis sama.


2
(+1) Jawaban yang sangat bagus, benar-benar melampaui semua yang diberikan dalam utas populer tertaut tentang PCA tentang kovarian vs. korelasi.
Amuba mengatakan Reinstate Monica
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.