什么是主成分分数?

机器算法验证 主成分分析 定义
2022-02-03 22:53:59

什么是主成分分数(PC 分数、PCA 分数)?

4个回答

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

约翰、迈克和凯特在数学、科学、英语和音乐考试中的百分比如下:

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

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

现在让我们非正式地定义一个主成分。

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

  • 坐标完全相同的方式绘制两个主题。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 对改进此答案的评论。

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

PCA 为您提供的是将变量更改为 Y1、Y2、...、Yn(即相同数量的变量),它们是 X 的线性组合。例如,您可能有 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 的符号相反。

我喜欢将主成分分数视为“基本上没有意义”,直到您真正赋予它们一些意义。根据“现实”来解释 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

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

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