【发布时间】:2013-03-24 01:28:10
【问题描述】:
我正在尝试对一些波动率数据进行 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] 则系数矩阵的第一行会变得更正常(即到处都是非零值)。
所以我的问题是:
- 我做 PCA 的方式对吗?
- PCA 是否会自动重新排列主成分,因此系数矩阵中除最后一列除 1 外全为零的第一行可能不一定代表方程中的最后一项,并且
- 如果错了,正确的做法是什么?
【问题讨论】:
-
这不是一个量化金融问题。我将它发送到 Stack Overflow。