时间:2024-05-04
白迪
(四川大学计算机学院,成都610065)
在金融市场中,资产的价格和回报的预测一直是金融从业者和学者们最具挑战和激动人心的问题之一[1-2]。研究估计,机器学习应用于银行和金融部门的年潜在价值占全球收入的5.2%,约为3000 亿美元[3]。与传统的财务模型相比,机器学习提出利用以前未使用的新数据源进行准确预测的希望。近年来,有许多使用基本面数据进行股票价格和回报预测的研究,并且取得了良好的效果,并且证明了机器学习在基本面数据对股票价格和回报预测的有效性[5]。
人类的注意力机制是从直觉中得到,他是利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段。深度学习中的注意力机制借鉴了人类的注意力思维方式[6],并被广泛应用到计算机视觉和自然语言处理中。而在进行基本面数据进行资产价格和回报预测时,由于基本面的数据量较大,每个基本面指标对于预测结果的影响也是不同的,因此本文使用带有注意力机制的机器学习进行资产价格和回报的预测。
本实验使用基本面数据预测资产下一季度的回报率,其输入如公式(1)所示:
其中xt,i代表在时间t 时刻第i 个基本面指标,共有N 个指标。模型预测的输出为资产的回报率。计算公式如下所示:
其中closet代表资产在t 时刻的收盘价,Predictedt代表了资产在t 时刻预测出的回报率。
本实验所采集的股票数据使用的是沪深300 指数成分股。选用沪深300 指数成分股作为实验数据主要有两个原因。第一:沪深300 指数的金融基本面指标在数据量方面相对完整和庞大。这是因为这些股票都是大盘股,而且它们中的大多数上市时间相对较早。第二,沪深300 成分股在不同行业间相对平衡,而且它覆盖了银行、钢铁、石油、电力、煤炭、水泥、家电、机械、纺织、食品、酿酒、化纤、有色金属、交通运输、电子器件、商业百货、生物制药、酒店旅游、房地产等数十个主要行业的龙头企业。但由于沪深300 成分股的组成经常处于变化中,本实验采用2019 年12 月的成分股作为它的组成。本文沪深300 成分股的历史数据来自于量化交易网站聚宽。
成分股中原始的基本面数据有相当一部分数据条目缺失。由于数据集中缺失数据的存在可能为数据处理制造问题,从而最终产生无效的结论。对于机器学习问题,特别是在大多数机器学习方法的设计中都要求有完整的数据用于训练和测试,因此在创建机器学习模型前必须对缺失数据进行处理。
数据缺失值的产生有三种机制,第一,完全随机缺失:某个变量是否缺失与它自身的值无关,也与其他任何变量的值无关。第二,随机缺失:在控制了其他变量已观测到的值后,某个变量是否缺失与他自身的值无关。第三,非随机缺失:即使控制了其他变量已观测到的值,某个变量是否缺失仍然与它自身的值有关。
如文献[7-8]中所述,通常处理缺失数据有以下几种方法:
(1)整列删除:整列删除移除有一个或多个缺失值的记录。对于完全随机丢失的数据,整列删除只会导致统计能力的下降。如果数据不是随机缺失的,这种方法可能产生有偏参数估计。
(2)成对删除:整列状态删除通常用一个特殊码代表无效值和缺失值,同时保留数据集中的全部变量和样本。但是,在具体计算时只采用有完整答案的样本,因而不同的分析因涉及的变量不同,其有效样本量也会有所不同。这是一种保守的处理方法,最大限度地保留了数据集中的可用信息。
(3)向前填充/向后填充:向前填充/向后填充即使用后一位/前一位的数据填充缺失数据。
(4)最大似然估计法:最大似然估计法使用可用数据的最大似然函数来计算最大似然估计。同样,最大似然估计法还假设数据如果不是完全随机缺失,至少是随机缺失的。
原始数据中有大量的数据缺失集中在一些特征上,而其他缺失数据分布的较为离散。本文使用了特征删除和均值替代的方法。如果某个特征有大量或超过50%的数据缺失,该特征项将会被移除。经过特征删除后,经统计删除的数据共有8%。若某只股票有超过10%的基本面数据为空,这删除该股票的数据。剩余的缺失数据使用向后填充法填补。
本实验的目标变量是预测季度的回报率。由于原始数据中有许多的特征拥有一个与时间相关的全局趋势,这些具有全局趋势的特征可能会阻碍我们机器学习模型的泛化能力,从而导致不可靠的预测结果。因此我们对所有的特征进行了百分比的转换,如公式(3)所示:
经过数据处理后,最终共有138 支股票和23 个特征被选取。每只股票有59 个观测值,从2005 年第一季度到2019 年第四季度。这23 个特征值如表1所示。
表1 数据集经过预处理后的特征值
在金融预测问题中,特别是数据有限的情况下,使用机器学习的方法时较容易出现过拟合。因此,我们将数据集划分为训练集,验证集和测试集。训练集占总数据的60%,测试集和验证集分别占总数据的20%。即从2005 年第一季度至2013 年第四季度为训练集,从2014 年第一季度至2016 年第四季度为验证集,从2017 年第一季度至2019 年第四季度为测试集。除此之外为了最大化的利用数据,在验证之后我们使用训练集的数据和验证集的数据训练模型,然后进行测试[5]。我们的策略如图1 所示。
图1 数据集划分策略
由于不同特征的数值范围可能不一致,因此本实验对每个特征进行标准化,以提升我们预测模型的性能[9]。归一化公式(4)如下所示:
其中x是原始的特征向量,xˉ为特征向量的平均值,σ为特征向量标准差。为了防止训练集使用到验证集和测试集信息,需要对训练集与验证集、测试集分开进行归一化处理本实验对训练集归一化后,使用训练集的平均值和标准差对验证集和测试集进行归一化。
当训练一个回归模型时,损失函数取决于特定的算法。此外,模型训练中的损失函数也是一个可以调优的超参数。对于前馈神经网络,我们使用均方根误差(RMSE)作为训练的损失函数。对于随机森林,不涉及训练周期和损失函数,RMSE 如公式(5)所示:
在本实验中,使用的基线模型为FNN 和RF,使用这两个模型用来预测季度的回报[5]。
(1)前馈神经网络
前馈神经网络使用的开发工具为:Python 和Ten⁃sorFlow 的接口Keras。前馈神经网络其隐藏层的数量(Hidden layers)、每个隐藏层神经单元的个数(Layer sizes)、激活函数(Activation)、训练的周期(Training ep⁃ochs)、学习率(Learning rate)和优化器(Optimizer)如表2 所示。
表2 前馈神经网络的超参数
(2)随机森林
随机森林使用的开发工具为Python 的scikit-learn库。其超参数设置如表3 所示。
表3 随机森林的超参数
由于不同的基本面指标对预测结果的影响不同,因此本实验的注意力机制作用在指标上。带注意力的模型使用的开发工具为Python 和TensorFlow 的接口Keras。其模型的参数如表4 所示。
表4 带有注意力机制的前馈神经网络的超参数
本文使用了前馈神经网络、随机森林和带有注意力机制的前馈神经网络三种模型。股票预测结果在不同时间的均方根误差如图2 所示,三种模型的平均均方根误差如表5 所示。
表5 三种模型的均方根误差
图2 三种模型结果对比
由图2,带有注意力机制的模型其均方误根差在多数季度要小于前馈神经网络和随机森林的均方根误差。在表5 中,带有注意力机制的前馈神经网络的效果分别比前馈神经网络和随机森林的效果提升了43.75%和47.05%,也证明了带有注意力机制的前馈神经网络的有效性。
机器学习在股票价格和回报测试是一个热门的课题。本文使用带有注意力机制的前馈神经网络结合基本面信息对股票的回报进行预测,并取得了较好的结果。但仍存在不足之处,例如在金融领域中,使用基本面数据时,其所在的行业信息也是很重要的一个因素,因此可以尝试将行业信息加入模型中进行预测。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!