考虑以下 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 中 biplot 的代码。关于箭头的行是:
if(var.axes)
arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[2L],
实际上负载矩阵在哪里y
,即特征向量矩阵。所以看起来第一个箭头实际上是从(0, 0)
指向(y[1, 1], y[1, 2])
。我知道我们正在尝试将高维箭头绘制到 2D 平面上。这就是我们采用y[1, ]
向量的第一个和第二个元素的原因。但是我不明白的是:
第一个特征向量方向不应该是由y[, 1]
,而不是表示的向量y[1, ]
吗?(同样,这里y
是特征向量矩阵,通过 PCA 或 的特征分解获得t(x) %*% x
。)即特征向量应该是列向量,而不是那些水平向量。
即使我们将它们绘制在 2D 平面上,我们也应该将第一个方向绘制为从(0, 0)
指向(y[1, 1], y[2, 1])
?