什么是主成分分数?


Answers:


66

首先,让我们定义一个分数。

约翰,迈克和凯特在数学,科学,英语和音乐方面的考试分数如下:

      Maths    Science    English    Music    
John  80        85          60       55  
Mike  90        85          70       45
Kate  95        80          40       50

在这种情况下,总共有12个分数。每个分数代表每个人在特定主题下的考试结果。因此,在这种情况下,分数只是行和列相交位置的表示。

现在,让我们非正式地定义一个主组件。

在上表中,您可以轻松地在2D图形中绘制数据吗?不,因为有四个主题(这意味着四个变量:数学,科学,英语和音乐),即:

  • 您可以以与在2D图形中使用和坐标完全相同的方式绘制两个对象。ÿxy
  • 您甚至可以以与在3D图形中绘制,和相同的方式来绘制三个对象(尽管这通常是不好的做法,因为在3D数据的2D表示中不可避免地会出现某些失真)。Ÿ žxyz

但是,您将如何绘制4个主题?

目前,我们有四个变量,每个变量仅代表一个主题。因此,解决此问题的方法可能是将主题以某种方式组合为可能的两个新变量,然后我们可以对其进行绘制。这称为多维缩放

主成分分析是多维缩放的一种形式。这是变量到较低维空间的线性变换,该维保留了有关变量的最大信息量。例如,这意味着我们可以查看每个学生可能更适合的学科类型。

因此,主要成分是线性转换后原始变量的组合。在R中,这是:

DF<-data.frame(Maths=c(80, 90, 95), Science=c(85, 85, 80), English=c(60, 70, 40), Music=c(55, 45, 50))
prcomp(DF, scale = FALSE)

它将为您提供类似的信息(仅出于简单起见,前两个主要组件):

                PC1         PC2
Maths    0.27795606  0.76772853 
Science -0.17428077 -0.08162874 
English -0.94200929  0.19632732 
Music    0.07060547 -0.60447104 

这里的第一列示出了定义主分量#1的线性组合的系数,第二列示出了主分量#2的线性组合的系数。

那么什么是主成分分数?

这是这篇文章结尾处表格的得分(请参阅下文)。

来自R的上述输出意味着我们现在可以按照以下方式在2D图形中绘制每个人在所有主题上的得分。首先,我们需要将减数列表示的原始变量居中:

      Maths    Science    English    Music    
John  -8.33       1.66       3.33       5  
Mike   1.66       1.66      13.33      -5
Kate   6.66       -3.33    -16.66       0

然后形成线性组合以获得PC1和PC2 分数

      x                                                    y
John -0.28*8.33 + -0.17*1.66 + -0.94*3.33  + 0.07*5   -0.77*8.33 + -0.08*1.66 + 0.19*3.33   + -0.60*5 
Mike 0.28*1.66  + -0.17*1.66 + -0.94*13.33 + -0.07*5   0.77*1.66 + -0.08*1.66 + 0.19*13.33  + -0.60*5
Kate 0.28*6.66  + 0.17*3.33  + 0.94*16.66  + 0.07*0    0.77*6.66 +  0.08*3.33 + -0.19*16.66 + -0.60*0

简化为:

        x       y
John   -5.39   -8.90
Mike  -12.74    6.78
Kate   18.13    2.12

上表中有六个主要成分分数。现在,您可以在2D图形中绘制分数,以了解每个学生也许更适合的科目类型。

通过输入,可以在R中获得相同的输出prcomp(DF, scale = FALSE)$x

编辑1:嗯,我大概可以想出一个更好的例子,它的意义比我在这里说的要多,但我希望您能想到。

编辑2:感谢@drpaulbrewer在改进此答案方面的评论。


