将箭头定位在PCA双线图上


18

我正在寻找在JavaScript中实现主成分分析(PCA)的双图。我的问题是,如何从数据矩阵的奇异矢量分解(SVD)的输出确定箭头的坐标?U,V,D

这是R生成的示例双图:

biplot(prcomp(iris[,1:4]))

Iris数据集的Biplot

我尝试在biplot上Wikipedia文章中查找它,但它不是很有用。或正确。不知道哪个。


3
Biplot是覆盖散布图,显示了U值和V值。或UD和V。或U和VD'。或UD和VD'。就PCA而言,UD称为原始主成分评分,而VD'称为可变成分加载。
ttnphns

2
还要注意,坐标的比例取决于最初对数据进行标准化的方式。例如,在PCA中,通常将数据除以sqrt(r)或sqrt(r-1)[r是行数]。但在字中的一个的狭义真“双标图”通常由SQRT分割数据(RC)[c是列数],然后脱标准化所获得的U和V
ttnphns

为什么必须使用缩放数据?1n1
ktdrv

1
@ttnphns:在上面您发表了评论之后,我为这个问题写了一个答案,旨在提供PCA biplot标准化概述。但是,我对这个主题的了解仅是理论上的,我相信您比我有更多的双翼飞机实践经验。因此,对于任何意见,我将不胜感激。
变形虫说恢复莫妮卡

1
实现事物的一个原因@Aleksandr,是确切地知道正在做什么。如您所见,弄清楚跑步时到底发生了什么并不容易biplot()。另外,为什么还要花R-JS集成一些只需要几行代码的内容。
变形虫说恢复莫妮卡

Answers:


40

产生PCA双图的方法有很多,因此,您的问题没有唯一的答案。这是一个简短的概述。

我们假设数据矩阵在行中有数据点并居中(即列均值为零)。目前,我们假定它是标准化的,即,我们在协方差矩阵(而不是相关矩阵)上考虑PCA。PCA等于奇异值分解有关详细信息请参见我的回答:SVD与PCA之间的关系。如何使用SVD执行PCA?Xn

X=USV,

在PCA双线图中,将两个第一主成分绘制为散点图,即第一列相对于其第二列。但是规范化可以有所不同。例如,可以使用:U

  1. 列:这些是缩放为单位平方和的主成分;U
  2. 列:这些是标准化的主成分(单位方差);n1U
  3. 列:这些是“原始”主成分(在主方向上的投影)。US

此外,原始变量绘制为箭头。即第个箭头端点的坐标由的第一列和第二列中的第个值给出。但是同样,可以选择不同的规范化,例如:(x,y)iiV

  1. 列:我不知道这里的解释是什么。VS
  2. 列:这些载荷;VS/n1
  3. 列:这些是主轴(又称主轴方向,又称特征向量)。V

这是Fisher Iris数据集的所有内容:

Fisher Iris biplots,PCA的协方差

将上方的任何子图与下方的任何子图组合将构成可能的归一化。但是根据1971年加百列(Gabriel)中引入的Biplot的原始定义,矩阵的Biplot图形显示应用于主成分分析(顺便说一下,本文有2k引用),用于Biplot的矩阵在相乘时应该近似(这就是重点)。因此,“适当的双图”可以使用和。因此,这中只有3是“适当的双线图”:即,上面的任何子图与下面的一个子图的组合。9XUSαβVS(1α)/β9

[无论使用哪种组合,都可能需要将箭头按某个恒定常数进行缩放,以使箭头和数据点大致以相同的比例出现。]

对于箭头,使用负载,具有很大的好处,因为它们具有有用的解释(有关负载,另请参见此处)。加载箭头的长度近似于原始变量的标准偏差(平方长度近似于方差),任意两个箭头之间的标量积近似于它们之间的协方差,箭头之间的角度的余弦近似于原始变量之间的相关性。要制作“适当的双图”,应选择(即标准化PC)作为数据点。Gabriel(1971)将此称为“ PCA双图”,并写道VS/n1Un1

这个[特殊选择]很可能在解释多元观测矩阵时提供最有用的图形帮助,当然,前提是这些可以在第二级得到足够的近似。

使用和可以很好地解释:箭头是原始基矢量在PC平面上的投影,请参见@ hxd1011的插图USV

甚至可以选择将原始PC与负载一起绘制。这是一个“不合适的双目图”,但是例如由@vqv在我见过的最优雅的双目图上完成:可视化一百万个PCA版本 -它显示了葡萄酒数据集的PCA。US

您发布的图形(R biplot函数的默认结果)是带有和的“适当双图” 。该功能可缩放两个子图,以使其跨越相同区域。不幸的是,该函数做出了一个奇怪的选择,将所有箭头缩小倍,并在箭头终点应显示的位置显示文本标签。(另外,不正确的,事实上结束了绘制的分数获得缩放平方和的替代,见@AntoniParellada本次详查:箭头R中潜在的PCA双标图变量。 )UVSbiplot0.8biplotn/(n1)1

相关矩阵上的PCA

如果我们进一步假设数据矩阵已经标准化,因此列标准偏差都等于,那么我们将在相关矩阵上执行PCA。这是同一个人的样子:X1

Fisher Iris biplots,PCA的相关性

这里的负载更具吸引力,因为(除了上述特性之外)它们还提供原始变量和PC之间的准确(而非近似)相关系数。相关性均小于并且加载箭头必须位于半径的“相关性圆”内,有时也会在双图上绘制(我在上面的对应子图上绘制了它)。请注意,@ vqv(上面链接)的双标图是针对相关矩阵上的PCA完成的,并且还带有相关圆。1R=1


进一步阅读:


1
+6,这值得3次以上投票。
gung-恢复莫妮卡

3
刚刚注意到?ca :: plot.ca很好地概述了各种可能的规范化:它们区分行主体(形式biplot =行在主体坐标中,cols在标准坐标中),colPrincipal(协方差biplot =在主体坐标中的cols,行)在标准坐标中),对称双点图(行和列按比例缩放为具有等于奇异值(特征值的平方根)的方差),rowgab和colgab(主坐标中的行和标准坐标中的cols乘以相应点的质量或反之亦然)以及rowgreen和colgreen(作为rowgab和colgab,但具有sqrt(
mass

2
这些最后一个也称为“贡献双份”。M. Greenacre的著作“实践中的Biplots”也对这一切进行了很好的概述。这些缩放方式适用于所有基于SVD的方法(即CA双精度,PCA双精度,LDA双精度等);有关其工作方式的示例,请参见源代码ca ::: plot.ca和“ map”自变量
Tom Wenseleers

1
@Antoni您的意思是希望每个图形都指向其自身的超链接,例如,第一个图形应该是指向i.stack.imgur.com/6ddZg.png的超链接?请随时进行编辑,以后我总是可以修复我不喜欢的东西:)关于,存在一些困惑:如何将单位SS与单位方差组合?是一个或另一个...我不确定您的意思。n1
变形虫说恢复莫妮卡

1
我编辑了@AntoniParellada,并插入了几个链接。
变形虫说恢复莫妮卡
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.