基于机器学习的已实现波动率预测
Based on Machine Learning for Realized Volatility Prediction
摘要: 选取上证综指5分钟高频数据,以高频价格序列的强记忆性为切入点,构建基于高频价格序列的长短期记忆模型LSTM。基于已实现波动率(RV)理论计算出真实波动率的预测值,选择了效果优异的随机森林模型、弹性网络模型以及直接对波动率建模的LSTM模型进行对比分析,以找出表现较优的预测模型,以期为深度学习在波动率的预测上提供了新思路。研究发现:基于高频价格序列的LSTM波动率预测模型的预测能力明显优于其他两种模型,充分发挥了长短期记忆模型的优势。
Abstract: Selecting the 5-minute high-frequency data of the Shanghai Composite Index and taking the strong memory of the high-frequency price sequence as the entry point, a Long Short-Term Memory (LSTM) model based on the high-frequency price sequence was constructed. Based on the realized volatility (RV) theory, the predicted values of the real volatility were calculated. The random forest model with excellent results, the elastic network model, and the LSTM model directly modeling the volatility were selected for comparative analysis to identify the better-performing prediction model, with the aim of providing new ideas for deep learning in volatility prediction. It was found that the prediction ability of the LSTM volatility prediction model based on the high-frequency price sequence was significantly better than the other two models, giving full play to the advantages of the long short-term memory model.
文章引用:蔡奉珊. 基于机器学习的已实现波动率预测[J]. 电子商务评论, 2024, 13(4): 4751-4761. https://doi.org/10.12677/ecl.2024.1341700

1. 引言

能否对波动率进行准确计量和预测,关系到中国股票市场资产定价、投资组合的构建、以及风险管理等金融策略。由于实证中的波动率通常具有波动聚集性,传统模型能够比较好地刻画这一现象,比如GARCH族模型和SV族模型。但是,其特性适用于低频数据,难以充分挖掘日内交易信息的价值,对于时间序列的预测性还有较大的提升空间[1]。受益于数字技术的发展和金融市场的发展,高频数据获取成本有所下降且包含更多日内交易信息,适合用于预测和跟踪更加复杂的市场波动率。因此,如何有效利用高频数据的信息进行波动率建模成为金融领域新的研究热点。

由Hochreiter提出的长短期记忆(LSTM)模型,借助记忆细胞保留、修改或访问内部状态,使网络处理长序列数据时更加流畅和有效。通过特有的调节结构,能够很好地解决RNN训练过程中出现的梯度爆炸、梯度消失等问题[2]。因此,本文将基于上证综指的高频数据来预测已实现波动率,模型选择LSTM模型。实证部分将已实现波动率与预测波动率进行对比,以便评估模型的预测准确度。本文为中国股票市场的风险管理提供了新的路径,帮助投资者更加灵活地应对市场风险,更为精准地预测市场走势。

本文结构如下:第二部分对已实现波动率的模型进行文献综述;第三部分将描述本文构建的已实现波动率模型和相关的研究方法;第四部分为本文的重点部分,将会详细介绍波动率模型预测以及不同模型预测性能的评价和比较;最后给出本文的主要研究结论。

2. 文献综述

2.1. 国外相关研究

自Bollerslev (1998) [3]提出已实现波动率的新概念后,许多国外学者开始将其用于波动预测研究,以评估不同波动率模型的预测精度。常见的GARCH模型正是基于金融时间序列的异方差性和波动聚集,对波动率进行预测。该模型相对比较简单,也不断被推广和发展中。Hansen (2005) [4]提出了一种用于预测能力的新测试,研究发现了使用随机漫步和回归进行预测时,少数异常值会增加预测的不稳定性。Corsi (2009) [5]认为市场会以不同的频率引起波动,并互相影响,基于异质市场假说,改善并提出了已实现波动率的异质自回归模型(HAR-RV模型)。该模型独立但联合地对日、周、月波动率进行建模,虽然是一种比较简单的回归模型,但是它通过简单加总发现了已实现波动率的长期依赖性。在预测波动率方面,该模型更优于一些更复杂的模型,如ARFIMA、GARCH等模型。

