用神经网络预测外汇 - 预测滞后

数据挖掘 r 神经网络 时间序列 预报
2021-09-21 16:25:09

我有一个关于使用神经网络的问题。我目前正在使用 R(神经网络包),我面临以下问题。我的测试和验证集相对于历史数据总是迟到。有没有办法纠正结果?也许我的分析有问题

  1. 我使用每日日志返回 r(t) = ln(s(t)/s(t-1))
  2. 我使用 sigmoid 函数(在我的整个集合上计算的 sigma 和 mu)标准化我的数据
  3. 我用 10 个日期训练我的神经网络,输出是这 10 个日期之后的归一化值。

我尝试添加趋势但没有改善,我观察到了 1-2 天。我的过程似乎还可以,您对此有何看法?

3个回答

改进设计的几种方法:

  1. 考虑一个不同的归一化:sigmoid 函数将衰减大的移动。很可能正是这些大的非线性动作首先吸引了你使用神经网络。为什么要删除它们?简单whitening的数据可能会更好
  2. 正如 Nima 所指出的,您的模型只能从您提供的数据中预测可知的内容。如果您仅使用历史价格拟合数据,它只会为您提供可从中预测的信息。诸如新闻事件/收益意外/假期/期权市场流动之类的事情不会被输入到您的模型中。考虑添加这些系列。
  3. 更多的历史数据。神经网络通常需要非常大的样本量,因为它们试图估计非常大的参数空间。尽管更多的数据并不总是意味着更多的信息,但这仍然可能会有所帮助。
  4. 尝试不同的网络架构。层数/层大小/不同的梯度下降算法/不同的激活函数/dropout等。

如果您仅使用 10 个输入样本进行训练,则可能很难得出任何结论。有了更多数据,您对模型预测滞后值的诊断就会更有可能。就目前而言,您的模型似乎很可能只是说最后观察到的值非常接近正确。这与真正的滞后模型不同,但如果您没有看到足够的数据,猜测是一件非常合理的事情。

我看过很多论文,基本上就是你刚才描述的。你所做的事情并没有错,但是在预测市场方面存在严重的局限性。让我给你举个例子:假设你有一些数据并且你开始预测。对于每组数据,您可以预测下一个数据点。然后你将此数据点作为输入反馈给系统,并不断地执行此操作....在大多数情况下,系统只会继续最后一个趋势并且时间序列不会中断. 这不是预测,这是线路延续......只有当系统看到真实数据的中断时,预测才会中断,这就是你所说的滞后(如果我理解你的问题的话)。你可以做的第一件事是从价格中提取一些市场指标。这真的很有帮助