不是编码问题,而是“我明白我在做什么吗?“问题。
对最多7个变量的数据进行PCA分析,我想要一个scree图来显示每个变量对数据方差的影响程度。
我通过使用来制作一个scree plot:
[coeff,score,latent,~,explained] = pca(X);
bar(explained)
我从文档中的理解是,输出都是排序的“列是按组件方差的降序排列的”,所以,我怎么知道哪个变量实际上占了最大的方差?比如我的数据有7个变量,那么我怎么知道它是变量3而不是变量6呢?如果它不排序,那就很明显了,但如果是降序排序,我怎么知道呢?
Matlab PCA文档
1条答案
按热度按时间xt0899hw1#
当你计算PCA时,你得到了一个新的坐标系。这个新坐标系中的每个维度都解释了一定量的输入方差,并根据该数量进行排序。
coeff(:,1)
是第一个PCA轴的方向,以输入轴表示。此轴与数据中的最大方差对齐。explained(1)
是由该轴表示的数据中总方差的分数。因此,
explained
的排序方式与coeff
的列相同,并且与它们相关。它不引用输入变量。