HAR类模型被广泛应用,尽管表现出色的预测能力,依然无法满足一些更复杂的情况。研究表明,金融波动率会受多种因素的影响,如已实现波动率的滞后效应和跳跃成分。在不同的市场和预测期间,上述的潜在因素对波动率的预测能力都会变化[1]。此后,基于HAR-RV模型,越来越多的学者根据复杂的情况优化了波动率预测模型,旨在进一步提升金融波动率的预测准确性。例如,Hemanth P K (2017) [6]对LSTM模型进行了理论探讨、应用分析及其在波动率预测中的评论。Bolin L (2021) [7]则利用股民文本评论信息构建了整合评论影响的文本情感因子,进而将基于高频财务数据的其他交易信息与深度学习模型长短期记忆(LSTM)相结合,进行波动率预测。研究结果显示,在LSTM模型框架下,情绪指数的引入显著提升了波动率预测的准确性,相较于传统的多步预测计量模型,LSTM模型表现出更强的稳健性。

2.2. 国内相关研究

近年来,随着股票市场的不断发展和扩展,越来越多的研究者开始关注高频金融时间序列在金融预测、风险管理和交易策略等领域中的应用。一些学者选择使用上证综指或其他指数的日内和5分钟的高频数据,来比较不同模型对已实现波动率的刻画和预测能力,已实现波动率是高频金融数据的一种新的波动率度量方法,如徐正国和张世英(2004) [8]、魏宇(2010) [9]等研究。陈卫华(2018) [10]首次运用LSTM模型对已实现波动率进行预测,因为该模型在深度学习中擅长刻画长记忆性。文章通过检验了20种模型对上证综指波动率的预测能力,发现深度学习在5种损失函数下预测精度都排第一,受关键参数历史天数变化影响较小,在大多数历史天数下,LSTM模型在检验模型中预测效果依旧最好,而且随着历史天数的增加,模型的预测效果趋于稳定。

此外,研究者不再仅局限于股票市场,而是开始转向期货市场的研究。例如,魏宇(2010) [11]利用沪深300股指期货的5分钟高频数据进行了仿真交易,结果显示,已实现波动率模型以及加入附加解释变量的扩展随机波动模型在波动率预测精度上表现较好,而传统的GARCH模型及其扩展对期货市场的预测能力较弱。然而,李航和何枫(2017) [12]则认为,相较于基于期货数据构建的模型,基于现货数据构建的模型具有更高的预测精度,特别是对波动率的微观结构噪声和季节效应进行了调整的Ln RV-AR(FI)MA-gjr GARCH-snorm模型效果最佳。最后,王苏生、王俊博和许桐桐等(2018) [13]的研究发现,高频股指期货的日内收益率显示明显的波动率聚集和条件异方差现象,但不存在尖峰厚尾现象,其收益率序列分布符合有偏正态分布。研究结果表明,ARMA(1,2)-GARCH(1,1)-SN模型可以有效刻画股指期货高频日内波动的特征,波动率预测能够较好地反映这些特征。

2.3. 相关文献评述

根据国内外学者对于已实现波动率的研究成果,可以发现涉及数据选取从低频数据过渡到高频数据,模型适用范围也越来越广。长期以来,国外学者对股票市场的波动率进行了广泛研究。而国内的研究相对较晚,主要受到我国金融市场发展较为缓慢的影响。在股票市场波动性的研究中,国内外学者不断探索,从最早的ARCH模型扩展到GARCH族模型,并且随着人工智能技术的进步,开始应用神经网络方法分析股票市场的波动性。根据学者的研究成果,深度学习在处理非线性非平稳的时间序列数据中具有显著优势,特别是LSTM模型因其自身特性在时间序列数据预测方面得到广泛应用。因此,本文将在前人研究的基础上进一步探讨LSTM模型的预测能力,以长记忆性的股指价格序列为切入点,计算股指波动率的预测值,并将其与随机森林和弹性网络模型的预测结果进行对比,以找出表现较优的预测模型,为深度学习在波动率的预测上提供了新思路;

3. 模型与方法

3.1. 波动率计算方法

本文沿用Anderson和Bollerslev (1998) [3]的方法来计算波动率,该方法对金融资产的日内高频数据特征进行研究,能够有效地降低波动率的误差和噪音。用第t天内高频收益率的平方和代表已实现波动率收益率(realized volatility, RV),并给出了相应的计算过程公式:

t天的日收益率表示为:

R t =100( ln P t,48 ln P t1,48 ) (1)

t天5分钟高频收益率表示为:

R t =100( ln P t,d ln P t1,d1 ) (2)

t天的已实现波动率表示为:

R V t = d=1 48 R t.d 2 (3)

该方法假设交易时间段数连续的,但是现实中的股票市场的交易活动并不是24小时不间断。我国的股票市场划分为集合竞价时间和连续竞价时间,所以想要准确测算上证综指的已实现波动率,需要划分交易时间段和非交易时间段。本文参照学者的方法,采用某种尺度参数 λ 0 对已实现波动率进行调整,确定最终的波动率计算方式为:

R V t = λ 0 R V t (4)

其中,尺度参数 λ 0 记为:

λ 0 = N 1 t=1 N R t 2 N 1 t=1 N R V t (5)

3.2. 长短期记忆神经网络

循环神经网络(RNN)是一种常用来处理序列数据的深度学习模型,存在长期依赖问题,因此本文选用长短期记忆(LSTM)模型,该模型特别擅长学习、存储和使用长期信息,能够很好地解决RNN训练过程中出现的梯度爆炸、梯度消失等问题。标准的RNN的重复模块结构比较简单,比如单独的tanh层或sigmoid层。LSTM核心是细胞状态,可以保留、修改或访问内部状态,使网络处理长序列数据时更加流畅和有效。LSTM相比RNN结构更复杂,其调节结构被形象称之为门,分别是选择性忘掉过去无用信息的遗忘门(forgetgate),负责补充有效信息的输入门(inputgate)和形成当前信息的输出门(outputgate)。

1) 遗忘门:读取在t时刻输入的 X t t1 时刻的记忆单元状态信息 h t1 ,然后会通过sigmoid函数得到输出值 f t ,值的大小会决定是否保留,总的来说取值趋近于0的会被遗忘,趋近于1的会被保留。

f t =σ( W f [ h t1 , X t ]+ b f ) (6)

其中, W f 是权重, b f 是截距项, σ 是sigmoid函数。

2) 输入门:主要补充并存放新的有效信息。第一步计算输入门的值 i t ,第二步计算t时刻的候选准备记忆单元信息 C ˜ t ,最后一步将原细胞状态与新的信息进行合并,形成新的细胞状态:

i t =σ( W i [ h t1 , X t ]+ b i ) (7)

C ˜ t =tanh( W c [ h t1 , X t ]+ b c ) (8)

C t = f t C t1 + i t C ˜ t (9)

其中, i t 介于0~1,tanh为正切激励函数, C t1 表示( t1 )时刻的细胞状态值, C ˜ t 表示从t时刻输入信息中提取出来的要记录的信息, C t 表示经过更新的细胞状态值。

3) 输出门:当信息抵达输出门,在记忆单元状态再经过tanh函数变换,最后形成t时刻的记忆单元输出信息:

O t =σ( W o [ h t1 , X t ]+ b o ) (10)

h t = O t tanh( C t ) (11)

LSTM适用于多种问题类型,比如自然语言处理(NLP)等。该模型一方面可以用于实现语言建模、文本分类和命名实体识别,以及时间序列预测,如股票价格、天气和交通流量预测等任务。另一方面,它还可用于音频处理,如语音识别和语音合成,以及视频分析,例如行为识别和视频描述生成。

该模式还适合于时间序列建模,因为其设计初衷就是为了应对序列数据的特性,如时间序列存在的顺序性、时间间隔性和无法避免的长期依赖性。在时间序列分析中,事件间可能存在长期依赖关系,传统的RNN由于梯度消失问题难以捕捉这些关系,而LSTM结构通过记忆细胞有效处理这种长期依赖。时间序列预测的关键在于有效记忆过去信息,而LSTM的记忆细胞提供了存储和检索长期信息的能力。LSTM模型与其他神经网络结构(如CNN)结合使用,适用于多变量时间序列或序列生成等复杂任务,展现了其在时间序列建模中的灵活性和广泛适用性。综上所述,LSTM的设计和特性非常适合时间序列建模,尤其是当所用数据具有长期依赖关系时。