10
值得称赞的努力-但是-PC1和PC2都不告诉您谁在所有学科上都表现最好。为此,PC学科的系数都必须是积极的。PC1在数学和音乐方面的权重为正,而在科学和英语方面的权重为负。PC2在数学和英语方面的权重为正,而在科学和音乐方面的权重为负。PC告诉您的是数据集中最大的差异所在。因此,通过用PC1中的系数对科目进行加权,然后使用该分数对学生进行评分,您可以获得最大的方差或学生行为分布。它可以分类类型,但不能分类性能。
保罗2010年

+1好评论,欢呼。您当然是正确的,我应该写得更好一些,现在已经编辑了违规行以使我希望清楚。
托尼·布雷

您可以标准化var,从而计算总和,以便查看谁是最好的,或者您愿意的话,在R中:apply(dtf, 1, function(x) sum(scale(x)))
aL3xa 2010年

2
@JohnPrior四个变量(列)是数学,科学,英语和音乐,并且行代表个人。“主题”一词有时会变得模棱两可,因为五年前我选择了一个糟糕的例子作为答案。
Tony Breyal 2015年

1
@Tony,我继续进行操作,并在计算分数之前编辑了您的答案以使变量居中。现在,计算出的分数适合什么prcomp输出。之前没有。
变形虫

23

当处理多元数据时,主成分分析(PCA)是一种分析方差的流行方法。您拥有随机变量X1,X2,... Xn,它们都以不同程度(正或负)相关,并且您想更好地了解正在发生的事情。PCA可以提供帮助。

PCA给您的是将变量更改为Y1,Y2,...,Yn(即相同数量的变量),它们是Xs的线性组合。例如,您可能具有Y1 = 2.1 X1-1.76 X2 + 0.2 X3 ...

Ys是一个很好的属性,每个属性之间的相关性为零。更好的是,您可以按递减的顺序获得它们。因此,Y1“解释”了原始变量方差的很大一部分,Y2则少了很多,依此类推。通常在前几个Y之后,变量会变得毫无意义。任何Xi的PCA分数就是每个Y的系数。在我之前的示例中,第一个主成分(Y1)中X2的得分为1.76。

PCA做到这一点的方法是通过计算协方差矩阵的特征向量。

举一个具体的例子,假设X1,... X10是1年,2年,...年,10年期美国国债收益率在一段时间内的变化。当您计算PCA时,通常会发现第一个成分具有相同符号和大约相同符号的每个键的分数。这告诉您,债券收益率的大部分差异来自所有以相同方式移动的东西:“平行移动”向上或向下。第二个分量通常显示曲线的“变陡”和“变平”,并且对X1和X10具有相反的符号。


较高的Y值如何“解释”较大的方差?PCA是如何计算的?如果是这样,我想我还有一个问题要发表;)
vrish88

1
没错-如果PC的方差为3.5,则PC会“解释”初始集合中3.5个变量的变异性。由于PC是可加的,PC1 > PC2 > ... > PCn并且它们的方差之和等于初始变量集的方差之和,因为PCA是在协方差矩阵上计算的,即变量是标准化的(SD = 1,VAR = 1)。
aL3xa 2010年

6

假设您在3D中有N个点云(可以在100x3阵列中列出)。然后,主成分分析(PCA)将任意定向的椭球拟合到数据中。主成分分数是椭球直径的长度。

在直径较大的方向上,数据变化很大,而在直径较小的方向上,数据变化很小。如果要将Nd数据投影到二维散点图中,请沿着两个最大的主分量进行绘制,因为使用这种方法,您可以显示数据中的大部分方差。


会有什么好处,还是可以将它们绘制在3维散点图上?
vrish88

6

我喜欢认为主成分分数“基本上没有意义”,直到您实际赋予它们一定的意义为止。用“真实性”来解释PC分数是一件棘手的事情-确实没有唯一的方法可以做到这一点。这取决于您对进入PCA的特定变量的了解,以及它们在解释方面如何相互关联。

