楼主: kedemingshi
1554 26

[量化金融] 预测经济和金融时间序列:ARIMA与LSTM [推广有奖]

11
大多数88 在职认证  发表于 2022-6-9 19:07:51
在隐藏层中,节点对输入的加权和应用激活函数(例如,sigmoid或切线双曲(tanh)),以将输入转换为输出或预测值。输出层生成各种输出的概率向量,并使用称为SoftMax的函数选择错误率或成本最小的向量,即最小化预期值和预测值之间的差异,也称为成本。对权重向量的赋值以及通过网络训练首次获得的误差可能不是最好的。为了找到错误的最佳值,错误将从输出层向隐藏层“反向传播”到网络中,从而调整权重。使用相同的观察值重复该过程,即多次进行epochs,并重新调整权重,直到预测值和随后的成本有所改善。当成本函数最小化时,对模型进行训练。3.2.2递归神经网络(RNN)递归神经网络(RNN)是神经网络的一种特例,其目标是预测观测序列中的下一步相对于序列中观察到的前一步。事实上,RNNs背后的想法是利用连续观测并从早期阶段学习,以预测未来趋势。因此,在猜测下一步时,需要记住早期阶段的数据。在RNN中,隐藏层充当内部存储器,用于存储在读取顺序数据的早期阶段捕获的信息。

12
mingdashike22 在职认证  发表于 2022-6-9 19:07:54
RNN被称为“经常性的”,因为它们对序列的每个元素执行相同的任务,其特点是利用先前捕获的信息来预测未来看不见的序列数据。典型的通用RNN的主要挑战是,这些网络只记住序列中的几个早期步骤,因此不适合记住更长的数据序列。利用长-短期记忆(LSTM)递归网络中引入的“记忆线”解决了这一具有挑战性的问题。3.2.3长-短期记忆(LSTM)LSTM是一种特殊的RNN,具有额外的功能来记忆数据序列。通过一些门以及典型LSTM中包含的存储线,可以存储数据的早期趋势。LSTM电池的内部结构如图1:8图1所示。LSTM的内部结构【Colah的博客,2015年】。LSTM是一种特殊的RNN,具有额外的功能来存储数据序列。每个LSTM是一组单元或系统模块,在其中捕获和存储数据流。这些单元类似于一条传输线(每个单元中的上线),它从一个模块连接到另一个模块,传输过去的数据,并为当前模块收集数据。由于在每个单元中使用了一些门,因此可以为下一个单元处理、过滤或添加每个单元中的数据。因此,基于sigmoidal神经网络层的门使单元能够选择性地让数据通过或处理。每个sigmoid层产生的数字在0到1之间,描述了每个单元中应该通过的每个数据段的数量。

