我了解了 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 是两组变量,测量该组内相同的事物。对此的任何建议将不胜感激。
我了解了 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 是两组变量,测量该组内相同的事物。对此的任何建议将不胜感激。
首先,让我们创建一些行为如您所描述的数据 - 测量类似事物的四个变量,以及测量其他事物的两个因素。
>> 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, :)')