PCA biplotundaki dört eksen nedir?


18

PCA analizi için bir biplot oluşturduğunuzda, x ekseni üzerinde ana bileşen PC1 puanları ve y ekseninde PC2 puanları olur. Ancak ekranın sağındaki ve üstündeki diğer iki eksen nedir?


1
Hangi ekrandan bahsettiğinizi nasıl bilebiliriz?
FairMiles

@ttnphns burada
Haitao Du

Yanıtlar:


12

Örneğin, aşağıdaki komutun döndürdüğü grafikte mi demek istediniz?

biplot(prcomp(USArrests, scale = TRUE))

biplot USA arrests

Evet ise, o zaman üst ve sağ eksenler grafikteki kırmızı okları (değişkenleri gösteren noktalar) yorumlamak için kullanılır.

Eğer temel bileşen analizi nasıl çalıştığını biliyorum ve R kodu, elde edilen sonuçlar nasıl gösterileri aşağıdaki kodu okuyabiliyorsanız prcomp()başlangıçta tedavi edilir biplot.prcomp()nihai komplo önce biplot.default(). Bu iki fonksiyon, çizim yaptığınızda arka planda çağrılır biplot()ve aşağıdaki değiştirilmiş kod alıntısı şuradan gelir biplot.prcomp().

x<-prcomp(USArrests, scale=TRUE)
choices = 1L:2L
scale = 1
pc.biplot = FALSE
scores<-x$x
lam <- x$sdev[choices]
n <- NROW(scores)
lam <- lam * sqrt(n)
lam <- lam^scale
yy<-t(t(x$rotation[, choices]) * lam)
xx<-t(t(scores[, choices])/lam)
biplot(xx,yy)

Kısaca, yukarıdaki örnekte, değişken yüklerin ( x$rotation) matrisi , ana bileşenlerin standart sapması (x$sdev , gözlem sayısının ) çarpı karekökünün . Bu, üst ve sağ eksenler için ölçeği çizimde görünene göre ayarlar.

Değişken yükleri ölçeklendirmek için başka yöntemler de vardır. Bunlar, örneğin R paketi vegan tarafından sunulmaktadır.


5
+1. Rakamı cevabınıza ekleme özgürlüğünü aldım.
amip, Reinstate Monica

Buna ek olarak, cevabınıza PC skorlarının (soldaki ve alttaki eksenler) birim kareler toplamına ölçeklendiğini ekleyebiliyorsanız, gelecekte referanslar için çok yararlı olacağını düşünüyorum: "ham" değiller PC puanları.
amip diyor Reinstate Monica

Ayrıca, okların metin etiketinin merkezi olması gereken yerde olacak şekilde çizildiğini söylemek gerekir! Oklar daha sonra ile çarpılır0.8çizmeden önce, yani tüm oklar olması gerekenden daha kısadır, muhtemelen metin etiketi ile çakışmayı önlemek için (koduna bakın biplot.default). Bunun son derece kafa karıştırıcı olduğunu düşünüyorum.
amip diyor Reinstate Monica

1
Ayrıca, daha sonra bu konuya da bakınız: Okları PCA biplotuna yerleştirme .
amip diyor Reinstate Monica

11

Biplot için daha iyi bir görselleştirmem var. Lütfen aşağıdaki şekli kontrol edin.

Deneyde, 3d noktaları 2d'ye (simüle veri seti) eşlemeye çalışıyorum.

2d'de biplotu anlamanın hilesi, aynı şeyi 3d olarak görmek için doğru açıyı bulmaktır. Tüm veri noktaları numaralandırılmıştır, eşleştirmeyi açıkça görebilirsiniz.

enter image description here

Sonuçları yeniden oluşturmak için kod İşte.

require(rgl)
set.seed(0)

feature1=round(rnorm(50)*10+20)
feature2=round(rnorm(50)*10+30)
feature3=round(runif(50)*feature1)

d=data.frame(feature1,feature2,feature3)

head(d)

plot(feature1,feature2)
plot(feature2,feature3)
plot(feature1,feature3)

plot3d(d$feature1, d$feature2, d$feature3, type = 'n')
points3d(d$feature1, d$feature2, d$feature3, color = 'red', size = 10)
shift <- matrix(c(-2, 2, 0), 12, 3, byrow = TRUE)
text3d(d+shift,texts=1:50)
grid3d(c("x", "y", "z"))

pr.out=prcomp(d,scale.=T)
biplot(pr.out)
grid()

2
+1. Bununla birlikte, döndürülmüş 3D figürünüzde nokta bulutunun varyans korunmuş (yatay projeksiyon, yani PC1, dikey olandan, yani PC2) daha büyük varyansa sahip olduğunu, kırmızı okların ise birim uzunluğunun (3D olarak) olduğunu unutmayın. Bu, R'deki biplotkomut tarafından üretilen ve sağ taraftaki şekilde çoğaltılan biplotta durum böyle değildir : orada nokta bulutu standartlaştırılmıştır, ancak okların varyanslara karşılık gelen uzunlukları vardır.
amip diyor Reinstate Monica

@ amoeba iyi bir nokta. Sadece okları elle çiziyorum ve ok uzunluğunun da belirli anlamları olduğunu unuttum.
Haitao Du

I think your manual 3D/2D "biplot" corresponds more to what the function biplot produces with scale=0 argument.
amoeba says 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.