Considérez le biplot PCA suivant:
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)
Il y a un tas de flèches rouges tracées, que signifient-elles? Je savais que la première flèche étiquetée "Var1" devrait pointer dans la direction la plus variable de l'ensemble de données (si nous les considérons comme 2000 points de données, chacun étant un vecteur de taille 6). J'ai aussi lu quelque part, la direction la plus variable devrait être la direction du 1er vecteur propre.
Cependant, la lecture du code de biplot dans R. La ligne sur les flèches est:
if(var.axes)
arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L],
Où y
est réellement la matrice des chargements, qui est la matrice des vecteurs propres. Il ressemble la 1ère flèche est en fait de pointer (0, 0)
vers (y[1, 1], y[1, 2])
. Je comprends que nous essayons de tracer une flèche de haute dimension sur un plan 2D. C'est pourquoi nous prenons le 1er et le 2e élément du y[1, ]
vecteur. Mais ce que je ne comprends pas, c'est:
La 1ère direction de vecteur propre ne devrait-elle pas être le vecteur noté y[, 1]
, au lieu de y[1, ]
? (Encore une fois, voici y
la matrice des vecteurs propres, obtenue par PCA ou par composition des eigendes de t(x) %*% x
.) C'est-à-dire que les vecteurs propres doivent être des vecteurs de colonne, pas ces vecteurs horizontaux.
Même si nous les traçons sur un plan 2D, nous devons tracer la 1ère direction à partir de laquelle (0, 0)
pointer (y[1, 1], y[2, 1])
?