APP下载

基于XGB-LSTM组合模型的白酒股票价格预测研究

2022-09-08许艺玮陆万荣

电子元器件与信息技术 2022年6期
关键词:股票价格股指股票

许艺玮,陆万荣

1.云南财经大学商学院,云南 昆明,650221;2.昆明能讯科技有限责任公司,云南 昆明,650000

0 引言

股票数据作为一种典型的金融数据,进行股票分析和预测可以直观了解经济的发展动态和变化趋势。尤其对于各类投资者(机构),股票价格、成交量等核心指标是他们进行投资决定的重要参考依据之一。但是股票的变化趋势不仅受资本市场、社会经济的影响,还被政策、社会活动等非经济因素影响,因此股票预测十分具有挑战性[1]。

综上所述,股票数据分析和趋势预测的现实意义十分重大。此外,鉴于股票数据非平稳、非线性的特点,在数据领域的研究价值也越来越突出。对此,国内外的诸多学者对股票数据做了多层次的研究。2013,年Funatsu和Kaneko研究了支持向量机自适应感知预测,建立了可靠的回归预测模型[2]。2016年,河北金融学院的吴玉霞和南京财经大学的温欣对华泰证券250期的股票建立了ARIMA预测模型,证实了该模型对短期股票价格预测效果较好[3]。2017年,周宁等人研究了马尔可夫在时间序列预测中的应用,提出了马尔可夫和BP神经网络组合的股票价格预测模型[4]。柴岩和段大锴在2019年提出利用RBM进行特征提取,借助差分进化算法对支持向量机进行参数优化,在恒生股票上证实了所构建模型的有效性[5]。2021年,山东大学的高德亮提出了WT-GRU股指预测模型,首先通过小波变换进行特征分解,再使用GRU神经网络建立股票价格预测模型,最后通过AdamW对GRU预测模型进行性能优化,在上证指数上的验证表明该模型有效降低了评价指标RMSE、MAE和R2的误差得分[6]。

分析上述研究成果可以发现,股票预测模型从统计学习发展到机器学习,再到深度学习,每个阶段的研究都取得了不错的成果。本文提出使用极限梯度提升机(eXtreme Gradient Boosting,XGBoost)和长短期记忆网络(Long Short Term Memory networks,LSTM)组合的方式进行股票价格预测,两者都已经证明了自己在时序数据预测中的先进性,先使用XGBoost对原始数据进行特征预测,再将预测结果作为新特征加入原始特征通过LSTM建模,最后在茅台、五粮液、洋河、汾酒四支白酒股票上进行实例验证,并对预测结果进行分析。

1 股票数据可视化和分析

本文通过baostock库获取到了四支白酒类股票,分别是贵州茅台、五粮液、洋河股份和山西汾酒,股票代码分别是“sh.600519”、“sz.000858”、“sz.002304”和“sh.600809”。将每日收盘价作为股票价格指数(以下简称为:股指),近三年的股指变化趋势如图1所示。

图1 股票价格曲线

从图1中可以看出,四支股票的收盘价整体变化趋势相同,涨跌的周期一致。为了更直观地了解各支股票的变化趋势,对股指进行移动平均,结果如图2所示。

图2 移动平均曲线

图2分别展示了各支股票在3天、5天和7天移动平均的情况下股指的变化趋势,随着移动平均天数的增加,股指变化趋向于一致。

非平稳性是股指曲线的典型特征之一,也是时间序列数据预测研究的重点。对四支股票的股指进行ADF检验后得到表1。ADF检验假设序列平稳,表中四支股票股指序列的p-value远大于0.05,因此拒绝原假设,股指序列不平稳。

表1 ADF 检验结果

2 XGBoost和LSTM组合模型

XGBoost算法[7]和LSTM算法[8]已经在诸多领域应用,前者属于机器学习中的集成学习方法,后者属于深度学习中循环神经网络(Recurrent Neural Network,RNN)[9]的一个变种,两者在时间序列预测领域都展现了其强大的拟合能力和泛化性。

2.1 XGBoost原理

XGBoost是Boosting集成算法的一种,也是一种“树”模型,基本组成是CART回归树,最早被提出用于有监督回归任务,后来也被应用于分类领域。该算法思想就是不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。当我们训练完成得到k棵树,预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值。对于第t棵树,第i个样本的模型预测值如(1)式:

XGBoost的目标函数由式(2)所示,有两部分构成:残差和正则化项。第一部分很好理解,真实值和预测值的误差,第二部分则是一个复杂的求和,可以将其看作是一个正则化项,并且两部分的维度不同,i是样本数量,j是数的数量,是一个累加值。

