PCA yapmadan önce yüksek oranda ilişkili değişkenleri kaldırmak gerekir mi?


111

PCA yapmadan önce diğer değişkenlerle yüksek korelasyon nedeniyle yazarın birkaç değişkeni attığı bir makale okuyorum. Toplam değişken sayısı yaklaşık 20'dir.

Bu herhangi bir fayda sağlıyor mu? PCA bunu otomatik olarak halletmesi gerektiği için bana yük gibi geliyor.


26
Sadece bir ipucu. Değişkenlerden birine daha fazla kopya (veya yakın kopya) eklerseniz, PCA'nın sonuçlarının ne şekilde değişeceğini düşünün.
ttnphns

@ type2 okuduğunuz kağıdı lütfen isimlendirir misiniz?
Amatya,

Yanıtlar:


123

Bu, @ttnphns tarafından yapılan bir yorumda verilen anlayışlı ipucunu açıklar.

Neredeyse ilişkilendirilmiş değişkenlerin birleştirilmesi ortak temel faktörlerinin PCA'ya katkısını arttırır. Bunu geometrik olarak görebiliriz. Bu verileri, XY düzleminde, bir nokta bulutu olarak gösterilenleri göz önünde bulundurun:

Dağılım grafiği

Çok az korelasyon var, yaklaşık olarak eşit kovaryans var ve veriler ortalanıyor: PCA (nasıl yapıldığına bakılmaksızın) yaklaşık olarak iki eşit bileşeni rapor eder.

Şimdi üçüncü bir değişken atmak edelim eşit artı rasgele hatanın küçük bir miktarda. korelasyon matrisi bunu, ikinci ve üçüncü sıralar ve sütunlar ( ve ) arasındaki küçük diyagonal olmayan katsayılarla gösterir :Y, ( X , Y , Z ) Y, Z,ZY(X,Y,Z)YZ

(1.0.03440180.0460760.03440181.0.9418290.0460760.9418291.)

Geometrik olarak, tüm orijinal noktaları neredeyse dikey olarak değiştirdik, önceki resmi sayfanın düzleminden kaldırdık. Bu sözde 3B nokta bulutu, kaldırmayı yan perspektif görünümüyle (daha önce olduğu gibi üretilse de, farklı bir veri kümesine dayanarak) göstermeye çalışır:

3B arsa

Noktalar aslen mavi düzlemde bulunur ve kırmızı noktalara kaldırılır. Orijinal ekseni sağa işaret eder. Elde edilen eğim aynı zamanda YZ yönleri boyunca noktaları uzatır, böylece varyansa katkılarını ikiye katlar . Sonuç olarak, bu yeni verilerin bir PCA'sı hala iki ana ana bileşeni tanımlayacaktır, ancak şimdi bir tanesi diğerinin iki katı varyansına sahip olacaktır.Y

Bu geometrik beklenti, içindeki bazı simülasyonlarla ortaya çıkıyor R. Bunun için, ikinci değişkenin yakın kopyalarını ikinci, üçüncü, dördüncü ve beşinci kez, ile adlandırarak "kaldırma" prosedürünü tekrarladım . İşte bu son dört değişkenin nasıl iyi korelasyon gösterdiğini gösteren bir scatterplot matrisi:X 5X2X5

Dağılım matrisi

PCA korelasyonlar kullanılarak (bu veriler için gerçekten önemli olmasa da), ilk iki değişken, ardından üç, ... ve son olarak beş kullanılarak yapılır. Sonuçları, ana bileşenlerin toplam varyansa katkı paylarını çizerek gösteririm.

PCA sonuçları

Başlangıçta, birbiriyle neredeyse hiç ilişkili olmayan iki değişkenle, katkılar neredeyse eşittir (sol üst köşe). İkincisi ile ilişkilendirilmiş bir değişken ekledikten sonra - aynen geometrik şekilde olduğu gibi - hala biri iki diğeri büyüklüğünde olan iki ana bileşen vardır. (Üçüncü bileşen mükemmel bir bağlantının bulunmadığını yansıtır, aynı 3D ScatterPlot içinde gözleme benzeri bulutun "kalınlığını" ölçer.) Başka bir korelasyon değişken (ekledikten sonra ), birinci bileşen şimdi toplamın yaklaşık dörtte üçü ise ; Beşinci bir eklendikten sonra, birinci bileşen toplamın yaklaşık beşte dördüdür. Dört vakanın hepsinde, ikinciden sonraki bileşenler çoğu PCA tanı prosedürüyle önemsiz sayılır; son durumdaX4dikkate değer bir temel bileşen.

