我了解PCA的工作原理以及如何在Matlab中实现它,但我不知道哪些变量对主成分的贡献最大。
我的问题是,假设我有变量A,B,C,D,E,F的数据集。我不知道,变量A,B,C,E几乎相同,变量D,F都衡量不同的东西。来自集合(A,B,C,E)和集合(D,F)的变量之间几乎没有相关性。
PCA告诉我,有两个主要的主要组成部分,我知道该怎么做。我不知道如何识别A,B,C,E和D,F是测量该组内相同事物的两组变量。对此有任何建议将不胜感激。
答案 0 :(得分:3)
首先让我们创建一些行为与你描述的一样的数据 - 四个衡量类似东西的变量,以及两个衡量其他东西的因素。
>> x = randn(100, 1);
>> y = randn(100, 1);
>> v = [[x,x,x,x] + 0.1*randn(100,4), [y,y] + 0.1*randn(100,2)];
现在通过调用pca
>> [coeff, scores, latent, tsq, explained] = pca(v);
通过查看变量latent
,我们可以看到前两个主要成分是显性的
>> latent
latent =
5.4821
2.0491
0.0120
0.0106
0.0089
0.0073
现在,通过查看coeff
的前两行(其中包含前两个因子中六个变量中每个变量的加载量),很明显变量1-4会对第一个因子造成很大影响(蓝色)和变量5-6严重加载第二个因子(红色)。
>> bar(coeff(1:2, :)')