XGB求解采用了和CART回归数一样的贪婪算法,无法遍历所有树结构,遍历了所有特征的特征切分点,同时也对树的生长在增益和深度方面做了限制。

2.2 LSTM原理

LSTM是循环神经网络RNN的改进,是为了解决RNN在处理长期依赖时涉及雅可比矩阵的多次相乘导致的梯度消失或者梯度膨胀问题。LSTM是门限RNN中最著名的一种,LSTM的巧妙之处在于通过增加输入门限,遗忘门限和输出门限,使得自循环的权重是变化的,这样一来在模型参数固定的情况下,不同时刻的积分尺度可以动态改变,从而避免了梯度消失或者梯度膨胀的问题,结构如图3所示。

图3 LSTM 结构图

其中,最核心的部分是细胞状态,也就是图3中黄色框内部分。该结构承载着之前所有状态的信息,每当通过cell state时怎么通过“门”进行信息取舍。“门”由三部门组成,红色框表示遗忘门,蓝色框表示输入门,绿色框表示输出门。遗忘门决定了要从cell state中舍弃什么信息。其通过输入上一状态的输出ht1-、当前状态输入信息xt到一个Sigmoid函数中,产生一个介于0到1之间的数值,与cell state相乘之后来确定舍弃或保留多少信息。输入门决定了要往cell state中保存什么新的信息。其通过输入上一状态的输出、当前状态输入信息xt到一个Sigmoid函数中,产生it来确定我们需要保留多少的新信息。同时,一个tanh层会通过上一状态的输出ht-1、当前状态输入信息来得到一个将要加入到cell state中的“候选新信息”。将刚才得到的数值it与“候选新信息”相乘得到我们真正要加入到cellstate中的更新信息。输出门决定了要从cell state中输出什么信息。通过数值ot来确定需要输出多少cell state中的信息。cell state的信息在与ht相乘时首先会经过一个tanh层进行非线性变换。得到LSTM block的输出信息ht。遗忘门、输入门和输出门的计算公式如(3)、(4)、(5)式所示。

2.3 XGB-LSTM组合模型原理

前面两个小节叙述了XGBoost和LSTM的基本原理,XGBoost对特征有较强的拟合能力,LSTM对长期依赖问题具有积极作用。借助Stacking集成思想,首先通过XGBoost在已有特征的基础上构建预测模型,将预测特到的结果作为新特征加入原始特征中,再利用LSTM建立最终的股票价格预测模型,详细结构如图4所示。

图4 XGB-LSTM 结构图

3 实例分析

以贵州茅台、五粮液、洋河股份和山西汾酒四支白酒股票的从2017年3月至2022年3月的真实股票数据作为实验样本。

为了比较不同预测模型在各支股票上预测的性能,选择两个评价指标进行度量,分别是平均绝对误差(Mean Absolute Error,MAE)和均方误差(Mean Squared Error,MSE),计算公式如式(6)、(7)所示:

选择最近30天的数据作为测试数据,其他作为训练集。XGBoost和LSTM的主要参数选择如表2所示。

表2 主要参数取值

图5,展示了不同模型对近30天真实股票价格的预测曲线。从图中可以看出:在茅台、洋河、汾酒三只股票上,Xgboost和本文提出的组合模型对真实值的拟合度较高,在五粮液股票上LSTM模型的拟合度最高,XGB-LSTM组合模型次之。

图5 不同模型预测曲线对比图

各模型评价在评价指标MAE和MSE上的表现如表3所示。MAE和MSE均表示损失值,取值越小表示模型预测越准确。在表3中最好得分以加黑突出表示,明显可以发现,除了在五粮液股票上LSTM得分最高,在其他三支股票上都是本文提出的XGB-LSTM组合模型得分最高。证明了XGB-LSTM在股票预测中能够产生积极作用,对金融领域时间序列预测建模型提供了新思路。

表3 MAE 和MSE 得分

4 结语

本文在XGBoost和LSTM模型的基础上提出了两者的组合模型,将XGBoost的预测结果作为新特征重新利用LSTM进行建模,并在4支白酒股票上进行实例验证,实验结果证明XGB-LSTM组合模型在大多数情况下都要优于XGBoost和LSTM单一模型。

猜你喜欢

股票价格股指股票
平安千亿回购 股指触底回升
股指再度回落 机构逢高减仓
降杠杆引发股指冲高回落
股指震荡走高筑底之日可期
本周创出今年以来新高的股票
本周创出今年以来新高的股票
上市公司财务指标与股票价格的相关性实证分析
人民币汇率与上证指数互动的实证研究
员工持股计划对股票价格的影响
实证分析会计信息对股价的影响