1. 引言
随着现代化进程与高质量发展的不断推进,我国股票市场也在向好发展与完善,金融领域的相关研究也主要围绕股票价格的波动规律进行分析。Andersen [1] (1998)用高频数据所得的“已实现”波动率代替传统的金融资产日收益率,从而提高对于股票市场波动情况评估的精确性与准确性,Markowitz [2] (1958)将波动率矩阵运用于投资组合的评估研究中,在二维分析中起到了不可或缺的作用。这些研究成果不仅对金融市场的理论研究提供了新的思路和工具,而且对实际投资决策也具有重要的参考价值。在他们研究的基础上,人们对于波动率的探究时刻没有停止,基于高频数据的波动率建模将继续成为金融市场研究中的重要方向之一。
张量分解的应用涉及很多领域,最初Tucker [3] (1963)将张量相关理论应用于心理测验学,Appellof和Davidson [4] (1981)首次将张量分解应用于计算化学中,并在几年之后,将张量分解应用在物理分离技术中,取得了不错的效果,从这以后,张量分解在化学计量学与物理学领域开始被广泛使用。此后,张量分解涉及到的领域越来越多,比如在代数学中,Knuth [5] (1997)利用张量分解对双线性形式的分解进行研究,在信号处理中,Sidiropoulos、Bro和Giannakis [6] (2000)通过张量分解将传感器进行阵列处理,同时与并行因子分析相联系,提高了传感器的识别准确率。在神经学中,Beckmann [7] (2005)在真实的FMRI数据上证明了张量PICA方法能够提取合理模式,并可以帮助解释和优化组FMRI研究。在数据处理中,Acar E [8] (2006)使用多种张量分解方法进行数据挖掘。除此之外,张量分解也应用于图像处理、计算机视觉、金融等领域,基于张量分解的优点与可行性,本文将借助张量分解这一工具探究金融资产的波动率。
2. CP-HAR模型构建
2.1. HAR-RV模型
Muller [9] 等(1993)提出了HAR模型的理论基础——异质性市场假说,其认为投资者在投资决策中存在着异质性,即不同的投资者在资产的估值、投资时间、持有期限和风险偏好等方面存在差异。在异质性市场假说中,由于投资者存在差异,因此同一资产的价格在不同的投资者之间会存在差异。这种差异可能是由于不同的信息、分析方法或心理因素造成的,也会导致市场价格的不稳定性,同时也为一些投资者创造了利润获得的机会。随着该领域研究的推进,Corsi [10] (2009)基于异质性市场假说提出了异质性自回归模型并研究了其在实现波动率预测中的应用。该模型包括了三个不同频率的收益率序列:高频率、中频率、低频率。高频率收益率是指每日收益率,反映了短期市场波动情况,具有很强的噪声和随机性;中频率收益率指每周或每月的收益率,反映了市场在较短时间内的变化趋势,具有一定的预测能力;低频率收益率是指每季度或每年的收益率,反映市场的长期趋势及结构性变化,具有较强的预测能力。
HAR-RV模型是一种应用于金融市场波动率预测的模型,其理论基础可以从四个方面来概括:
1) 已实现波动率
HAR-RV模型基于已实现波动率(Realized Volatility, RV),即将一段时间内的高频率收益率序列平方求和后除去时间长度得到的波动率指标。相对于传统的波动率指标(如对数收益率的标准差),RV更加精确地反映了市场波动率的真实情况,因此被广泛应用于金融市场波动率预测。
2) 异质市场假说理论
HAR-RV模型还基于异质市场假说理论,即不同投资者在市场上的风险偏好和交易策略不同,导致市场上存在异质性特征。在HAR-RV模型中,将不同投资者对市场波动率的贡献看作异质性因素,从而更好地描述了市场波动率的动态特性。
3) 非真实长记忆性模型
HAR-RV模型还基于非真实长记忆性模型,即利用高阶自回归模型(如ARFIMA模型)来描述时间序列中的长程相关性,以更好地预测市场波动率。HAR-RV模型中的异质性自回归模型是一种具有非真实长记忆性的模型,它考虑了不同频率收益率序列的异质性特征,并可以更好地捕捉市场波动率的长期记忆性。
4) 最后,三种成份的随机可加连串波动的HAR-RV模型
基于异质市场的理论,日度已实现波动率通常会受到滞后一期的日度已实现波动率和同期的周度已实现波动率的影响。同样的,周度已实现波动率会受到滞后一期的周度已实现波动率及同期的月度已实现波动率的影响。而月度已实现波动率只受自身滞后一期的月度已实现波动率影响,表达式如下:
(1)
(2)
(3)
式(1)、(2)和(3)相加,同时将同类项合并,即可推出HAR-RV的一般形式:
(4)
其中
为常数项,
是日度已实现波动率,
是周度已实现波动率,
是月度已实现波动率。通常一周交易天数为5天,一月交易天数为22天,周度已实现波动率和月度已实现波动率计算方式如下:
(5)
(6)
2.2. CP-HAR模型构建流程
研究问题常用的是三阶张量,本文也在三阶张量的基础上构建CP-HAR模型。即对于指定的三阶张量
,进行CP分解将其分解为有限个秩一张量的和,达到数据降维的效果。对其中我们所需要探究的维度构建矩阵并利用HAR模型动态建模去学习观察具体结构。
从本文的角度出发,即用CP-HAR模型预测高频波动率矩阵,CP-HAR模型构建思路如图1:

