解释主成分分析输出

机器算法验证 主成分分析 matlab 解释 回归系数
2022-04-14 04:52:19

如果我的 PCA 中有 50 个变量,我会得到一个特征向量和特征值矩阵(我正在使用 MATLAB 函数eig)。

我已将特征值归一化为总和为 1,并且它们已按幅度排序返回。我只想通过查看特征向量矩阵来了解如何将它们与变量匹配。我知道最大的特征向量系数对应于最大的特征值,但那是最大的绝对值,还是它总是最大的正值,所以最接近正无穷大?

从下图中,您可以在命令窗口中看到归一化的特征值(64.39%、15.01% ...),并且在顶部的窗口中,有一部分对应的特征向量矩阵。您可以看到有正值和负值。我希望这有助于澄清我的问题。

Matlab的片段

这是来自 MATLAB 网站的示例。这 4 个列向量的主成分是哪一个?

Example

load hald
covx = cov(ingredients);
[COEFF,latent,explained] = pcacov(covx)
COEFF =
  0.0678 -0.6460  0.5673 -0.5062
  0.6785 -0.0200 -0.5440 -0.4933
 -0.0290  0.7553  0.4036 -0.5156
 -0.7309 -0.1085 -0.4684 -0.4844

latent =
  517.7969
  67.4964
  12.4054
  0.2372

explained =
  86.5974
  11.2882
  2.0747
  0.0397
1个回答

您似乎假设最大的特征值必然可以与特征向量中的最大系数配对。那是错误的。

这个问题显然超越了软件选择。这是一个相当愚蠢的 PCA,它使用 Stata 的汽车数据集对汽车尺寸进行五种测量。我使用相关矩阵作为起点,这是考虑到完全不同的测量单位的唯一明智选择。

. pca headroom trunk weight length displacement

Principal components/correlation                  Number of obs    =        74
                                                  Number of comp.  =         5
                                                  Trace            =         5
Rotation: (unrotated = principal)                 Rho              =    1.0000

--------------------------------------------------------------------------
   Component |   Eigenvalue   Difference         Proportion   Cumulative
-------------+------------------------------------------------------------
       Comp1 |      3.76201        3.026             0.7524       0.7524
       Comp2 |      .736006      .427915             0.1472       0.8996
       Comp3 |      .308091      .155465             0.0616       0.9612
       Comp4 |      .152627      .111357             0.0305       0.9917
       Comp5 |     .0412693            .             0.0083       1.0000
--------------------------------------------------------------------------

Principal components (eigenvectors) 

----------------------------------------------------------------
    Variable |    Comp1     Comp2     Comp3     Comp4     Comp5 
-------------+--------------------------------------------------
    headroom |   0.3587    0.7640    0.5224   -0.1209    0.0130 
       trunk |   0.4334    0.3665   -0.7676    0.2914    0.0612 
      weight |   0.4842   -0.3329    0.0737   -0.2669    0.7603 
      length |   0.4863   -0.2372   -0.1050   -0.5745   -0.6051 
displacement |   0.4610   -0.3390    0.3484    0.7065   -0.2279 
----------------------------------------------------------------

(输出被截断。)

第一个组成部分指出了这样一个事实,即所有变量都是大小的度量,它们具有很好的相关性。因此,对于第一个近似值,系数是相等的;当所有变量都挂在一起时,这是可以预料的。其余成分实际上拾取了每个原始变量的特殊贡献。这不是不可避免的,但对于这个例子来说很简单。但是,就您的观点而言,您可以看到最大的系数,例如绝对值高于 0.7 的系数,与组件 2 到 5 相关联。没有什么可以阻止最大系数与最后一个组件相关联。

(更新)特征向量提供信息,但将分量本身计算为新变量然后查看它们与原始变量的相关性也很有帮助。他们来了:

                 pc1      pc2      pc3      pc4      pc5
    headroom   0.6958   0.6554   0.2900  -0.0472   0.0026
       trunk   0.8405   0.3144  -0.4261   0.1138   0.0124
      weight   0.9392  -0.2856   0.0409  -0.1043   0.1545
      length   0.9432  -0.2035  -0.0583  -0.2245  -0.1229
displacement   0.8942  -0.2909   0.1934   0.2760  -0.0463

trunk是与 最密切相关pc3但负相关的变量。关于为什么会发生这种情况的故事将取决于查看数据和 PC。我不太关心这里的示例,但这将是一个好习惯。

虽然我做了一些事先考虑的例子,它适合你的问题,而且它是基于真实数据的,但它也是有益的:解释 PC 可能并不比解释更直接的东西(如散点图和相关性)容易. 然而,并不是每个 PCA 应用程序都依赖于将 PC 解释为具有实质性意义的能力,并且许多文献警告在任何情况下都不要这样做。出于某些目的,重点是对数据中的信息进行机械重新排序。