Hãy xem xét biplot PCA sau đây:
library(mvtnorm)
set.seed(1)
x <- rmvnorm(2000, rep(0, 6), diag(c(5, rep(1,5))))
x <- scale(x, center=T, scale=F)
pc <- princomp(x)
biplot(pc)
Có một loạt các mũi tên màu đỏ được vẽ, chúng có ý nghĩa gì? Tôi biết rằng mũi tên đầu tiên được gắn nhãn "Var1" sẽ chỉ hướng khác nhau nhất của tập dữ liệu (nếu chúng ta nghĩ chúng là 2000 điểm dữ liệu, mỗi điểm là một vectơ kích thước 6). Tôi cũng đọc từ đâu đó, hướng khác nhau nhất phải là hướng của vectơ thứ nhất.
Tuy nhiên, đọc mã của biplot trong R. Dòng về các mũi tên là:
if(var.axes)
arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L],
Trường hợp y
thực sự là ma trận tải, đó là ma trận eigenvector. Vì vậy, có vẻ như mũi tên đầu tiên thực sự đang chỉ từ (0, 0)
đến (y[1, 1], y[1, 2])
. Tôi hiểu rằng chúng ta đang cố gắng vẽ một mũi tên chiều cao lên mặt phẳng 2D. Đó là lý do tại sao chúng ta lấy phần tử thứ 1 và thứ 2 của y[1, ]
vectơ. Tuy nhiên, điều tôi không hiểu là:
Không phải hướng eigenvector đầu tiên là vector được biểu thị bởi y[, 1]
, thay vì y[1, ]
? (Một lần nữa, đây y
là ma trận eigenvector, thu được bởi PCA hoặc bằng cách xuất tinh của t(x) %*% x
.) Tức là các hàm riêng phải là các vectơ cột, không phải là các vectơ ngang.
Mặc dù chúng ta đang âm mưu chúng trên mặt phẳng 2D, chúng ta nên vẽ theo hướng 1 là từ (0, 0)
trỏ đến (y[1, 1], y[2, 1])
?