分类
外匯投資心得

介绍时间序列数据和常见的金融分析方法

实时关联数千个金融时间序列流

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

码住!基于深度学习的时间序列预测方法总结

考虑一维情况,我们可以看到(2)与数字信号处理中的有限脉冲响应(FIR)滤波器非常相似。这对 CNN 学习的时间关系产生了两个关键影响。首先与标准 CNN 的空间不变性假设一致,时间 CNN 假设关系是时间不变的,即在每个时间步长和所有时间使用相同的滤波器权重集。此外 CNN 只能使用其定义的回溯窗口或接受域内的输入来进行预测。 因此需要仔细调整感受野大小 k 以确保模型可以利用所有相关的历史信息。值得注意的是,单个因果 CNN 层等效于自回归 (AR) 模型。

膨胀卷积 使用标准卷积层在长期依赖性很重要的情况下可能具有计算挑战性,因为参数的数量直接与感受野的大小成比例。 为了缓解这种情况,现代架构经常使用扩展的共卷积层,于是将(2)扩展如下:

其中└.┘是向前取整操作,dl是特定层的膨胀率。因此膨胀卷积可以解释为下层特征下采样版本的卷积,即降低分辨率以合并来自遥远过去的信息。因此通过增加每一层的膨胀率,膨胀卷积可以逐渐聚合不同时间块的信息,从而以有效的方式使用更多的历史。例如 WaveNet 架构的膨胀率在相邻时间块聚合在每层中以 2 的幂增加,即允许在第 l 层使用 2l 时间步长(上图 a)。

循环神经网络

循环神经网络 (RNN) 历来被用于序列建模,在各种自然语言处理任务上取得了很好的效果。鉴于时间序列数据作为输入和目标序列的自然解释,许多基于 RNN 的架构已被开发用于时间预测应用程序。在其核心为 RNN 单元包含一个内部记忆状态,作为过去信息的概述。在每个时间步使用新的观测值递归更新内存状态(如上图 b 所示),即:

其中zt是 RNN 的隐状态,x˜t=[xt,tt,s]是每一步进入 RNN 的组合输入,ν(.)是学习到的记忆更新函数。例如最简单的 RNN 变体采用以下形式:

其中W和b分别是网络的线性权重和偏差,γyγz是激活函数。请注意,RNN 不需要像 CNN 介绍时间序列数据和常见的金融分析方法 那样明确指定回溯窗口。从信号处理的角度来看,主要的循环层(方程 3)类似于无限脉冲响应 (IIR) 滤波器的非线性版本。

LSTM 由于无限的回溯窗口,旧的 RNN 变体在学习数据中的长期依赖关系时可能会受到梯度爆炸和消失的问题的限制。 直观来看,这可以看作是记忆状态中的一种共振形式。因此长短期记忆网络 (LSTM)通过改善网络内的梯度流来解决这些限制。具体是通过使用存储长期信息的细胞状态ct结合一系列门进行调制来实现,如下所示:

其中ht−1是 LSTM 的隐藏状态,σ(.)是 sigmoid 激活函数。LSTM 的隐藏和单元状态如下:

其中⊙是逐元素 (Hadamard) 乘积,tanh(.)是 tanh 激活函数。

有相关文献也描述了 LSTM 与贝叶斯滤波器的关系,贝叶斯滤波器和 RNN 在维护隐藏状态方面是相似的,该隐藏状态随时间递归更新。对于贝叶斯滤波器,例如卡尔曼滤波器,通过更新潜在状态的足够统计数据来执行推理,即使用一系列状态转换和纠错步骤。由于贝叶斯过滤步骤使用确定性方程来修改足够的统计数据,因此可以将 RNN 视为两个步骤的同时逼近:记忆向量包含预测所需的所有相关信息。

Attention 机制

注意力机制的发展通过改进 Transformer 导致长期依赖学习的改进。架构在多个自然语言处理应用程序中实现了最先进的性能。注意层使用动态生成的权重聚合时间特征(见上图 c),允许网络直接关注过去的重要时间步长,即使它们在回溯窗口中很远。 通常注意力权重采用以下形式:

在时间序列预测应用程序中使用注意力机制与循环网络相比具有更高的性能。 例如使用注意力来聚合由 RNN 编码器提取的特征,产生的注意力权重如下:

