Apa empat sumbu pada biplot PCA?

18

Saat Anda membuat biplot untuk analisis PCA, Anda memiliki skor PC1 komponen utama pada sumbu x dan skor PC2 pada sumbu y. Tapi apa dua sumbu lainnya ke kanan dan atas layar?

Nils
sumber
1
Bagaimana kami bisa tahu layar mana yang sedang Anda bicarakan?
FairMiles
@ttnphns punya jawaban luar biasa di sini
Haitao Du

Jawaban:

12

Apakah maksud Anda, misalnya, dalam plot bahwa perintah berikut kembali?

biplot(prcomp(USArrests, scale = TRUE))

penangkapan biplot USA

Jika ya, maka sumbu atas dan kanan dimaksudkan untuk digunakan untuk menafsirkan panah merah (titik yang menggambarkan variabel) dalam plot.

Jika Anda tahu cara kerja analisis komponen utama, dan Anda dapat membaca kode R, kode di bawah ini menunjukkan kepada Anda bagaimana hasil dari prcomp()awalnya diperlakukan biplot.prcomp()sebelum sebelum merencanakan akhir biplot.default(). Kedua fungsi ini dipanggil di latar belakang saat Anda menggambar biplot(), dan kutipan kode yang dimodifikasi berikut ini berasal 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)

Singkatnya, dalam contoh di atas, matriks pemuatan variabel ( x$rotation) diskalakan oleh standar deviasi komponen utama ( x$sdev) kali akar kuadrat dari jumlah pengamatan. Ini mengatur skala untuk sumbu atas dan kanan untuk apa yang terlihat di plot.

Ada metode lain untuk skala beban variabel, juga. Ini ditawarkan misalnya oleh paket R vegan.

JTT
sumber
5
+1. Saya mengambil kebebasan untuk memasukkan angka ke dalam jawaban Anda.
Amuba mengatakan Reinstate Monica
Selain itu, saya pikir akan sangat berguna untuk referensi di masa mendatang, jika Anda dapat menambah jawaban Anda bahwa skor PC (sumbu di kiri dan di bawah) diskalakan ke unit jumlah-kuadrat: mereka tidak "mentah" Skor PC.
Amuba kata Reinstate Monica
0.8biplot.default
1
Lebih jauh lagi, lihat juga utas ini nanti: Memposisikan panah pada biplot PCA .
Amuba kata Reinstate Monica
11

Saya memiliki visualisasi yang lebih baik untuk biplot. Silakan periksa gambar berikut.

Dalam percobaan, saya mencoba memetakan titik 3d menjadi 2d (set data simulasi).

Trik untuk memahami biplot dalam 2d adalah menemukan sudut yang benar untuk melihat hal yang sama dalam 3d. Semua titik data diberi nomor, Anda dapat melihat pemetaan dengan jelas.

masukkan deskripsi gambar di sini

Berikut adalah kode untuk mereproduksi hasilnya.

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()
Haitao Du
sumber
2
+1. Namun, perhatikan bahwa dalam gambar 3D yang diputar, cloud of dots memiliki varians yang dipertahankan (proyeksi horizontal, yaitu PC1, memiliki varian lebih besar daripada yang vertikal, yaitu PC2) sedangkan panah merah semuanya memiliki panjang unit (dalam 3D). Ini bukan kasus dalam biplot yang dihasilkan oleh biplotperintah dalam R dan direproduksi dalam gambar Anda di sisi kanan: di sana awan titik-titik distandarisasi tetapi panah memiliki panjang yang sesuai dengan varians.
Amuba mengatakan Reinstate Monica
@amoeba poin yang bagus. Saya hanya menggambar panah secara manual dan lupa panjang panah juga memiliki arti khusus.
Haitao Du
Saya pikir manual Anda "biplot" 3D / 2D lebih sesuai dengan apa fungsi biplotmenghasilkan dengan scale=0argumen.
Amuba mengatakan Reinstate Monica