LSTM预测如何合并多个自相关

时间:2018-08-08 00:25:23

标签: keras time-series lstm prediction stat

我正在从事一个旨在预测高度自相关时间序列的项目。 LSTM对我而言似乎非常理想。但是,没有人知道如何将多个大型自相关合并到预测网络中吗?即存在非常强的年度相关性和季节性相关性;如何将这些信息包含到LSTM网络中?

衷心感谢

1 个答案:

答案 0 :(得分:0)

如果存在自相关,则相关为线性(不是非线性的),因为常见的自相关测试用于线性相关。默认情况下,任何LSTM都能够捕获此线性相关性,无论时间序列中有多少线性相关性,LSTM都会捕获它。问题可能是内存的长度,LSTM的内存在200到500个时间步(https://machinelearningmastery.com/handle-long-sequences-long-short-term-memory-recurrent-neural-networks/)之间,因此,如果长期线性相关在时间序列中的位置比该范围更大,则LSTM不会之所以能够捕获,是因为它缺少内存(不是物理计算机内存,而是LSTM结构中的内存)

因此,只需在keras中构建LSTM模型,并对其进行预测, 正如Upasana Mittal在他的评论中所说,cf http://www.business-science.io/timeseries-analysis/2018/04/18/keras-lstm-sunspots-time-series-prediction.html


更新了答案,因为注释中没有足够的空间。在http://www.business-science.io/timeseries-analysis/2018/04/18/keras-lstm-sunspots-time-series-prediction.html中,使用了滞后时间序列来确定ACF,这是客观的,否则将无法确定ACF:

  

首先,我们需要查看自相关函数(ACF),即   滞后版本中感兴趣的时间序列之间的相关性   本身。 stats库中的acf()函数返回ACF   每个滞后的值作为图。但是,我们希望获得ACF   值作为数据,以便我们可以调查基础数据。为此,   我们将创建一个自定义函数tidy_acf(),以返回ACF值   整洁的小标题。

没有使用特别滞后的时间序列作为输入,也没有使用系统的历史记录或过去的系统状态来预测未来的系统状态,这也是任何RNN中必不可少的客观条件。

所以在http://www.business-science.io/timeseries-analysis/2018/04/18/keras-lstm-sunspots-time-series-prediction.html中进行的方式是客观的。

您可能要说的另一点是有状态模式,但是使用它非常重要,因为只有在有状态模式下,样本才可以混洗,并且可以提高准确性。 无状态神经网络处理概率分布,改组概率分布不会改变概率分布(置换不变性),有状态神经网络包括顺序分布因此改组的数据会改变结果,请在网络中搜索'改组多重分形数据':

  

在正常(或“无状态”)模式下,Keras会对样本进行混洗,然后   时间序列与其自身的滞后版本之间的依赖关系   迷路了。但是,在“有状态”模式下运行时,我们通常会变得很高   精确度是通过利用   时间序列。

根据定义,LSTM使用时间序列和该时间序列的滞后版本(timesteps,...),因此这也是客观的分析。

如果您想更深入地研究问题,并且超出ACF捕获的线性相关性,则应该了解非线性动力系统(混沌理论,分形性,因为它涉及非线性系统和非线性相关性,即处于混沌状态的非线性动力学系统的时间序列的滞后图总是表现出非线性的种类。 Logistic映射在其混沌区域的滞后图显示了抛物线,三次非线性映射的滞后图显示了三次曲线,.... RNN仅能建模/近似系统完全准确 whichs滞后图显示了足够简单的结构(圆形,螺旋形,双曲面,三次曲线,二次曲线等),即,对于神经网络,不可能估计素数间隙的序列,因为Primegaps序列具有复杂的结构(但是,当忽略顺序排序时,它显示了lag = 1的清晰模式,