Bốn trục trên biplot PCA là gì?


18

Khi bạn xây dựng một biplot cho phân tích PCA, bạn có điểm PC1 thành phần chính trên trục x và điểm PC2 trên trục y. Nhưng hai trục còn lại ở bên phải và trên cùng của màn hình là gì?


1
Làm thế nào chúng ta có thể biết bạn đang nói về màn hình nào?
FairMiles

@ttnphns đã có một câu trả lời tuyệt vời tại đây
Haitao Du

Câu trả lời:


12

Bạn có nghĩa là, ví dụ, trong cốt truyện mà lệnh sau trả về?

biplot(prcomp(USArrests, scale = TRUE))

biplot bắt giữ Hoa Kỳ

Nếu có, thì trục trên và trục phải được sử dụng để giải thích các mũi tên màu đỏ (các điểm mô tả các biến) trong cốt truyện.

Nếu bạn biết cách phân tích thành phần chính hoạt động và bạn có thể đọc mã R, mã bên dưới cho bạn thấy kết quả prcomp()ban đầu được xử lý như thế nào biplot.prcomp()trước khi vẽ sơ đồ cuối cùng biplot.default(). Hai hàm này được gọi trong nền khi bạn vẽ đồ thị biplot()và đoạn trích mã được sửa đổi sau đây là từ 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)

Trong một thời gian ngắn, trong ví dụ trên, ma trận tải trọng biến ( x$rotation) được chia tỷ lệ theo độ lệch chuẩn của các thành phần chính ( x$sdev) nhân căn bậc hai của số lượng quan sát. Điều này đặt tỷ lệ cho các trục trên và bên phải theo những gì nhìn thấy trên cốt truyện.

Có nhiều phương pháp khác để mở rộng quy mô tải thay đổi. Chúng được cung cấp, ví dụ như gói R thuần chay.


5
+1. Tôi lấy tự do để chèn con số vào câu trả lời của bạn.
amip nói rằng Phục hồi Monica

Ngoài ra, tôi nghĩ rằng nó sẽ rất hữu ích cho các tài liệu tham khảo trong tương lai, nếu bạn có thể thêm vào câu trả lời của mình rằng điểm số của PC (trục bên trái và bên dưới) được chia tỷ lệ thành đơn vị bình phương: chúng không "thô" Điểm số PC.
amip nói rằng phục hồi Monica

Ngoài ra, người ta nên nói rằng các mũi tên được vẽ sao cho trung tâm của nhãn văn bản là nơi cần có! Các mũi tên sau đó được nhân với0,8trước khi vẽ, tức là tất cả các mũi tên ngắn hơn so với những gì chúng cần, có lẽ là để ngăn chặn sự chồng chéo với nhãn văn bản (xem mã cho biplot.default). Tôi thấy điều này là vô cùng khó hiểu.
amip nói phục hồi Monica

1
Ngoài ra, ngoài ra, xem thêm chủ đề sau này: Định vị các mũi tên trên biplot PCA .
amip nói rằng Phục hồi Monica

11

Tôi có một hình dung tốt hơn cho biplot. Vui lòng kiểm tra hình sau.

Trong thử nghiệm, tôi đang cố gắng ánh xạ các điểm 3d thành 2d (tập dữ liệu mô phỏng).

Mẹo để hiểu biplot trong 2d là tìm góc chính xác để thấy điều tương tự trong 3d. Tất cả các điểm dữ liệu được đánh số, bạn có thể thấy ánh xạ rõ ràng.

nhập mô tả hình ảnh ở đây

Đây là mã để tái tạo kết quả.

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. Tuy nhiên, lưu ý rằng trong hình 3D xoay của bạn, đám mây chấm có phương sai được bảo toàn (hình chiếu ngang, tức là PC1, có phương sai lớn hơn hình dọc, tức là PC2) trong khi mũi tên màu đỏ đều có đơn vị chiều dài (ở dạng 3D). Đây không phải là trường hợp trong biplot được tạo bởi biplotlệnh trong R và được sao chép trong hình của bạn ở phía bên phải: có đám mây chấm được chuẩn hóa nhưng mũi tên có độ dài tương ứng với phương sai.
amip nói phục hồi Monica

@amoeba điểm tốt. Tôi chỉ vẽ các mũi tên bằng tay và quên độ dài của mũi tên cũng có ý nghĩa cụ thể.
Haitao Du

Tôi nghĩ rằng "biplot" 3D / 2D thủ công của bạn tương ứng nhiều hơn với những gì hàm biplottạo ra với scale=0đối số.
amip nói phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.