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


14

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


2
还可以考虑尝试利用网站上问题的可用格式,请参阅高级降价帮助。我看不到您以前的问题都没有答案,并且如果您对其进行编辑以使其更具可读性,它们将升至列表顶部并可能吸引答案。
Andy W

@Andy W优秀参考文献
conjugateprior

@Andy W:在阅读了您的优秀参考文献之后,我仍然认为R代码biplot.princomp有一个错误:加载矩阵(本征向量矩阵)在发送到biplot.princomp之前应该先换位。
露娜2012年


@Andy W:您想将您的评论放入“答案”中,以便我接受您的答案吗?太好了!非常感谢!
露娜

Answers:


9

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

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

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

没有错误。

凯文·赖特

迈克尔·格林纳克(Michael Greenacre)有一本非常出色的免费在线书籍,介绍了双峰,实践中的双峰,只需阅读第一章就可以帮助激发箭的坐标。也有一些类似的网站上其他几个问题,你可能感兴趣的,看到的R中的主成分分析二维图的解读诠释的MDS因素情节的两个例子。还可以在网站上搜索带有biplot的问题,因为还有更多潜在的兴趣(考虑到出现的问题数量,在这一点上甚至制作一个biplot标签似乎很有用)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.