这篇文章讨论了自回归综合移动平均模型 (ARIMA) 和自回归条件异方差模型 (GARCH) 及其在股票市场预测中的应用。
一个 ARMA (AutoRegressive-Moving Average)“) 有两部分,AR(p)部分和MA(q)部分,表示如下
介绍
(1)检验收益率序列是否平稳,根据自相关性建立合适的均值方程,如ARMA模型,描述收益率如何随时间变化,根据拟合的模型和实际值,得到残差序列。
(2)对拟合的均值方程得到的残差序列进行ARCH效应检验,即检验收益率围绕均值的偏差是否时大时小。检验序列是否具有ARCH效应的方法有两种:Ljung-Box检验和LM检验。
(3)若ARCH效应在统计上显著,则需要再设定一个波动率模型来刻画波动率的动态变化。
(4)对均值方差和波动率方差进行联合估计,即假设实际数据服从前面设定的均值方差和波动率方差后,对均值方差和波动率方差中的参数进行估计,并得到估计的误差。
(5)对拟合的模型进行检验。如果估计结果(残差项)不满足模型本身的假设,则模型的可用性较差。
其中 L 是滞后算子,ϵi 是白噪声。它可以通过 Box-Jenkins method. 我们可能会使用 PACF 绘制识别 AR 滞后阶数 p,和 ACF 图以识别 MA 滞后阶数 q;或使用信息,例如 AIC 和 BIC 做模型选择。
ARIMA (AutoRegressive Integrated Moving Average)“) 是 ARMA 的拓展,通过为非平稳过程添加阶数为 d 的积分部分。
ARIMA是针对价格水平或收益率的,而GARCH(广义自回归条件异方差)则试图对波动率或收益率平方的聚类进行建模。它将ARMA项扩展到方差方面。
作为随机波动率模型的离散版本,GARCH也能捕捉到股票市场的厚尾效应。因此,将ARIMA和GARCH结合起来,预计在模拟股票价格时比单独一个模型更适合。在这篇文章中,我们将把它们应用于标普500指数的价格。
ARIMA
首先,众所周知,股票价格不是平稳的;而收益可能是平稳的。ADF单位根检验结果。
# 价格是已知的非平稳的;收益是平稳的 import adfuller rsut = aduler(close) prnt(f'ADF Satitic: {reslt\[\]}, pale: {rslt1\]}') # null 假设:单位根存在;不能拒绝 null。 relt = adfler(histet) prnt(f'ADF Statistic: {reut\[0\]}, pvaue: {rslt\[1\]}') # 拒绝单位根的空假设 ==> 平稳
收益序列的 ADF p 值为 0,拒绝单位根的原假设。因此,我们在 ARIMA(p, d, q) 中接受 d=1,下一步是识别滞后 p 和 q。ACF 和 PACF 图表明滞后最多 35 个工作日。如果我们按照图表进行拟合,将有太多参数无法拟合。一种解决方案是使用每周或每月图表。在这里,我们将最大滞后时间限制为 5 天,并使用 AIC 选择最佳模型。
for p in rage(6): for q in rage(6): ry: mft = fit(disp=0) ic\[(p, q)\] = fiaic except: pass
下一步是拟合模型并通过残差统计评估模型拟合。残差仍然显示出一些自相关,并且没有通过正态性检验。由于滞后阶数限制,这在某种程度上是预料之中的。
尽管如此,让我们继续最后一步并使用模型进行预测。下面比较了对测试集的收益率预测和实际收益率。
随时关注您喜欢的主题
收益率预测以 0% 为中心,置信区间在 ±2% 之间。结果并不是特别令人印象深刻。毕竟,市场正在经历一个动荡的阶段,在预测时间窗口内甚至下跌了 6%。
GARCH
让我们看看加入GARCH效果是否会产生更好的结果。建模过程类似于ARIMA:首先识别滞后阶数;然后拟合模型并评估残差,最后如果模型令人满意,就用它来预测。
我们将 AR 滞后和 GARCH 滞后都限制为小于 5。结果最优阶为 (4,2,2)。
for l in rage(5): for p in rage(1, 5): for q in rage(1, 5): try: mdl = arch(is_et, man='ARX', vol='Garch', p=p, o=0, q=q, dist='Nomal') fit(last_obs=spldat) dc_ic\[(l, p, q)\] =aic except: pass
接下来让我们根据选择的最佳参数来拟合模型,如下所示。证实了均值模型是AR(4),方差模型是GARCH(2, 2)。一些系数在统计上不显着。
请注意,这里是单步滚动预测,应该比静态的多期预测要好。
最后但并非最不重要的是,预测区间从±4%下降到±3%,然后又反弹到±5%,这清楚地表明了模型的波动性集群。
趋势平稳和差分平稳
趋势平稳,即确定性趋势,具有确定性均值趋势。相反,差分平稳具有随机趋势。前者可以用OLS估计,后者需要先求差分。
考虑一个简单的过程
如果 φ<1,则过程是趋势平稳的;也就是说,如果我们减去趋势 at,则过程变得平稳。若φ=1,则差分平稳。将第二个方程代入第一个方程很容易看出随机性,并将方程改写为
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!