Artık değişkenler koleksiyonunun aynı altta yatan (ancak "gizli") ölçümünü düşündüğü değişkenlerin atılmasının haklı olduğunu görebiliyoruz , çünkü neredeyse yedekli değişkenlerin dahil edilmesi PCA'nın katkılarını aşırı derecede vurgulamasına neden olabilir. Böyle bir prosedür hakkında matematiksel olarak doğru (veya yanlış) bir şey yoktur ; Verilerin analitik amaçlarına ve bilgilerine dayanan bir yargılama çağrısıdır. Ancak, açıkça açıkça belirtilmelidir ki , diğerleri ile güçlü bir şekilde ilişkili olduğu bilinen değişkenleri bir kenara koymak PCA sonuçları üzerinde önemli bir etkiye sahip olabilir.


İşte Rkod.

n.cases <- 240               # Number of points.
n.vars <- 4                  # Number of mutually correlated variables.
set.seed(26)                 # Make these results reproducible.
eps <- rnorm(n.vars, 0, 1/4) # Make "1/4" smaller to *increase* the correlations.
x <- matrix(rnorm(n.cases * (n.vars+2)), nrow=n.cases)
beta <- rbind(c(1,rep(0, n.vars)), c(0,rep(1, n.vars)), cbind(rep(0,n.vars), diag(eps)))
y <- x%*%beta                # The variables.
cor(y)                       # Verify their correlations are as intended.
plot(data.frame(y))          # Show the scatterplot matrix.

# Perform PCA on the first 2, 3, 4, ..., n.vars+1 variables.
p <- lapply(2:dim(beta)[2], function(k) prcomp(y[, 1:k], scale=TRUE))

# Print summaries and display plots.
tmp <- lapply(p, summary)
par(mfrow=c(2,2))
tmp <- lapply(p, plot)

5
+1, güzel rakamlar. İlk 2 için ne kullandın? Birincisi elle çizilmiş gibi görünüyor.
gung

14
TEX

2
Bu çok aydınlatıcı, whuber. Yeni bir şey öğrendim.
Spacey

7
@whuber en sıcak istatistikçi gibi - bir profesyonel gibi XKCD arazileri kullanıyor.
Cam.Davidson.Pilon

2
@logan Başka bir deyişle, hayır. Dikkatinizi bu yazının sonunda bir cümleye yönlendirmeme izin verin: "Böyle bir prosedür hakkında matematiksel olarak doğru (veya yanlış) bir şey yoktur; bu, verilerin analitik amaçlarına ve bilgisine dayanan bir yargılama çağrısıdır."
whuber

42

Ben daha ileri edecek göstermek @whuber yaptığı gibi aynı süreci ve fikri ancak yükleme araziler, - yüklemeleri çünkü PCA derinliklerinden sonuçlanır.

X1X2X3X2X4X5

İlk 2 ana komponentin yüklerinin grafikleri daha sonra gider. Arazideki kırmızı ani değişkenler arasındaki korelasyonu söyler, böylece birkaç ani demet, sıkı sıkıya bağlı değişkenlerden oluşan bir kümenin bulunduğu yerdir. Bileşenler gri çizgilerdir; bir bileşenin nispi "kuvveti" (nispi özdeğer büyüklüğü) çizginin ağırlığına göre verilir.

görüntü tanımını buraya girin

"Kopya" eklemenin iki etkisi gözlemlenebilir:

  1. Bileşen 1 daha da güçlenir ve bileşen 2 daha zayıf ve daha zayıf hale gelir.
  2. X1X2X3X2

Ahlaki sürdürmeyeceğim çünkü @whuber zaten yaptı.


r=0r=0.62r=0.77

X1X2r=0 X1X2satırlar kendileri bileşenler olarak seçilebilirler.] Bir bileşenin üzerine veri noktalarının (200 özne) koordinatları bileşen puanlarıdır ve 200-1 ile ayrılmış kareler toplamı, bileşenin öz değeridir .