其中α(t)=[α(t,0). α(t,k)]是 介绍时间序列数据和常见的金融分析方法 attention 权重向量,h˜t−1,h˜t是用于特征提取的 LSTM 编码器的输出,softmax(.) 是 softmax 激活函数。最近一些工作也考虑了 Transformer 架构,它利用 self-attention 的标量内积在回顾窗口中提取特征。从时间序列建模的角度来看,注意力提供了两个关键的好处。首先具有注意力的网络能够直接关注发生的任何重大事件。 例如在零售预测应用中,这包括可能对销售产生积极影响的假期或促销期。其次基于注意力的网络还可以通过为每个架构使用不同的注意力权重模式学习特定架构的时间动态。

输出和损失函数

点估计 一种常见的预测方法是确定未来目标的预期值。这主要涉及将问题重新表述为使用上述编码器离散输出的分类任务(例如预测未来事件)和连续输出的回归任务。 对于二元分类情况,解码器的最后一层具有带有 sigmoid 激活函数的线性层,即允许网络在给定的时间步长预测事件发生的概率。对于二元和连续目标的一步超前预测,网络分别使用二元交叉熵和均方误差损失函数进行训练:

其中htL是网络的最后一层,softplus(.) 是 softplus 激活函数,以确保标准差仅取正值。

多步预测模型

直接法通过直接使用所有可用输入生成预测来缓解迭代方法的问题。 他们通常使用序列到序列架构,使用编码器来总结过去的信息(即目标、观察到的输入和先验的已知输入),并使用解码器将它们与已知的未来输入相结合(如上图 b 所示)。在避免递归的同时,直接方法需要指定最大预测范围(即τmax),且预测仅在预定义的离散间隔内进行。

二、将领域知识与混合模型相结合

尽管机器学习很受欢迎,但历史上其在时间序列预测中的有效性一直受到质疑,正如 介绍时间序列数据和常见的金融分析方法 M 竞赛等预测竞赛所证明的那样。在 2018 年的 M4 竞赛之前,普遍的看法是复杂的方法不会产生更准确的预测,而带有集成学习的简单模型往往会做得更好。这里有两个关键原因来解释机器方法的性能不佳。首先机器学习方法的灵活性可能是一把双刃剑,容易过拟合。其次类似于统计模型的平稳性要求,机器学习模型对输入的预处理方式很敏感,而正确的数据预处理可以确保训练和测试时的数据分布相似。

深度学习的最新趋势是发展解决这些限制的混合模型,在各种应用中展示出优于纯统计或机器学习性能的模型。混合方法将经过充分研究的定量时间序列模型与深度学习相结合,即使用深度神经网络在每个时间步生成模型参数。混合模型一方面允许领域专家告知使用先验信息进行神经网络训练以减少网络的假设空间并提高泛化能力。这对小数据集尤其有用,因为深度学习模型过拟合的风险更大。此外混合模型允许分离静态和非静态分量,并避免对自定义输入预处理的需要。这方面的例子是 M4 竞赛的获胜者——指数平滑 RNN (ES-RNN),它使用指数平滑来捕捉非平稳趋势并使用 RNN 学习其他效果。通常混合模型以两种方式使用深度神经网络:非概率参数模型编码时变参数与概率模型生成分布参数。

非概率混合模型

使用参数化的时间序列模型,预测方程通常定义为解析地,并为未来目标提供点预测。因此非概率混合模型修改了这些预测方程,以结合统计和深度学习组件。 例如 ES-RNN 利用 Holt-Winters 指数平滑模型的更新方程,即将乘法因子和季节性分量与深度学习输出相结合,如下所示:

概率混合模型

三、使用深度神经网络促进决策支持

时序数据的可解释性

Post-hoc 可解释性技术 Post-hoc 可解释模型被开发用于解释训练有素的网络,并有助于在不修改原始权重的情况下识别重要特征或示例。方法主要可以分为两大类。首先,一种可能的方法是在神经网络的输入和输出之间应用更简单的可解释代理模型,并依靠近似模型来提供解释。例如局部可解释模型不可知解释 (LIME) 通过将特定于实例的线性模型拟合到输入的扰动中来识别相关特征,线性系数提供了重要性的度量。Shapley 介绍时间序列数据和常见的金融分析方法 附加解释 (SHAP) 提供了另一种替代方法,它利用合作博弈论中的 Shapley 值来识别数据集中的重要特征。接下来,已经提出了基于梯度的方法,例如显著图和影响函数,它分析网络梯度以确定哪些输入特征对损失函数的影响最大。虽然事后可解释性方法可以帮助处理特征属性,但它们通常会忽略输入之间的任何序列依赖关系,因此很难将它们应用于复杂的时间序列数据集。

