Matlab中的PCA - 是否安排了主要组件?

时间:2013-03-24 01:28:10

标签: pca matlab

我正在尝试对某些波动率数据进行PCA,让我们说我可以提出以下模型:

volatility = bata0 + beta1*x + beta2* x^2

其中x是一些观察结果,例如货币等等。 所以在Matlab中,我所做的就是说Y=[ones x x^2]然后做pca(Y) 由于某种原因,我的系数矩阵中的第一行总是类似于0 0 1,即除了最后一列之外的其他地方都是0,并且无论我如何,atent的输出总是显示第一行中的最高值改变模型。

显然,这不可能是每个单一模型中的最后一个项被等式中的最后一项很好地解释的情况。如果我删除Y中的常数项(即Y = [x x ^ 2],那么系数矩阵的第一行变得更正常(即,到处都是非零值)。

所以我的问题是:

  1. 是我做PCA的方式吗?
  2. PCA是否会自动重新排列主成分,因此系数矩阵中的第一行除了最后一列的1之外的所有零可能不一定代表等式中的最后一项
  3. 如果错了,这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

来自Matlab的princomp文档:

  

COEFF = princomp(X)执行主成分分析(PCA)   n-by-p数据矩阵X,并返回主成分   系数,也称为负载。 X行对应   观察,列到变量。 COEFF是一个p-by-p矩阵   包含一个主成分的系数的列。的的   列按顺序减少组件差异。