数据集由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我知道第一列和第二列是一样的,第四列是由关系决定的:2*1+5*3-5。因此,第1列和第3列提供了最多的信息,其余的没有提供任何额外的信息。但是如何使用PCA来计算呢?
发布于 2013-05-27 22:14:24
对于您的示例:
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(特征值)x特征向量(由于Cov是对称的半正定的,因此这些特征向量是保证实数和正交的)。
您可以在您的示例中看到,两个因素足以解释舍入容差内的所有变量(即协方差矩阵的“秩”为2),因为PC3和PC4几乎为零。
这将有效地旋转到将轴与隐藏变量对齐的向量空间。要讨论原始问题中的列,需要映射回原来的问题。例如,你可以查看最大的条目;在这里,我们会说PC1主要链接到‘COL4’,但这是任意的,PC2对‘COL1’和‘COL2’具有相同的权重--这两个选项看起来都一样好。记住,相关性并不意味着因果关系。
https://stackoverflow.com/questions/16774005
复制相似问题