PCA 双图中的箭头是什么意思?

机器算法验证 r 主成分分析 线性代数 双标图
2022-03-09 22:28:50

考虑以下 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])?

1个回答

好吧,似乎应该给予凯文·赖特(Kevin Wright)大部分功劳来帮助解释混乱(来自R-help 邮件列表);

箭头未指向数据变化最大的方向。主成分指向数据变化最大的方向。但是您不是在原始比例上绘制数据,而是在旋转比例上绘制数据,因此水平轴是数据变化最大的方向。

箭头指向变量的方向,如投影到双标图的二维平面中。

没有错误。

凯文·赖特

Michael Greenacre 有一本非常优秀的关于双标图的免费在线书籍,Biplots in Practice,只需阅读第一章就可以帮助激发箭头坐标的来源。该站点上还有其他几个类似的问题,您可能感兴趣,请参阅R主成分分析中的双图解释和 MDS 因子图的解释两个示例。还可以在网站上搜索带有biplot的问题,因为还有一些潜在的兴趣(考虑到它出现的问题数量,此时甚至制作 biplot 标签似乎很有用)。