rX1X2(ancak 3. değişkeni eklemek her halükarda saptırabilir). Bir değişken vektör ile bir bileşen çizgisi arasındaki açı (kosinüs), aralarındaki korelasyondur ve vektörler birim uzunluk ve bileşenler dik olduğundan, bu, koordinatlardan başka bir şey değildir, yükleme . Bileşene karelenmiş yüklerin toplamı özdeğerdir ( bileşen, kendisini bu konudaki alanda maksimize edecek şekilde yönlendirir)

görüntü tanımını buraya girin


Addition2. Gelen İlavesi birlikte su ve yağ gibi uyumsuz sanki ben "değişken alanı" ve "özne alan" hakkında konuşuyordu yukarıda. Bunu tekrar düşünmem gerekiyordu ve şunu söyleyebilirim - en azından PCA hakkında konuştuğumuzda - sonuçta her iki alan da izomorfiktir ve bu sayede tüm PCA ayrıntılarını doğru bir şekilde gösterebiliriz - veri noktaları, değişken eksenler, bileşen eksenleri, değişkenler gibi Puan, - tek bir bozulmamış çift çubuk üzerinde.

Aşağıda saçılma grafiği (değişken alan) ve yükleme grafiği (genetik kökeni tarafından konu alanı olan bileşen alanı) bulunmaktadır. Birinde gösterilebilecek her şey, diğerinde de gösterilebilir. Resimler aynıdır , sadece birbirine göre 45 derece döndürülür (ve bu özel durumda yansıtılır). Bu, v1 ve v2 değişkenlerinin bir PCA'sıydı (standartlaştırıldı, böylece analiz edildi r ). Resimlerdeki siyah çizgiler eksen olarak değişkenlerdir; yeşil / sarı çizgiler eksen olarak bileşenlerdir; mavi noktalar veri bulutu (konular); kırmızı noktalar, nokta olarak gösterilen değişkenlerdir (vektörler).

görüntü tanımını buraya girin


1
+1 ilginç çizim. BTW, ikinci gözleminiz verinin bir eseridir: oryantasyon değişti, çünkü ilk durumda korelasyon mükemmeldi ve iki boyutlu bir eigenspace verdi. (Bu gerçek verilerde son derece nadirdir; genellikle bir veritabanı hatası yapıldığı anlamına gelir ve bir değişken diğerinin doğrusal bir ifadesidir.) Yazılım keyfi olarak bu alan için herhangi bir ortogonal temeli seçmekte özgürdü. Sadece en küçük miktarda korelasyon bu yozlaşmayı ortadan kaldırabilirdi. Bu nedenle, bu yeniden yönlendirme fenomenini aşırı yorumladığınızı düşünüyorum.
whuber

@whuber, Belki de seni anlamıyorum. Hangi "mükemmel" korelasyon? R bw X1 ve X2, .003 olduğu; ve herhangi biri olabilirdi, örneğin .503. Bu, arsadaki iki kırmızı vektörün bw açısının cos olması. R ne olursa olsun, 1. PC her zaman iki katlıdır, sadece 2 değişken analiz edilmektedir. Notunuzun değişken alandakiThe software was free to choose any orthogonal basis for that space, arbitrarily yuvarlak bulut için geçerli olduğunu tahmin ediyorum (yani, cevabınızdaki 1. resim gibi veri dağılım grafiği), ancak yükleme grafiği, durumların değil, durumların (vektörlerin) olduğu konu alanıdır .
ttnphns

1
R5

Korelasyon kullandım (matrisi ve kırmızı vektörlerin esasen aynı uzunlukları olduğunun farkına vardım). Evet, söz konusu boşluk olan bir tupsy-torvey dağılım n eksen (konular) ve p noktalarında (değişkenler). Elbette, tüm np boyutları gereksizdir ve herhangi bir p değişkeni kümesi p boyutlu konu alanında çizilebilir, ancak bu onu değişken bir alana çevirmez! Sadece cevabımı resim ekleyeceğim.
ttnphns

5
+1, ek katkı için teşekkürler, @ttnphns. Bu, aslında oldukça basit bir soru olduğunu düşündüğümden, inanılmaz derecede bilgilendirici bir konuya dönüşüyor.
gung

4