LSTM的优点在于其门控机制能有效捕捉和处理长期依赖关系,适合处理文本、时间序列和音频等多种数据类型。此模型具备灵活性,可以通过调整网络结构和超参数来适应不同的问题和数据。LSTM的缺点在于其复杂性,使得训练和调优需投入大量计算资源和时间。该模型适用于大数据集,需要比较多的数据进行训练。如果运行时使用小数据集,LSTM容易过拟合,需要进行有效的正则化和调参。在准备输入数据时,应用LSTM需要适当进行特征工程和超参数调优,来达到最佳性能。

4. 实证分析

4.1. 数据的选取及分析

为了减少市场微观结构的干扰影响,大部分文献常采用5分钟的高频数据来计算波动率。因此,本研究选用了上证综指的5分钟高频数据作为已实现波动率的计算基础,时间跨度从2021年1月4日至2023年12月31日,共728个交易日。数据来源于Wind数据库。因为上海证券交易所股市交易时间为每周一到周五上午时段9:30~11:30,下午时段13:00~15:00,周六、周日及公告的休市日不交易。以5分钟的采样频率进行计算,交易日日内可获得48个高频股价数据。研究样本在样本期内总共产生34,896个高频数据。

图1可以观察到,价格序列呈现出非平稳的特征,因此无法适用于传统的波动率模型,如Garch族或HAR族。进一步对价格序列和已实现波动率序列进行描述性统计分析,具体结果见表1。从中可以从表1看出,价格序列显著表现出尖峰厚尾特征,不符合正态分布假设。

用单位根检验方法中ADF检验对上证综指价格和收益率序列进行分析,结果如表2

样本区间内的上证综指收盘价格和波动率分布,如图1图2所示,收盘价格序列存在单位根,表明其为非平稳时间序列,而波动率呈现明显的不对称性。

Table 1. Statistical tests of price series and realized volatility series

1. 价格序列和已实现波动率序列的统计性检验

均值

标准差

偏度

峰度

最大值

最小值

Price

3313.44

201.46

0.02

−1.10

3720.48

2868.64

RV

0.0069

0.0027

2.0095

6.9977

0.0239

0.0028

Table 2. ADF test of price series and realized volatility series

2. 价格序列和已实现波动率序列的ADF检验

ADF

P值

Price

−1.6517

0.4562

RV

−5.0095

2.1254e−05

Figure 1. Shanghai composite index 2021~2023 closing price series

1. 上证综指2021~2023年收盘价格序列

Figure 2. Volatility distribution of Shanghai composite index from 2021 to 2023

2. 上证综指2021~2023年的波动率分布

4.2. LSTM模型构建

4.2.1. 预测模型

本文采用Win10系统进行模型编译,采用LSTM模型进行相关的构建和训练。实证研究主要运用基于Google公司开发的Tensordlow2.0开源平台,采用Pyton3.7来编写程序,使用深度学习库中MinMaxScaler函数搭建RNN的结构。通过初始化变量和拟合参数,最终确定的深度学习模型结构为4层,分别是模型输人层、LSTM隐藏层、Dense全连接层和模型输出层。

4.2.2. 预测思路

采取单步预测法,设定时间区间为2021年01月至2023年12月,具体预测方法是:

(1) 设定时间步长t,将前t个样本的已实现波动率作为模型的输入,以获取第t + 1个时刻的预测值。这一过程涉及到对LSTM模型的参数进行估计,通常通过多次迭代优化来达到最佳拟合效果。

(2) 一旦获得了第t + 1时刻的预测值,时间步长维持不变,即继续使用第2个到第t + 1个样本的数据重新估计模型的参数。这样,我们可以得到第t + 2时刻的预测值。

(3) 以此类推反复重复上述步骤,以便得到未来的预测值。这种方法允许模型在每个时间步中动态更新,从而捕捉时间序列中的变化和趋势。

4.2.3. 参数确定

本文使用Win10系统进行模型编译,通过深度学习库中的MinMaxScaler函数对上证指数收盘价进行标准化处理。具体的实验流程包括:建立具有三层隐藏层的LSTM神经网络模型,以48天为时间窗口进行滑动;随后,将数据集划分为训练集和验证集,利用多层LSTM网络预测已实现的波动率,其中前80%的数据用于训练,后20%用于交叉验证;接着,通过初始化变量、设置优化器以及遍历迭代训练来拟合模型参数,梯度下降优化函数为Adam算法函数,以适应模型的自适应学习率;针对不同频率的数据特性,确定了训练时间步长为48,学习率为0.005,批处理大小为32,并进行了50次迭代训练;最后,利用训练集数据对模型进行训练,使用上证指数收盘价验证集数据来评估预测模型的拟合效果。