13
何人来此 在职认证  发表于 2022-6-9 19:07:57
更准确地说,对零值的估计意味着“不让任何东西通过”;鉴于估计一个表示“让一切都过去”每个LSTM涉及三种类型的门,目的是控制每个单元的状态:-忘记门输出0到1之间的数字,其中1表示“完全保持此状态”;然而,0意味着“完全忽略这一点。”-内存门选择需要存储在单元中的新数据。首先,一个称为“输入门层”的sigmoid层选择要修改的值。接下来,tanh层生成一个新候选值的向量,这些候选值可以添加到状态中输出门决定每个单元的产量。产生的值将基于单元格状态以及过滤和新添加的数据。4 ARIMA与LSTM:一项旨在比较ARIMA和LSTM性能的实验研究,作者对一些选定的经济和金融时间序列数据进行了一系列实验。本文主要研究问题如下:1。哪种算法,ARIMA或LSTM,对时间序列数据进行更准确的预测?2、RQ2。基于深度学习的算法中的训练次数是否会影响训练模型的准确性?4.1数据集9作者从雅虎金融网站1中提取了1985年1月至2018年8月的历史月度金融时间序列。月度数据包括日经225指数(N225)、纳斯达克综合指数(IXIC)、恒生指数(HIS)、标准普尔500商品价格指数(GSPC)和道琼斯工业平均指数(DJ)。此外,作者还从圣路易斯联邦储备银行(Federal Reserve Bank of St。

14
能者818 在职认证  发表于 2022-6-9 19:08:00
Louis2和国际货币基金组织(IMF)网站3。数据包括所有城市消费者的医疗保健商品,1967年1月至2017年7月期间的指数1982-1984=100(MC),所有城市消费者的住房,1967年1月至2017年7月期间的指数1982-1984=100(HO),以主要货币计的贸易加权美国指数,1967年8月至2017年7月期间的指数1973年3月=100(EX),1967年1月至2017年7月期间,所有城市消费者的食品和饮料指数1982-1984=100(FB),M1货币存量,1959年1月至2017年7月期间的数十亿美元(MS),以及所有城市消费者的交通,1947年1月至2017年7月期间,指数1982-1984=100(TR)。4.2数据准备每个金融时间序列数据集都有许多变量:开放、高、低、收盘、调整后收盘和成交量。作者选择“调整后的收盘”变量作为金融时间序列的唯一特征,以输入ARIMA和LSTM模型。每个经济和金融时间序列数据集分为两个子集:训练和测试数据集,其中每个数据集的70%用于训练,其余30%用于测试模型的准确性。表1列出了每个数据集的时间序列观察数。表1:。时间序列观测值的数量。库存#ObservationsTotalStock#ObservationsTotalTest 70%Train 30%Test 70%Train 30%N225 MCIxichohsiergspCfbdji1msdji211891698tr1。月刊2、每周4.3评估指标均方根误差(RMSE)是一种经常用于评估模型预测准确性的指标。它测量实际值和预测值之间的差异或残差。

15
kedemingshi 在职认证  发表于 2022-6-9 19:08:04
该指标比较特定数据的不同模型的预测误差,而不是数据集之间的预测误差。计算RMSE的公式如下:1https://finance.yahoo.com/2.https://fred.stlouisfed.org/3.http://www.imf.org/external/index.htm10  RMSE =  1.N(x!- x!)!!! !!  其中,N是观察总数。x! 是实际值;鉴于x! 是谓词值。使用RMSE的主要好处是它可以惩罚较大的错误。它还以与预测值相同的单位(即本研究的每月)来衡量分数。5算法用于预测时间序列的ARIMA和LSTM算法基于“滚动预测原点”【Hyndman和Athanaspoulos,2014年】。滚动预测源集中于单个预测,即每个数据集的下一个要预测的数据点。这种方法使用训练集,每个训练集比前一个训练集多包含一个观察值,一个月的数据前瞻视图。滚动预测有几种变化【Hyndman,2014】:-无需重新估计的一步预测。该模型估计一组训练数据,然后对其余数据集进行一步预测无需重新估计的多步骤预测。在接下来的多个步骤中执行时,类似于一步预测。-带重新估计的多步骤预测。另一种方法是,在执行每个预测之前,在每次迭代中重新拟合模型。对于我们的数据集,如果之前的时间步中存在依赖关系,则需要滚动预测。执行滚动预测的一种直观而基本的方法是在每次添加新观测值时重新构建模型。

16
可人4 在职认证  发表于 2022-6-9 19:08:07
滚动预测有时称为“向前走模型验证”Python与Keras(开源神经网络库)和Theano(数值计算库)一起用于实现这些算法,这两个库都是Python的。这些实验是在一组高性能计算设备上进行的。5.1 ARIMA算法ARIMA是一类捕获时间序列数据中时间结构的模型。ARIMA是一种基于线性回归的预测方法。因此,最好进行一步抽样预测。在此,开发的算法通过重新估计执行多步样本外预测,即每次重新拟合模型以构建最佳估计模型【Brownlee,2017年】。框1中列出的算法将“时间序列”数据集作为输入,建立预测模型并报告预测的均方根误差。该算法首先将给定数据集拆分为训练集和测试集,分别为70%和30%(第1-3行)。然后,它构建两个数据结构,以保存每次迭代时累积添加的训练数据集“历史”,以及测试数据集的连续预测值“预测”11如前所述,在构建ARIMA模型时通常使用的一个众所周知的符号是ARIMA  p, d, q , 式中:-p是用于训练模型的滞后观测数(即滞后顺序)。-d是应用差分的次数(即差分程度)。-q是移动平均窗口的大小(即移动平均的顺序)。通过第6-12行,首先算法适合ARIMA  试验数据的5,1,0模型(第7-8行)。值为0表示拟合模型时未使用图元。

17
大多数88 在职认证  发表于 2022-6-9 19:08:09
更具体地说ARIMA  5,1,0表示自回归的滞后值设置为5。它使用差分阶数1使时间序列平稳,最后不考虑任何移动平均窗口(即大小为零的窗口)。一ARIMA   使用5,1,0预测模型作为基线对预测进行建模。这可能不是最佳模型,但正如我们的解释性实验所表明的那样,这通常是构建模型的良好基线。然后,算法预测期望值(hat)(第9行),将hat添加到预测数据结构(第10行),然后将实际值添加到测试集,以优化和重新拟合模型(第12行)。最后,在构建了预测和历史数据结构后,该算法计算RMSE值,即评估预测准确性和评估预测的性能指标(第14-15行)。方框1。提出了滚动ARIMA算法滚动ARIMA输入:系列输出:预测数据的RMSE#将数据分为70%的训练数据和30%的测试数据1。大小长度(系列)*0.70 2。火车系列[0…大小]3。测验系列[尺寸…长度(尺寸)]#数据结构准备4。历史第5列。预言!清空#Forecast 6。对于范围内的每个t(长度(测试)),执行7。模型ARIMA(历史,顺序=(5,1,0))8。模型适合!模型安装()9。帽子model\\u拟合。预测()10。预言。附加(帽子)11。观察!试验【t】12。历史附加(观察)13。结束时间为14。MSE=均方误差(测试、预测)15。RMSE=sqrt(MSE)返回RMSE5.2 LSTM算法与使用回归建模不同,在时间序列数据集中,输入变量之间存在一系列依赖关系。递归神经网络在处理输入变量之间的依赖关系方面非常强大。

18
大多数88 在职认证  发表于 2022-6-9 19:08:13
LSTM是一种递归神经网络(RNN),可以保存长序列的观测数据并从中学习。开发的算法是一种多步骤单变量预测算法【Brownlee,2016年】。12框2。开发的滚动LSTM算法滚动LSTM输入:系列输出:预测数据的RMSE#将数据分为70%的培训数据和30%的测试数据1。大小长度(系列)*0.70 2。火车系列[0…大小]3。测验系列[大小…长度(大小)]#将

19
能者818 在职认证  发表于 2022-6-9 19:08:16
方框2.13中列出了开发的LSTM算法,以与ARIMA算法一致,为了进行公平比较,该算法首先将数据集分为70%的训练和30%的测试(第1-3行)。为确保结果和复制的再现,建议固定随机数,请参阅。在第4行中,种子数固定为7。该算法定义了一个名为“fit\\u lstm”的函数,用于训练和构建lstm模型。该函数获取训练数据集、历元数(即给定数据集拟合到模型的时间)和神经元数(即内存单元或块的数量)。第8行稍后创建隐藏的LSTM。一旦建立网络,就必须对其进行编译和解析,以符合ATANO中使用的数学符号和约定。编译模型时,必须指定损失函数和优化算法(第9行)。“均方误差”和“ADAM”分别用作损失函数和优化算法。编译之后,是时候将模型与训练数据集相匹配了。由于网络模型是有状态的,当有多个历元时,必须特别管理和控制网络的重置阶段(第10-13行)。此外,由于目标是使用早期阶段训练优化模型,因此有必要将洗牌参数设置为false,以改进学习机制。在第12行中,算法重置训练的内部状态,并为下一次迭代(即历元)做好准备。第14行创建了一个小函数,用于调用LSTM模型并预测数据集中的下一步(一次前瞻性估计)。

20
kedemingshi 在职认证  发表于 2022-6-9 19:08:19
第15-16行中分别设置了历元数和神经元数,即第1行和第4行。该算法的操作部分从第18行开始,在该行中,使用给定的训练数据集、历元数和神经元数建立LSTM模型。此外,第19行正在对培训数据进行预测。第20-27行使用构建的LSTM模型预测测试数据集,第28-29行报告获得的RMSE值。需要注意的是,为了降低算法的复杂性,方框2中没有显示算法的某些部分,如密集、批量大小、变换等。但是,这些部分是所开发算法的组成部分。6结果结果见表2。与金融时间序列或股票市场相关的数据表明,使用滚动ARIMA和滚动LSTM模型的平均均方误差(RMSE)分别为511.481和64.213,从而使LSTM实现的误差率平均降低87.445。另一方面,经济相关数据显示RMSE减少了84.394,其中滚动ARIMA和滚动LSTM的平均RMSE值分别计算为5.999和0.936。RMSE值清楚地表明,基于LSTM的模型优于基于ARIMA的模型,具有较高的利润率(即错误率降低84%-87%)。7讨论:迭代次数对拟合模型的影响通过基于深度学习的预测问题方法观察到的显著性能主要是由于这些方法中使用的“迭代”优化算法,其目标是找到最佳结果。通过迭代,我们的意思是多次获得结果,然后选择最佳结果,即使误差最小化的迭代。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-8 10:09