Makalenizden ayrıntılar olmadan, yüksek korelasyonlu değişkenlerin bu atılmasının yalnızca hesaplama gücünden veya iş yükünden tasarruf etmek için yapıldığı kanısındayım. PCA'nın yüksek derecede ilişkili değişkenler için neden 'kırılmasının' bir nedeni göremiyorum. Verileri PCA tarafından bulunan bazlara geri yansıtmak, verilerin beyazlaştırılmasını, (ya da ilişkisini kaldırarak) etkiye sahiptir. PCA'nın arkasındaki bütün mesele bu.


4
İpucunu @ttnphns tarafından okudunuz mu? PCA sadece özvektörlere değil (tartıştığımız) özdeğerlere (göz ardı ettiğiniz) önem veriyor. Bu önemlidir, çünkü özdeğerler hangi bileşenlerin tutulacağını ve hangilerinin düşeceğini belirlemek için kullanılır.
whuber

2
@whuber Evet ... evet şimdi anladım galiba. Bu nedenle, esas olarak, daha fazla korelasyonlu değişkenler, belirli özvektörleri, (yönleri) fazla vurgulayacaktır ve çok sayıda korelasyonlu değişken varsa, o zaman, “orijinal” bir özvektör / yönü belirten çok daha fazla vurgulanan “sahte” yönler olacaktır. Aksi takdirde kolayca görüldü. Seni doğru anlıyor muyum?
Spacey

2
Çok yakın, Mohammad. Gerçektir ki kilo diferansiyel olarak bunun gibi bir dizi birçok değişkene dahil olmak üzere birçok temel bileşenleri (özvektörler), üzerine bağıntılı değişkenler olabilir "yük" bir dizi çeşitli özvektörlerini - ve böylece de bütün özvektörler yön değiştirir.
whuber

1

Anladığım kadarıyla korelasyon değişkenleri tamam, çünkü PCA ortogonal olan vektörleri çıkarır.


5
Haklısınız, ancak dikgenliğin neden değişkenleri önceden atıp atmamak konusunda herhangi bir etkisi olduğunu açıklar mısınız?
whuber

-1

Bu, algoritmanıza bağlı. Yüksek derecede ilişkili değişkenler, koşulsuz bir matris anlamına gelebilir. Buna duyarlı bir algoritma kullanırsanız, mantıklı olabilir. Ancak, özdeğerleri ve özvektörleri ayırmak için kullanılan modern algoritmaların çoğunun buna sağlam olduğunu söylemeye cüret ediyorum. Yüksek derecede ilişkili değişkenleri kaldırmayı deneyin. Özdeğerler ve özvektör çok fazla değişiyor mu? Onlar yaparlarsa, o zaman kötü klima cevap olabilir. Yüksek derecede ilişkili değişkenler bilgi eklemediğinden, PCA ayrıştırması değişmemelidir


4
Ne yazık ki, PCA yapar değiştirin: neredeyse garantili.
whuber

1
@whuber Wow, çok fazla tepki ve çok bilgilendirici. Yorumum için üzgünüm, tamamen yanlıştı. Benim hatam. Çok bilgilendirici cevap BTW
Juancentro

4
Tamamen yanlış cevaplardan en iyisini öğrendim, Juancentro - özellikle de kamuoyunda nadiren ortaya çıkan :-) benim. @Ttnphns bir yorum bırakana kadar sizinkilere benzer düşüncelerim vardı.
whuber

-1

Hangi prensip bileşen seçim yöntemini kullandığınıza bağlı değil mi?

Herhangi bir prensip bileşenini özdeğer> 1 olan bir kullanma eğilimindeyim. Bu yüzden beni etkilemeyecekti.

Ve yukarıdaki örneklerden, kayşat arsa yöntemi bile genellikle doğru olanı seçer. ELBOW'DAN ÖNCE HER ŞEYİ TUTMAK durumunda. Bununla birlikte, basitçe 'baskın' özdeğer ile temel bileşeni seçtiyseniz, yoldan sapmış olursunuz. Ama bu kaygan bir arsa kullanmanın doğru yolu değil!


5
Siteye hoş geldin Chris. Ne yazık ki, bu geçici prosedürlerin hiçbiri özellikle savunulabilir değildir. İlk durumda, verilerinizin şeklini hiçbir şekilde değiştiremediğinizi ve hepsinin seçilmesinden hiçbirini seçmeyeceğinize dikkat edin (yalnızca her şeyi sabitle çarparak).
kardinal
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.