接下来将对LSTM参数选择问题展开具体讨论。与传统神经网络相比,LSTM训练速度较慢且参数众多,单靠试验法难以有效确定各参数值。因此,本文结合前人研究成果,制定了以下参数选择方法以消除参数对实证结果的影响。首先是时间步的选择,即用于预测下一时刻的历史数据长度。据陈卫华(2018)的研究显示[10],LSTM对时间步的变化并不敏感,为充分考虑每天产生48个高频价格数据,本研究设定时间步为48。其次是隐藏层的层数,过少会影响模型预测能力,过多则增加训练难度和过拟合风险。依据Karpathy (2005)的建议[14],本文将LSTM模型的隐藏层设置为3层,配合输入层和输出层的全连接结构。

随后是每层隐藏层神经元的数量选择。基于传统神经网络经验公式,并结合试验结果,本文将每层LSTM的神经元个数设定为50,以达到最小化损失函数的效果。训练批次大小对模型训练的影响也显著。通过多次试验,本研究确定将训练批次设置为32,以获得较低的损失函数值。学习率是调整网络权重更新速度的关键参数,本文在确定了最优网络结构和训练批次后,将学习率设定为0.005,以平衡训练效率和模型预测精度。迭代次数的选择,即完整遍历所有数据的周期。通过损失函数变化曲线分析,如图3所示,本文设定最佳迭代次数为50,以避免欠拟合或过拟合问题的发生。最后,为应对过拟合风险,本文采用了Dropout方法,设置Dropout率为0.5,以提升模型的泛化能力。

4.2.4. 模型评价

本文计算LSTM模型的评价指标,包括均方误差(MSE)、平均绝对误差(MAE)。模型的预测是否拟合较好,可以从计算出来的评价指标数值看出,如果数值越小,则表明LSTM模型的预测波动率与真实波动率之间的偏离程度越低。最后,选用擅长学习、存储和使用长期信息的LSTM模型,比较详细介绍该模型的实证结果,并比较了随机森林和弹性网络在波动率预测精度上的改进效果。

Figure 3. The relationship between the number of hidden layer neurons and loss function

3. 隐层神经元个数与损失函数关系图

4.3. 波动率预测结果及比较分析

4.3.1. 波动率模型预测结果

计算出的波动率预测值与实际值的图像如图4所示,将数据的前80%划分为训练集,后20%为验证集。从图4可以看出模型拟合度相对较好,与实际的波动率有所不同,但趋势大体上一致。原因在于划分后数据样本过少,需要从数据源头获取更多数据来提高模型的拟合度和精准性。

Figure 4. The forecast results of the data set after Shanghai index division

4. 上证指数划分数据集的预测结果

图5可知,训练集和验证集的损失曲线大趋势向下,LSTM模型的效果还比较不错。但单从损失函数是无法评估预测模型效果的,因此还需要从拟合程度及误差情况来对模型下效果进行评价。

Figure 5. Loss function of training set and validation set of LSTM model

5. LSTM模型的训练集与验证集的损失函数

4.3.2. 波动率模型预测精度的检验结果

从实证结果可以得知,先利用LSTM模型预测收盘价格,进而计算出波动率,这一过程较准确地反映了真实波动率。仅依靠LSTM模型自身的损失函数无法充分评估波动率预测的效果。鉴于此,为了全面比较不同波动率模型的预测结果,本文选择了效果优异的随机森林模型、弹性网络模型以及直接对波动率建模的LSTM模型进行对比分析,具体的统计计算结果见表3表3给出了在调整参数取最优值情况下,评价指标MSE和MAE对各个预测模型的样本外预测精度评价结果,有助于评估各模型的相对优劣。

Table 3. Comparison of prediction performance evaluation indexes of different models

3. 不同模型预测性能评价指标比较

MSE

MAE

LSTM

训练集

0.05

0.19

测试集

0.01

0.11

rf_model

7.4794e−06

0.0020

elastic_net

5.7271e−06

