0

数据集由 N 个元素和 K 个变量组成。使用 PCA 我可以减少变量的数量,但是如何从 K 个变量中检查哪些提供了最多的信息?

例如我有这样的数据集:

1 1 1 2
2 2 1 4
3 3 2 11
1 1 2 7
2 2 3 14
3 3 3 16
1 1 4 17
2 2 4 19
3 3 3 16

我知道第 1 列与第 2 列相同,第 4 列由关系确定:2*1st+5*3rd-5。因此,第 1 列和第 3 列提供的信息最多,其余列不提供任何附加信息。但是如何使用 PCA 计算呢?

4

1 回答 1

2

对于您的示例:

           PC1         PC2           PC3           PC4
[1,] 0.3516359 -0.79142416  2.497231e-17 -1.299998e-16
[2,] 0.3516359 -0.79142416  1.713028e-16  1.168541e-16
[3,] 1.0831644  0.32331520  4.906878e-16 -3.286408e-17
[4,] 6.1190936  0.03372767 -9.813756e-17  6.572817e-18

主成分是协方差矩阵的 sqrt(Eigenvalues) x 特征向量(这些保证是实数和正交的,因为 Cov 是对称正半正定的)。

您可以在示例中看到两个因素足以解释舍入公差内的所有变量(即协方差矩阵的“等级”为 2),因为 PC3 和 PC4 几乎为零。

这有效地旋转到将轴与隐藏变量对齐的向量空间。要谈论原始问题中的列,您需要映射回去。例如,您可以查看最大的项目;在这里,我们会说 PC1 主要与“Col 4”相关联,但这是任意的,PC2 在“Col 1”和“Col 2”上具有相同的权重——任何一个选择看起来都一样好。请记住,相关性并不意味着因果关系。

于 2013-05-27T14:14:24.073 回答