理论基础
由于神经网络预测模型具有显著的非线性,我们把神经网络模型归为非线性预测模型。神经网络分为两大类。第一类人工神经网络,如MP神经网络和BP神经网络。ANN作为早期的神经网络模型,在股票预测方面亦做出了杰出贡献:Deng提出DAE-BP模型对股票先进行DAE降维,再使用BP神经网络进行股价预测,取得了不错的预测结果。可惜的是,ANN模型结构过于单存在以下问题:
1)过拟合,导致模型的泛化能力大大减弱;2)存在局部极值问题,即梯度下降过程中达到局部极小值点就停止工作,不能精准下降至全局极小值点,导致模型预测能力大大减弱;3)优化过程中容易因为神经元权重过多、过繁,导致梯度消失或者梯度爆炸问题,最终使神经网络模型预测失效。
第二类神经网络则是相对于ANN来说,更深层次、更高效的深度神经网络模型,如卷积神经网络、循环神经网络和长短期记忆神经网络。这一类神经网络模型是当前研究金融预测领域最高效、前沿的预测模型,其具有多方面优势。
1)对输入变量的形式没有限制,与预测问题可能相关的信息均可被作为模型输入,这一点极大满足了股票市场容易被各式各样的信息所干扰影响的特征。2)有效拟合输入变量间的非线性复杂关系,提高样本拟合程度,同时通过神经元权重循环使用原理,大大减少了神经元权重的数量,有效防止过拟合现象。3)通过DNN中tanh激活函数,能够显著解决ANN中的梯度爆炸和梯度消失问题。
本文在股票价格影响因素选取中创新性地将消费者情绪和财务数据、基本面数据等多种数据融合,通过深度学习LASSO方法和PCA分析法对影响股票价格的多种因素进行降维筛选,使各输入数据之间的相关性最大化,再分别导入目前最前沿的LSTM神经网络模型[10-14]进行预测,并进行准确性和稳定性的对比,发现其中最高效的股票模型预测方法。
研究方法
LASSO
实证分析中,通常会设置尽可能多的自变量,选取自变量时容易出现偏主观意愿的疏漏,从而导致实证分析失真。而LASSO方法是一个能够客观筛选有效变量并且解决多重共线性等问题的估计方法。它是1997年由Tibshirani提出的一种压缩估计方法,通过构造一个惩罚函数,让回归系数的绝对值之和在小于一个常数的约束条件下,使得回归模型残差平方和最小,产生严格等于零的回归系数,从而有效解决回归模型中的多重共线性问题。LASSO方法是在普通线性回归模型中增加L1惩罚项,普通线性模型的LASSO估计为:
PCA
主成分分析法是一种降维的统计方法,它借助于一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机向量,这在代数上表现为将原随机向量的协方差阵变换成对角形阵,在几何上表现为将原坐标系变换成新的正交坐标系,使之指向样本点散布最开的p个正交方向;然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统,再通过构造适当的价值函数,进一步把低维系统转化成一维系统。
LSTM
长短时记忆神经网络是一种特殊的RNN类型,可以学习长期依赖信息。RNN神经网络模型一直被广泛用于语言识别和文本分类等多个研究领域[16]。相比于人工神经网络模型而言,RNN神经网络模型可以循环利用神经元的权重参数,能够很好地将历史数据相关信息应用到预测中去。然而,RNN神经网络模型的误差反向传播算法只是像ANN神经网络模型中一样简单,权重的重复利用能够带来好处,也会带来很大弊端,例如梯度爆炸和梯度消失问题,即对历史数据的长期依赖性问题无法有效解决。为解决这两大难题,机器学习科研工作者们研究出长短时记忆神经网络模型,如1所示。LSTM模型相较于RNN模型最明显的改进是增加了1个细胞状态C和3个阀门,3个阀门分别是遗忘门f、输出门o和输入门i。在LSTM模型误差反向传播校正权重时,有些误差可以直接通过输入门传递给下一层神经元,有些误差则可以通过遗忘门去进行数据遗忘,这样就解决了梯度爆炸与消失的难题,即有效地处理历史数据中相关信息的冗余等问题。本文研究的股票价格预测是典型的时序问题,且某一个时刻的价格受前一时刻和历史多时刻价格影响,所以选择LSTM模型进行股票价格预测。
股票价格预测的实证分析
数据来源及指标选取
数据的筛选
表1所列5个一级指标、28个二级指标和57个三级指标描述了股价的波动影响因素。由于指标个数较多,为了不给网络运行带来负担,提高LSTM神经网络的预测能力,本文分别采用主成分分析法和LASSO回归法对57个指标进行筛选。
主成分分析法
通过RStudio软件对平安银行57个指标数据进行标准化处理,然后画出碎石。由3可知,特征值大于1的主成分个数有9个。
预测方法及思路
为客观比较LASSO-LSTM和PCA-LSTM之间的预测效率,我们加入单纯LSTM模型的预测结果,进行三者对比。
LSTM神经网络方法及预测思路
LSTM神经网络用历史1240个交易日的数据信息对股票价格走势进行预测。输入数据为未做数据筛选的所有57个参数变量,输出数据为历史股价下一日的收盘价预测值。LASSO-LSTM模型方法及预测思路通过LASSO回归法构造惩罚函数,将历史1240个交易日内的57个参数变量进行去共线性筛选,留下的50个参数变量具有低共线性、高相关度等特征,再将其当作输入变量输入LSTM神经网络模型中,输出变量是当日历史数据的下一日收盘价预测值。
PCA-LSTM模型方法及预测思路
通过PCA分析法,从57个原始数据提取出8个主成分用于LSTM模型输入,这8个主成分因子分别以不同的参数系数囊括了57个历史数据的信息,显著地精简了神经网络模型输入端,同时又不丢失重要数据信息。输出变量是当日历史数据的下一日收盘价预测值。
实证结果对比
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点