PCA'dan önce verileri normalleştirmemek daha iyi açıklanmış varyans oranı verir


19

Veri setimi normalleştirdim ve daha sonra açıklanmış küçük varyans oranları elde etmek için 3 bileşenli PCA çalıştırdım ([0.50, 0.1, 0.05]).

Normalleştirmediğimde ancak veri setimi beyazlattığımda 3 bileşen PCA çalıştırdım, açıklanmış yüksek varyans oranlarına sahip oldum ([0.86, 0.06,0.01]).

3 bileşene kadar veri tutmak istediğim için, verileri normalleştirmemeli miyim? Anladığım kadarıyla her zaman PCA'dan önce normalleşmeliyiz.

Normalleştirerek: ortalamayı 0'a ayarlayın ve birim varyansına sahip olun.

pca 

3
Verileri "normalleştirerek" ne demek istediğiniz belli olmasa da (bunu PCA'da yapmanın en az dört standart yolunu biliyorum ve muhtemelen daha fazlası var), stats.stackexchange.com/questions/53 adresindeki materyal gibi görünebilir aydınlatıcı olmak.
whuber

Merhaba whubber: Her bir gözlemi birim normuna normalleştirmek demek

1
Teşekkürler. Bunun için olağan terim "standartlaştırma" dır. Bunu yaptığınızda, korelasyonlara dayalı PCA gerçekleştiriyorsunuz: Bu yüzden sağladığım bağlantının sorunuzu zaten cevaplayabileceğini düşünüyorum. Ancak, cevapların hiçbirinin aslında neden veya nasıl farklı sonuçlar alacağınızı açıkladığını görmüyorum (belki de karmaşık olduğu ve standardizasyonun etkisinin tahmin edilmesi zor olabileceğinden).
whuber

1
PCA öncesi beyazlatma tipik midir? Bunu yapmanın amacı nedir?
shadowtalker

2
Örneğin görüntülerle çalışıyorsanız, görüntülerin normu parlaklığa karşılık gelir. Normalleştirilmemiş verilerin yüksek açıklanan varyansı, birçok verinin parlaklıktaki değişikliklerle açıklanabileceği anlamına gelir. Parlaklık sizin için önemli değilse, genellikle görüntü işlemede olmadığı için, önce tüm görüntü birimi normunu yapmak istersiniz. Pca bileşenlerinizin açıklanmış varyansının daha düşük olacağını düşünseniz bile, ilgilendiğiniz şeyi daha iyi yansıtır.
Aaron

Yanıtlar:


37

Analizinizin amacına bağlıdır. Bazıları whuber'ın bağlantısında bahsedilen bazı yaygın uygulamalar:

  1. Standartlaştırma genellikle PCA'nın gerçekleştirildiği değişkenler aynı ölçekte ölçülmediğinde yapılır. Standardizasyonun tüm değişkenlere eşit önem verilmesini gerektirdiğini unutmayın.
  2. Aynı ölçekte ölçülmezlerse ve standartlaştırılmamış değişkenler üzerinde çalışmayı seçerseniz, genellikle her PC'ye tek bir değişken hakimdir ve değişkenlerin varyanslarına göre bir tür sıralaması alırsınız. (Her (erken) bileşenin yüklemelerinden biri +1 veya -1'e yakın olacaktır.)
  3. İki yöntem, deneyimlediğiniz gibi genellikle farklı sonuçlara yol açar.

Sezgisel örnek:

İki değişkeniniz olduğunu varsayalım: bir ağacın yüksekliği ve aynı ağacın çevresi. Hacmi bir faktöre dönüştüreceğiz: hacmi 20 fit küpten büyükse bir ağaç hacmi yüksek, aksi takdirde hacmi düşük olacaktır. R'de önceden yüklenmiş olarak gelen veri kümesini kullanacağız.

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

Şimdi, yüksekliğin aslında ayak yerine mil olarak ölçüldüğünü varsayalım.

>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

İlk bileşen, verilerdeki değişkenliğin neredeyse% 100'ünü açıklamaktadır. Yüklemeler:

> loadings(tree.pca)

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

Grafiksel değerlendirme:

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

İlk yöntemin biplotu

Hacmi yüksek ağaçların yüksek bir ağaç çevresi olduğunu, ancak üç yüksekliğin ağaç hacmi hakkında herhangi bir bilgi vermediğini görüyoruz. Bu muhtemelen yanlış ve iki farklı birim önlemin sonucu.

Aynı birimleri kullanabiliriz veya değişkenleri standart hale getirebiliriz. Her ikisinin de değişkenliğin daha dengeli bir resmine yol açmasını bekliyorum. Elbette bu durumda, iki farklı şeyi ölçüyor olsak da, değişkenlerin aynı birime sahip olması, ancak standartlaştırılmaması gerektiği, geçerli bir argüman olabileceği iddia edilebilir. (Ağacın ağırlığını ve ağacın çevresini ölçerken, her ikisinin de ölçülmesi gereken ölçek artık çok açık değildir. Bu durumda, standartlaştırılmış değişkenler üzerinde çalışmak için açık bir argümanımız var.)

>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"))

İkinci yöntemin biplotu

Şimdi uzun boylu ve büyük bir çevresi olan ağaçların düşük hacimli ve düşük hacimli ağaçlar (sağ üst köşe) için düşük yüksekliğe kıyasla düşük hacim (sol alt köşe) olduğunu görüyoruz. Bu sezgisel olarak mantıklı.

Bununla birlikte, yakından izlenirse, yüksek / düşük ses seviyesi arasındaki kontrastın yükseklik yönünde değil, çevre yönünde daha güçlü olduğunu görürüz. Standartlaştığımızda ne olacağını görelim:

>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"))

Üçüncü yöntemin biplotu

Gerçekten de, çevre şimdi yüksek ve düşük hacimli ağaçlardaki farkın çoğunu açıklıyor! (Biplottaki okun uzunluğu, orijinal değişkendeki varyansın göstergesidir.) Bu nedenle, işler aynı ölçekte ölçülse bile, standartlaştırma yararlı olabilir. Örneğin farklı ağaç türlerinin uzunluğunu karşılaştırdığımızda standartlaştırma önerilmez, çünkü bu tam olarak aynı ölçümdür.


2
(+1) Çok hoş bir cevap, aslında koalyans ve korelasyon üzerine PCA hakkında bağlantılı popüler iş parçacığında verilen tüm aşan.
amip, Reinstate Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.