Figure 1. CP-HAR construction process
图1. CP-HAR构建流程
具体构建方法如下:
首先,计算每天的高频波动率矩阵Σt,直到第T天的高频波动率矩阵ΣT,将得到的高频波动率矩阵Σ1,Σ2,……,ΣT按天数“堆积”,得到一个三阶张量
。
接着,通过交替最小二乘法对得到的三阶张量CP分解,可以得到A、B、C三个因子矩阵,若CP分解秩为N,则
,
,
。若定义
为矩阵A的列向量,则
是
的第t列。对刻画时间维度方向的因子矩阵A中T个时间序列方向向量
预测研究,即利用HAR模型对这T个时间序列的向量
进行动态自回归建模,得到F个预测向量
,这里的F也可看作预测的天数,预测向量
代表第f列的时间序列方向,即是下文式(4.7)中的
。将这F个预测向量
按顺序排列就得到矩阵D,其中
。
最后,由于张量中任意元素都是可以被表示出来,利用这一性质用预测得到的D矩阵与CP分解得到的B、C矩阵作为三个因子矩阵可以通过定义函数合并组成一个新的张量
,其中矩阵D代表新张量的时间序列方向。对于新的张量
,拆分来看就是F个
的高频波动率矩阵即为预测的高频波动率矩阵。
以上为CP-HAR模型的构建去预测高频波动率矩阵,本文选择每周的交易天数为5天,每月的交易天数为22天,即可写出CP-HAR模型的具体形式:
(7)
其中,
为
通过CP分解得到的因子矩阵A中第t个时间序列方向向量,那么
是第t + 1天的列向量。
为列常数项,Q1为1天的滞后系数矩阵,Q2为5天的滞后系数矩阵,Q3为22天的滞后系数矩阵,
为残差。
是第t天的列向量,
为过去5天平均列向量值,即代表一周的;
为过去22天的平均列向量值,即代表一个月的。
3. CP-HAR模型的计算
通过观察式(7),可知CP-HAR模型的计算重点在于对T个时间序列方向向量
以及对系数Q1,Q2,Q3和常数项的计算。
首先,对时间序列方向向量
的计算可以转化为对张量
进行CP分解后,得到的其中刻画时间维度方向的因子矩阵的计算,因此需要通过具体求解张量
的CP分解过程来得到我们想要的因子矩阵,本文用矩阵A代表时间维度方向的因子矩阵。
CP分解的求解首先要确定分解的秩1张量的个数,而张量的秩Rank-n近似无法渐进地得到。所以通过迭代的方法对R从1开始遍历直到找到一个合适的解。这需要定义一个损失函数loss,并在循环里套一个比较,即计算第二个R的时候的损失函数与第一个结果比较,一直重复下去,寻找一个损失函数值最小时的秩。
确定出分解的秩1张量的个数后,本文选取最常用的交替最小二乘法(ALS)求解,具体算法步骤如下(以N阶张量为例):
交替优化方法的核心思想是用非负矩阵里面的代价函数来衡量CP分解得到结果的相似度,针对本文的具体做法为:上文构建的三阶张量
,其分解之后会得到三个因子矩阵,为了找到这些因子矩阵,现找一个秩为R的张量
使其尽可能地和
接近,相当于求解无约束问题的式子:

其中
为:
(8)
固定其中两个矩阵,相当于回到了常见的线性最小二乘问题,假设矩阵B,C已经固定,对张量
做mode-1展开,即张量在第一个维度展开得到的矩阵,即求:

其中
的表达式为:
因此原问题变为:

计算的是F-范数,其中
的最优解为:
(9)
其中符号“
”为Moore-Penrose广义逆。
概括来说实现思路为:固定矩阵B、C,求解最优解A;接着固定矩阵A、C,求解最优解B;最后固定矩阵A、B,求解最优解C;并一直重复步骤1,2,3,直到满足了某个收敛条件算法为止,收敛条件可以是:① 目标函数损失值不再下降或者下降很少。② 因子矩阵不再变化或者变化很小。不过这正是交替最小二乘法相对来说较大的缺点,我们无法保证收敛到全局最小点,也无法保证是否为驻点,只能保证收敛到目标函数不再下降为止。
选取目标损失函数的值不再下降或者下降很少作为收敛条件算法,结合以上算法可以得到时间维度方向的因子矩阵A =
,若CP分解的秩为N,则
为N维的列向量。
具体CP分解过程如图2:
通过上图可以清晰地看出张量
通过CP分解得到了A、B、C三个因子矩阵,若这些因子矩阵的任意元素分别记为
,
,
,观察上图的黄色填充区域,则任意的元素
可以写成如下形式:
(10)
求出T个时间序列方向向量
之后,接下来重点对式(7)中Q1,Q2,Q3计算。设:
由于HAR类模型需要半年至一年的时间才能描述一个稳定的情况,如用第1天到第40天的数据预测第41天就会不稳定,由于存在22个冗余数据,所以本文选择222天的列向量
即0.8年作为移动窗口做样本内预测,即用1到222天的列向量去预测第223天的,2到223天的列向量去预测第224天的,至到最后一个列向量。这里采用最常用的最小二乘法(OLS)进行估计,求出相对应的参数Q以及常数项,一共可以得到T-222个预测模型,即得到F个预测向量
,这里F的数值就为T-222。算法步骤为:
预测出的T-222个
即为F个预测向量
,将这F个预测向量
按天数顺序排列得到矩阵D,其中
。利用合并函数将D矩阵与B、C矩阵组成一个新的张量
,具体算法如下:
4. CP-HAR模型实际数据分析
基于上文CP-HAR模型的构建与计算,本小节进行实际数据的分析。选取沪深300指数的成分股每5分钟高频数据,来源于JoinQuant,时间为2020年11月2日至2021年12月31日共287个交易日,由于我国股票(证券)市场正常交易日的营业时间为9:30~11:30、13:00~15:00,共计4小时的交易时间,按照5分钟的最小交易时间为单位进行划分,每天会得到48个有效数据,数据指标主要包括交易的每五分钟时间、交易日、每五分钟的开盘价格、每五分钟的收盘价格、交易数量等等。
首先,对沪深300的所有成分股进行筛选,将2020年11月2日至2021年12月31日期间停牌,或是上新等情况的股票,即有数据缺失的股票筛选掉,发现还剩272只成分股。把筛选后的272只成分股作为研究对象,在资本资产定价Fama-French三因子模型的基础上,取市值和账面市值比两个重要的解释因子,等比各分成为五份将所有的股票分为25组,以组为单位进行研究,通过市值加权的收益率来计算每组的已实现波动率,以及每组间的高频协方差波动率。这样分组之后的加权计算可以有效地改进组合风险被低估的影响,起到更加精细的作用。
通过JoinQuant获取每只股票的市值和账面市值比从而进行分组,由于具体分组的股票数据众多不便于观察,计算已实现波动率,得到市值加权后的每组2020年11月2日至2021年12月31日共287个交易日的5分钟高频波动率如下图3。

Figure 3. Realized volatility of each group
图3. 各组的已实现波动率
其中,β代表的是市值,Low-β到High-β即从左往右市值越来越高,Small-ME到High-ME即从上到下账面市值比越来越高,顺序是从上往下及从左向右,即第一列为group1到group5日已实现波动率,最后一列为group21到group25日已实现波动率,通过图表可以清楚地看出通过市值因子及账面市值比因子将所有股票细分为的25组,如group1包括代号002607、300033、300529、300595、600763、603486共六只股票,以此类推得到所有组中的成分股。
描述性统计如下表1:
通过上述表格,可以看出每组的股票个数差距不大,相对比较平均,多数占总数比在4%上下,其中第1组和第10组以及第24组的股票数量最少为6只,第25组股票数量最多为18只,极差为12;每组在总市值中的占比也呈现每五组为单位的增大趋势,符合所提到的账面市值比以及市值的分组顺序。
对分组后的股票,以每组为单位利用式(11)计算各组之间的高频协方差波动率,从而构建出高频波动率矩阵。一天得到一个25 × 25的高频波动率矩阵,287天共计287个高频波动率矩阵。
各组间的协方差波动率公式为:
(11)
其中,X,Y泛指代表的每两个组,t代表天数的时间,即t = 1,2,……,287;i代表一天中高频数据的时刻,每五分钟数据的情况下,i取1到48;
是每组中所有成分股用市值加权的收益率。
第1天到第287天的高频波动率矩阵为:
将算出的287个高频波动率矩阵以天数为顺序“堆”在一起构成一个三阶张量
,如图4。
张量的秩Rank-n近似无法渐进地得到,在
代入CP-HAR模型求解之前,先确定其CP分解秩,考虑到后续计算量和难度,本文从Rank-1到Rank-5中做比较并从中寻找最合适的Rank值,设迭代次数10000次,梯度lambda_1 = le − 4,学习率alpha = le − 4,每200次迭代显示一次代价函数,观察并比较各个Rank值不同迭代次数的代价函数的数值及其变化趋势,见图5。
观察上图,可以发现无论选择多少Rank的值,其损失函数值一开始都是随着迭代的次数而减少,减少的速度由Rank1到Rank5呈递增趋势;在迭代的前3000至4000次左右,Rank1到Rank5的损失值始终从大到小,在不断减少的过程中到达某一驻点,但无法保证具体的驻点数值,只能保证在收敛到损失函数不再下降为止。由于此图纵坐标单位的局限性,无法看到每个Rank值对应的驻点,只能模糊的看到损失函数在迭代大概五六千次到达驻点并稍有上升趋势,列出表格将具体数值记录下来。
表2统计各个Rank值的最小损失函数值和对应的迭代次数:

Table 2. Loss minimum function value
表2. loss最小函数值
通过表2,可以发现Rank3的最小损失函数值是最低的为6.90E-12,其次是Rank4为6.95E-12,与Rank3相差不大,Rank1与Rank2虽计算成本不高但是精确度不够好,再考虑后续建模的计算成本,所以本文选取的秩为3。
将构建的张量
代入CP-HAR模型求解,这里交替最小二乘法求解的R为3,设置的迭代次数为5800次、梯度lambda_1 = le − 4、学习率alpha = le − 4得出三个因子矩阵A、B、C (保留五位小数)以及65个预测模型,即Q1,Q2,Q3 (表3展示前15天的Q1)等参数,具体结果如下:

Table 3. Q1 value from the first 15 days (rounded to four decimal places in the table)
表3. 前15天的值Q1 (表中保留四位小数)
并得到通过CP-HAR模型预测的矩阵D (保留五位小数):
用B、C矩阵与预测得到的D矩阵作为三个因子矩阵通过定义一个合并函数组成一个新的三阶张量
,拆分来看就是65个25 × 25的高频波动率矩阵,如图6,即为CP-HAR模型预测的高频波动率矩阵。

Figure 6. Tensor split volatility matrix
图6. 张量拆分后波动率矩阵
预测后的65个高频波动率矩阵分别为:
5. CP-HAR模型的预测与总结
5.1. CP-HAR 模型的预测
本文选取常见的评价指标对CP-HAR模型的预测和拟合效果进行评价分析,评价的指标包括:均方根误差(Root Mean Squared Error, RMSE),平均绝对误差(Mean Absolute Percentage Error, MAE)、平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)以及可决系数R2,RMSE、MAE、MAPE越小,说明该模型的预测值与真实值越接近,预测效果越好。R2越接近1,则说明模型与样本观测值拟合的程度就越高。
CP-HAR模型得到的预测值与真实值都是25 × 25的波动率矩阵,对比65天的预测值与真实值误差,将这些矩阵按行拉直排列可以得到相对应共625行的行向量,将这些行向量的对应元素进行交叉误差验证。作为对比,通过式(4)对真实波动率矩阵的各个元素做自回归预测,同样选取0.8年作为滚动时间窗口做样本内预测,得到65个通过HAR-RV模型预测的高频波动率矩阵,同样地将HAR-RV模型预测的65个波动率矩阵中的对应元素与真实值进行误差验证。得到两个模型的评价指标值,具体如表4:
RMSE、MAE分别表示了数据的绝对误差情况,从绝对误差角度看CP-HAR模型相比于HAR-RV模型有着更小的绝对值预测误差;从相对误差的角度看,MAPE误差能够评估不同模型对于相同数据的拟合效果,较大的MAPE反映模型预测的结果相比于真实值有着更大的差距,通过上表可得出CP-HAR模型比HAR-RV模型减少了约5.4%的MAPE误差。从模型的拟合程度角度看,CP-HAR模型的可决系数R2明显好于HAR-RV模型,说明CP-HAR模型更好地拟合了样本值。综合比较四个评价指标,以及结合CP-HAR模型的可决系数,可以得出CP-HAR模型在预测高频波动矩阵上取得了不错的效果,相比于HAR-RV模型有着更精确的波动预测能力。
5.2. 本文总结
本文利用张量能够存储多维度信息且结构稳定等优点,并基于张量CP分解法在实际应用中的优势与可行性,使其与HAR-RV模型相结合提出CP-HAR模型预测高频波动率矩阵,即从一个不同的角度与方向预测高频波动率矩阵。实证研究表明:CP-HAR模型预测得到的高频波动率矩阵在预测效果的评价指标RMSE、MAE、MAPE以及R2上表现良好,即CP-HAR模型能够很好地预测高频波动率矩阵,相比于HAR-RV模型有着更精确的波动预测能力。