具有注意力权重的固有可解释性 另一种方法是直接设计具有可解释组件的架构,通常以战略性放置注意力层的形式。当注意力权重作为 softmax 层的输出产生时,限制权重总和为 1,即Στ=0(t,τ)=1。对于时间序列模型,预测方程的输出因此也可以是解释为时间特征的加权平均值,使用注意力层在每一步提供的权重。然后可以使用对注意力权重的分析来了解每个时间步长特征的相对重要性。在进行的实例可解释性研究中,研究人员使用特定示例来展示α(t,τ)的大小如何指示哪些时间点对预测最重要。通过分析注意力向量随时间的分布,还展示了如何使用注意力机制来识别数据集中的持续时间关系,例如季节性模式。

反事实预测和因果推断

虽然存在一大类深度学习方法来估计静态环境中的因果效应,但时间序列数据集中的关键挑战是存在时间相关的混杂效应。这由于影响目标的动作与对目标的观察为条件的循环依赖引起的。没有对时间相关的混杂因素进行任何调整,直接的估计技术可能会导致有偏差的结果。 最近基于统计技术和设计的扩展,出现了几种方法来训练深度神经网络,同时调整时间相关的混杂因素新的损失函数。使用统计方法,扩展流行病学中边缘结构模型的逆治疗概率加权 (IPTW)方法,使用一组网络来估计治疗应用概率,并使用序列到序列模型来学习无偏预测。另一种方法是扩展 G 计算框架,使用深度学习联合建模目标和动作的分布。此外还有研究提出了新的损失函数,它采用领域对抗训练来学习患者病史的平衡表示。

总结与展望

云智慧已开源数据可视化编排平台 FlyFish 。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。 同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置, 面向复杂需求场景能够保证高效开发与交付。

点击下方地址链接,欢迎大家给 FlyFish 点赞送 Star。参与组件开发,更有万元现金等你来拿。

介绍时间序列数据和常见的金融分析方法

统计时间序列简介pdf下载 is a great book that will not leave you indifferent after reading.

Please note that this site may not have this book. We collect traffic from all over the internet. Nevertheless, our advertisers are trying to collect for you the largest number of interesting and fresh books. If you have any questions, write to the contacts listed on the main page! All information is 介绍时间序列数据和常见的金融分析方法 collected from open sources.

For what I remember, I was always more afraid than anyone else. What happened? Almost nothing - I just had the bout. Are there any spasms of something wrong? Maybe he's afraid he's contagious. And then why are you talking about the devil? Why a prison? I had a piece of bread. It 介绍时间序列数据和常见的金融分析方法 was fresh and fragrant. Yesterday I made him his own 介绍时间序列数据和常见的金融分析方法 hand. I have to say that I really did this time. Suddenly my bite began to bang in my throat. Somewhere near the window, he sat down 介绍时间序列数据和常见的金融分析方法 and began to sneak around 介绍时间序列数据和常见的金融分析方法 his changing trills around. He whispers and leaves for 介绍时间序列数据和常见的金融分析方法 a moment where he likes. Everywhere he finds something in his beak . I've been trying to be 介绍时间序列数据和常见的金融分析方法 in his place .

金融数据时间序列分析——关于数据集不平衡的思考

机器学习特征工程1特征工程概述与意义 1.1特征工程与意义 特征:数据中抽取出来对结果预测有用的信息 特征工程是使用专业背景知识和技巧处理数据使得特征能在机器学习算法上发挥更好的作用的过程 意义更好的特征意味着更强的灵活度只需要简单的模型更好的结果 介绍时间序列数据和常见的金融分析方法 1.2工业界的机器学习建模 实际上 跑数据各种map-redu.

特征工程简介以及7种常用方法

关于python读取多列文本数据,显示省略号解决办法)

如何自动地分列从数据库中提取数据?

(原创作者:陈玓玏)方法有两个,如下:一、数据库(Oracle)中写入for循环 DECLARE a number(30) := 0; BEGIN for i in 1 .. 10 loop --INSERT INTO FW_TEST(NAME) VALUES('bbb' + i); sys.dbms_output.put_line('介绍时间序列数据和常见的金融分析方法 bbb'.

python处理实验数据(物理实验)

excel 数据处理

pyinstaller打包太难?快来用Nuitka吧又简单又快

seaborn基本操作——风格设置(以绘制正弦函数为例)

在学习了matplotlib之后便紧跟着开始seaborn的学习,seaborn是对matplotlib的进一步封装,令我们的绘图操作进一步简化,使用seaborn我们便可以简单的绘制出风格迥异的图例,是我们数据展示的利器。 我们从seaborn的风格转换开始入门学习,以绘制正弦函数为例。 首先在正常的matplotlib中我们绘制一组正弦函数的曲线,代码如下: importnumpy.