Рассмотрим следующий биплот 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)
Есть куча красных стрелок, что они означают? Я знал, что первая стрелка, помеченная «Var1», должна указывать самое изменяющееся направление набора данных (если мы считаем их 2000 точками данных, каждая из которых представляет собой вектор размером 6). Я также где-то читал, что самым изменяющимся направлением должно быть направление первого собственного вектора.
Однако, читая код биплота в R. Строка о стрелках:
if(var.axes)
arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L],
Где y
на самом деле матрица нагрузок, которая является матрицей собственных векторов. Похоже, что 1-я стрелка действительно указывает (0, 0)
на (y[1, 1], y[1, 2])
. Я понимаю, что мы пытаемся нанести стрелку большого размера на плоскость 2D. Вот почему мы берем 1-й и 2-й элемент y[1, ]
вектора. Однако то, что я не понимаю, это:
Не должно ли направление 1-го собственного вектора быть вектором, обозначенным y[, 1]
вместо y[1, ]
? (Опять же, здесь y
представлена матрица собственных векторов, полученная с помощью PCA или путем разложения по собственным значениям t(x) %*% x
.), Т.е. собственные векторы должны быть векторами столбцов, а не этими горизонтальными векторами.
Даже при том, что мы наносим их на 2D-плоскость, мы должны нарисовать 1-е направление от (0, 0)
направления на (y[1, 1], y[2, 1])
?