0.0018

总体来看,LSTM模型在实证检验中展现出良好的预测精度和准确性,且对于未来波动率的测算也比较合理,见图6。随机森林和弹性网络也表现良好,但是划分测试集和训练集以后,模型预测质量也有所下降。

5. 结论

实证结果表明使用LSTM模型能够较好地对已实现波动率进行建模。综上所述,LSTM模型在实证检验中展现出良好的预测精度和准确性,充分利用了高频价格序列的记忆特性,并具备较强的特征提取能力和稳健的预测效果,有效发挥了其在长期时间序列预测中的优势。因此,对于各种波动率预测模型能力的评估应综合考虑多方面因素,不能单纯认为复杂模型一定比简单模型更为有效。

Figure 6. Prediction of future volatility

6. 未来波动率的预测

本文首先简要地介绍了波动率预测模型的发展,选择了LSTM模型;其次,以上证综指为研究对象,用LSTM模型进行建模;最后,选用随机森林模型、弹性网络模型和LSTM,对这3种模型进行了样本外预测,分别根据损失函数法和构建的评价指标对模型的预测能力进行了评价,发现直接对波动率建模,模型有最强的预测能力,提高了对波动率的预测能力。研究中存在的问题:本文在选择波动率预测模型时,主要集中于LSTM模型的应用,应该采用多个模型进行比较。本文的样本只选择了上证综指,可以考虑其他指数是否更适合用LSTM模型。

参考文献

[1] 杨科, 张洲深, 田凤平. 高频数据环境下我国股票市场的波动率预测——基于机器学习和HAR模型的融合研究[J]. 计量经济学报, 2023, 3(3): 886-904.
[2] Hochreiter, S. and Schmidhuber, J. (1997) Long Short-Term Memory. Neural Computation, 9, 1735-1780.
https://doi.org/10.1162/neco.1997.9.8.1735
[3] Andersen, T.G. and Bollerslev, T. (1998) Answering the Skeptics: Yes, Standard Volatility Models Do Provide Accurate Forecasts. International Economic Review, 39, 885-905.
https://doi.org/10.2307/2527343
[4] Hansen, P.R. (2005) A Test for Superior Predictive Ability. Journal of Business & Economic Statistics, 23, 365-380.
https://doi.org/10.1198/073500105000000063
[5] Corsi, F. (2008) A Simple Approximate Long-Memory Model of Realized Volatility. Journal of Financial Econometrics, 7, 174-196.
https://doi.org/10.1093/jjfinec/nbp001
[6] Kumar, P.H. and Patil, S.B. (2017) A Hybrid Regression and Deep Learning LSTM Based Technique for Predicting Volatility Index (VIX) Direction of Change (Trend). Indian Journal of Science and Technology, 11, 1-9.
https://doi.org/10.17485/ijst/2018/v11i47/138080
[7] Lei, B., Liu, Z. and Song, Y. (2021) On Stock Volatility Forecasting Based on Text Mining and Deep Learning under High‐frequency Data. Journal of Forecasting, 40, 1596-1610.
https://doi.org/10.1002/for.2794
[8] 徐正国, 张世英. 调整“已实现”波动率与GARCH及SV模型对波动的预测能力的比较研究[J]. 系统工程, 2004(8): 60-63.
[9] 魏宇. 中国股票市场的最优波动率预测模型研究——基于沪深300指数高频数据的实证分析[J]. 管理学报, 2010, 7(6): 936-942.
[10] 陈卫华. 基于深度学习的上证综指波动率预测效果比较研究[J]. 统计与信息论坛, 2018, 33(5): 99-106.
[11] 魏宇. 沪深300股指期货的波动率预测模型研究[J]. 管理科学学报, 2010, 13(2): 66-76.
[12] 李航, 何枫. 沪深300波动率预测模型研究: 基于中国股票和期货市场高频数据分析[J]. 广义虚拟经济研究, 2017, 8(4): 88-96.
[13] 王苏生, 王俊博, 许桐桐, 等. 基于ARMA-GARCH-SN模型的沪深300股指期货日内波动率研究与预测[J]. 运筹与管理, 2018, 27(4): 153-161.
[14] Karpathy, A., Johnson, J. and Li, F. (2015) Visualizing and Understanding Recurrent Networks.