就数学而言,我想将PC分数解释为相对于主要成分轴的每个点的坐标。因此,在原始变量中,您有,它是p维空间中的“点”。在这些坐标中,这意味着沿轴的点是距原点的距离。现在,PCA基本上是描述此“点”的另一种方式-相对于其主成分轴,而不是“原始变量”轴。因此,我们有,其中是xi =(x1i,x2i,,xpi)x1x1izi =(z1i,z2i,,zpi)=A(xix¯)Ap×p主分量权重的矩阵(即每一行的特征向量),是数据的“质心”(或数据点的均值矢量)。x¯

因此,您可以将特征向量视为描述PC的“直线”在哪里。然后,主成分得分描述相对于数据的“中心”,每个数据点在每个直线上的位置。您还可以将PC分数与权重/特征向量结合起来,视为每个原始数据点的一系列等级1预测,其形式为:

x^ji(k)=x¯j+zkiAkj

其中是对第个观察的预测,对于使用第个PC的第个变量的预测。x^ji(k)ijk


4

数据矩阵的主要成分是其方差-协方差矩阵的特征向量-特征值对。本质上,它们是方差的与解相关的部分。每个对象都是用于观察的变量的线性组合-假设您对一堆对象分别进行w,x,y,z的测量。您的第一台PC可能像

0.5w + 4x + 5y-1.5z

这里的载荷(特征向量)为(0.5、4、5,-1.5)。当您替换观察值(w,x,y,z)并计算总和时,每个观察值的得分(特征值)就是结果值。

当您将事物投影到它们的主要成分上(例如,用于离群值检测)时,这非常方便,因为您就像在任何其他数据上一样在每个分数上绘制分数。如果许多差异相关(在前几台PC中为==),则这可以揭示有关数据的很多信息。


只是为了清楚起见,当您说“假设您在一堆主题中分别测量w,x,y,z”时,您不是在指上述@TonyBreyal答案中的“主题”吗?您使用的“主题”一词是“观测” /“记录” /“数据行”的同义词吗?
瑞安·蔡斯

4

令索引行,而索引列。假设您线性化变量(列)的组合:i=1,,Nj=1,,M

Zi,1=ci,1Yi,1+ci,2Yi,2+...+ci,MYi,M

上面的公式基本上说是将行元素与特定值(负载)相乘,然后按列求和。结果值(值乘以载荷)为分数。ÿcY

主成分(PC)是线性组合)(按列的值称为得分)。本质上,PC应该呈现出变量(列)的最重要特征。因此,您可以提取与变量数量相同(或更少)的PC。Z1=(Z1,1,...,ZN,1

PCA上R的输出(一个伪造的示例)看起来像这样。PC1,PC2 ...是主要组件1、2 ...下面的示例仅显示前8个主要组件(共17个)。您还可以从PCA中提取其他元素,例如加载和得分。

Importance of components:
                          PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8
Standard deviation     1.0889 1.0642 1.0550 1.0475 1.0387 1.0277 1.0169 1.0105
Proportion of Variance 0.0697 0.0666 0.0655 0.0645 0.0635 0.0621 0.0608 0.0601
Cumulative Proportion  0.0697 0.1364 0.2018 0.2664 0.3298 0.3920 0.4528 0.5129

1
抱歉,什么是荷载(公式中的c),如何确定它们?
vrish88

@ vrish88我相信c是特征向量的“负载”。我的理解是,这些实质上只是您要赋予每个变量的权重。蒂姆在回答中很好地解释了这一点。
瑞安·蔡斯

3

主成分分数是通过主成分分析(PCA)获得的一组分数。在PCA中,分析了一组分数之间的关系,从而创建了相等数量的新“虚构”变量(又称主成分)。这些新的虚数变量中的第一个与所有原始变量组最大相关。下一个的相关性较低,以此类推,直到您使用所有主成分得分来预测初始组中的任何给定变量,您都可以解释其所有方差。PCA进行的方式很复杂,并且有一定的限制。其中的一个限制是任意两个主成分(即虚数变量)之间的相关性为零;因此它没有

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.