Considere o seguinte biplot PCA:
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)
Há um monte de setas vermelhas plotadas, o que elas significam? Eu sabia que a primeira seta marcada com "Var1" deveria apontar a direção mais variável do conjunto de dados (se os considerarmos como 2000 pontos de dados, cada um sendo um vetor do tamanho 6). Também li de algum lugar que a direção mais variável deve ser a direção do primeiro vetor eigen.
No entanto, lendo o código do biplot em R. A linha sobre as setas é:
if(var.axes)
arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L],
Onde y
está realmente a matriz de cargas, que é a matriz do vetor próprio. Parece que a 1ª seta está realmente apontando de (0, 0)
para (y[1, 1], y[1, 2])
. Entendo que estamos tentando plotar uma flecha de alta dimensão em um plano 2D. É por isso que estamos pegando o primeiro e o segundo elemento do y[1, ]
vetor. No entanto, o que eu não entendo é:
A 1ª direção do vetor próprio não deveria ser o vetor indicado por y[, 1]
, em vez de y[1, ]
? (Novamente, aqui y
está a matriz de vetor próprio, obtida por PCA ou por composição automática de t(x) %*% x
.) Ou seja, os vetores próprios devem ser vetores de coluna, não esses vetores horizontais.
Apesar de estarmos plotando-os no plano 2D, devemos desenhar a 1ª direção para (0, 0)
apontar (y[1, 1], y[2, 1])
?