C++ 应用于单个时间序列的独立分量分析

C++ 应用于单个时间序列的独立分量分析,c++,math,C++,Math,首先,我不是金融工程大师。我做COBOL程序员已经很多年了,虽然我有点生疏了C++,但我可以在复习一点之后做得好。 我从事期货交易已经有几年了,我的任务是在单一的时间序列数据流(期货价格、股票价格)上实现ICA ICA算法是it++软件包fastICA的一部分,但是,由于ICA的工作前提是观测值的数量至少与源的数量相同,因此有必要对时间序列数据执行一些预处理 从我发现的情况来看,预处理包括构造一个矩阵Y,该矩阵Y在第1列中包含原始时间序列,在第2列中包含时间序列的滞后1移位版本,等等 eg.

首先,我不是金融工程大师。我做COBOL程序员已经很多年了,虽然我有点生疏了C++,但我可以在复习一点之后做得好。

我从事期货交易已经有几年了,我的任务是在单一的时间序列数据流(期货价格、股票价格)上实现ICA

ICA算法是it++软件包fastICA的一部分,但是,由于ICA的工作前提是观测值的数量至少与源的数量相同,因此有必要对时间序列数据执行一些预处理

从我发现的情况来看,预处理包括构造一个矩阵Y,该矩阵Y在第1列中包含原始时间序列,在第2列中包含时间序列的滞后1移位版本,等等

eg.

Y= 1.0135518 - 0.7113242 - 0.3906069 1.565203
- 0.7113242 - 0.3906069 1.565203 0.0439317
- 0.3906069 1.565203 0.0439317 - 1.1656093
etc.
我的问题是:

在执行ICA后,恢复时间序列数据中的独立源需要哪些步骤

如何从最重要到最不重要排序IC

如果有人能回答这些问题,或者为我指出一本合适的书或文章的方向,我将不胜感激。这本书或这篇文章最好是比较实用的


您可以参考Pierre Comon和Christian Jutten的《盲源分离手册:独立分量分析和应用》。

通常ICA返回一个分离矩阵M。因此,要找到源,您需要将M乘以原始测量矩阵。按重要性排序ICA分量仅取决于您认为对您有意义的内容,例如方差或其他一些统计特性。ICA本身不提供任何自然排序机制。

恢复是什么意思?如果您正在将源代码输入ICA,为什么不保留它们的副本呢?至于排序,如果这只是基于值,为什么不为矩阵使用内置的排序函数呢?@Boris:我刚刚重新格式化了它;如果格式是拙劣的,我承担责任,并将清理它,如果你让我知道什么看起来是错的,它似乎对我来说是好的