(江汉大学 人工智能学院,湖北 武汉 430056)
摘 要:经济的快速发展引发了各种理财产品的衍生,人们的理财方式也随之改变。越来越多的人不再局限于只将积蓄单一地存入银行,而是选择各种各样的理财产品。不同于银行存款有相对稳定的收益,这些理财产品往往被贴上高收益高风险的标签,股票就是其中一种方式。近年来,国内外有很多模型用来预测股票走势,如LSTM神经网络、ARIMA等模型。笔者用ARIMA模型研究某只股票近年的走势,并用R语言来实现预测未来一定时间的股票走势,预测最佳买入卖出点,为股民合理买卖股票提供一定的参考性。
关键词:ARIMA模型;股票预测;时间序列分析
0 引言
中国股票市场经过了近30年的发展,如今股票已经成为企业融资、个人投资的重要手段,对促进我国经济的发展起到了至关重要的作用。股票“虽然风险大、但是收益高”的特点吸引着无数股民。随着越来越多的人进入股票市场,股票市场越加高涨,人们对股票市场的关注度也越来越高。如何能在证券市场中提高投资的准确性、如何选择股票进行投资这两个问题显得尤为重要。尽管股市存在高风险、多变化,但是仍可以通过一系列相关的数据建立模型,预测股票走势,从而减小风险,以谋求最大的获益。时间序列分析是现代一种重要的统计分析方法,而ARIMA模型就是时间序列模型种类之一,它是目前最常用的拟合平稳序列的模型。本文所研究的股市数据虽然看起来捉摸不透、变化多端,但其长期K线的走势表明,股票市场中的股票价格本身存在一种循环现象,这也正是笔者应用ARIMA 模型的前提条件。因此应用ARIMA 模型分析预测股票行情是可行的、有意义的。
本文主要通过应用 ARIMA 时间序列分析模型对所选股票样本的收盘价这一指数进行模型识别、拟合以及检验,并运用所得到的拟合模型预测该股票收盘价短期的走势,对预测误差进行分析检验,判断模型是否可靠,同时检验预测效果。[1]
1 股票预测理论与方法
股票价格预测就是根据该支股票历年来的收盘价格,综合考虑可能影响其波动的各种因素,采用时间序列分析法,对其未来某一天或者某十天的收盘价进行估算预测。时间序列预测方法是将股票价格或者价格指数等作为一组观察值,按时间的顺序加以排列,构成统计的时间序列,通过建立合理的时间序列模型从而预测未来发展变化的规律和趋势。时间序列预测方法正与股票指数变化发展的随机性、时变性等特点相迎合,因此有较好的短期预测效果。现常用的时间序列分析法有自回归模型(AR)、移动平均模型(MA)及自回归移动(ARMA)平均模型等。而预测方法则有两种:一种是动态预测,该预测方法只能进行一个时间段的预测,由已有实际数据预测出第一时段的值之后,将第一时段的预测值代入时间序列,结合历史数据进行第二时段的预测,依此类推。缺陷是它对于长期预测可能会产生累计误差;另一种是静态预测,即用原序列的实际值来进行预测,只有当可以获得真实数据时才可以使用静态预测。[2]
2 数据处理
2.1获取数据
本文研究过程中所使用的数据是从股票数据网站上下载的某一只股票从2011年开始近10年来的收盘价等相关数据,数据真实可靠,没有缺失值和错误值,无需进行数据清洗。本文取2019-2020年间连续的365天股票收盘价组成时间序列xts作为训练组。取其后续10天股票收盘价作为对照组,以此来判断模型的预测能力。研究所运用的R语言具有较为强大的时间序列分析功能,若时间序列是平稳的,则可直接运用ARIMA模型,其表达式为ARIMA(p,q),其中p为自回归项数,q为移动平均项数。若时间序列是不平稳的,则所运用模型变为ARIMA(p,d,q),其中d表示差分的阶数。不同于平稳时间序列条件下的模型,该模型需要经过d阶差分,将非平稳的时间序列转化为平稳的时间序列。
2.2平稳性检验
平稳性是时间序列预测前的一个重要指标,通过平稳性检验的时间序列的均值和方差都不会发生明显变化,它能让时间序列有规律可循,并在未来一段时间依照原有的“惯性”继续下去。检验结果中的p值如果大于0.05,说明该序列存在单位根且该时间序列不稳定。此时要对此时间序列进行差分,使其序列平稳后,方可进行后续模型建立。对时间序列xts进行平稳性检验,测试得到的p值为0.01,说明该序列是平稳的,无需进行差分。[3]
2.3白噪声检验
白噪声检验,又称纯随机性检验,它的作用是检测拟合出来的ARIMA模型是否是优质模型,也就是检验时间序列中的数值的随机性的高低,是否具有规律性。如果检验的序列不是白噪声,就可以开始进行模型拟合,即确定ARIMA模型中系数p,d,q。反之,如果是白噪声,那就表示ARIMA模型不适合用来预测这个时间序列,运用此模型预测得到的结果可能和真实值相差甚远。在进行了平稳性检验的基础上,对时间序列xts进行白噪声检验,所得结果中的p值远小于0.05,也就是说此序列不是白噪声模型。即预测这只股票走势可以采取ARIMA模型,且将会得到一个较为吻合的结果。
3 ARIMA模型
3.1模型介绍
ARIMA 模型,即自回归差分移动平均模型,是由P.Box和G M.Jenkins最早提出来的。其原理是将一个不稳定的时间序列首先经过d阶差分平稳化,然后对差分后得到的稳定的时间序列利用自回归(AR(p))和移动平均模型(MA(q)),再通过样本自相关系数(ACF)和偏自相关系数(PCF)等一些数据对所要建立的模型进行判断,同时还列出了完善的建模、估计、检验和控制方法。[3]
假设是零均值的稳定时间序列,则其p阶自回归和q阶移动平均的ARIMA(p,q)公式为:
(1)
可简写为。
3.2确定ARIMA模型中的p,q
确定ARIMA模型中的p,q通常有两种方法:一种是凭对知识点的理解通过ACF函数图和PACF函数图自行判断p,q的值,另一种是通过软件的算法自动预测。而本文所研究的时间序列xts具有一定的季节性或者周期性,所以自行判断并通过对比找出最优ARIMA模型的效果一定程度上会比自动预测的效果更贴合实际。
通过自相关图并且按往常的经验来确定;这里的lag(滞后期),是需要依据SC或AIC等信息标准,通常越小越好。判断依据如下表2:
表 1 p、q判断依据
Table 1 p. q judgment basis
模型 | AR(p) | MA(q) | ARMA(p,q) |
ACF | 拖尾 | 第q个后截尾 | 拖尾 |
PACF | 第p个后截尾 | 拖尾 | 拖尾 |
3.3模型检验
通过画QQ图和它加线之后的拟合程度来判断时间序列xts的残差是不是服从正态分布的,接下来再对拟合模型的残差进行白噪声检验以此来判断残差之间是不是相关的。从结果中可以看到,残差是服从正态分布且p值大于0.05,说明残差之间是不相关的,即进行下一步的模型预测。
图2 拟合模型的QQ图 图3 未来十天股票收盘价预测图
Fig. 2 QQ diagram of fitting model Fig 3 Forecast image of stock closing price in the next ten days
3.4模型预测与检验
对时间序列xts进行预测其未来十天的股票收盘价并绘制其预测图像,结果如下图表2,3:
表 2 未来十天股票收盘价预测结果
Table 2 Forecast results of stock closing price in the next ten days
属性 | |||||
天数 | 366 | 367 | 368 | 369 | 370 |
收盘价 | 3437.044 | 3429.721 | 3423.516 | 3416.533 | 3410.402 |
天数 | 371 | 372 | 373 | 374 | 375 |
收盘价 | 3403.716 | 3397.684 | 3391.263 | 3385.349 | 3379.166 |
为了检测模型的预测能力,将预测组和对照组进行误差和相对误差计算,结果见下表6。其中:误差=对照组指数-预测组指数;相对误差=误差/对照组指数*100%。
表 3 误差和相对误差结果 表4 优化后的误差和相对误差结果
Table 3 Error and relative error results Table 4 Optimized error and relative error results
天数 | 对照组 | 预测组 | 误差 | 相对误差 |
366 | 3443.286 | 3437.044 | 6.2423 | 0.18% |
367 | 3414.619 | 3429.721 | -15.1024 | -0.44% |
368 | 3361.304 | 3423.516 | -62.2116 | -1.85% |
369 | 3210.099 | 3416.533 | -206.4344 | -6.43% |
370 | 3214.129 | 3410.402 | -196.2733 | -6.11% |
371 | 3314.149 | 3403.716 | -89.567 | -2.70% |
372 | 3320.895 | 3397.684 | -76.7893 | -2.31% |
373 | 3333.164 | 3391.263 | -58.0995 | -1.74% |
374 | 3325.11 | 3385.349 | -60.2388 | -1.81% |
375 | 3196.768 | 3379.166 | -182.3976 | -5.71% |
天数 | 对照组 | 预测组 | 误差 | 相对误差 |
731 | 3443.286 | 3452.583 | -9.2967 | -0.27% |
732 | 3414.619 | 3385.253 | 29.3656 | 0.86% |
733 | 3361.304 | 3402.648 | -41.3436 | -1.23% |
734 | 3210.099 | 3167.725 | 42.3736 | 1.32% |
735 | 3214.129 | 3237.592 | -23.4633 | -0.73% |
736 | 3314.149 | 3292.607 | 21.542 | 0.65% |
737 | 3320.895 | 3358.753 | -37.8583 | -1.14% |
738 | 3333.164 | 3288.499 | 44.6645 | 1.34% |
739 | 3325.11 | 3353.706 | -28.5958 | -0.86% |
740 | 3196.768 | 3218.187 | -21.4186 | -0.67% |
从表中能看出,预测组指数虽然与对照组指数在一定的差别,但已经能够很好地预测出其收盘价格的基本走势,并且大部分预测的比较精准,但仍存在几天的预测值的相对误差超过了5%,需要进一步对模型进行优化。
3.5模型优化
将训练组的数据由365个增加到了730个,然后再次进行预测得到结果,并再次计算其误差和相对误差,得到表7。从表7可以看出,相对误差全部都少于 2%,拟合程度非常高,进一步确认了 ARIMA 模型在短期预测中的准确性。
4 结束语
时间序列是预测股票短期走势变化的一个有效预测模型。笔者通过收集股票的历史价格数据,然后建立ARIMA时间序列模型,对该股票未来一段时间的价格进行了短期预测,期望可以给投资者在减小投资风险和增加投资收益上提供一定的参考性。文中实证分析说明了ARIMA时间序列模型是可以作为股票短期预测的理想模型,这个时间序列涵盖了所研究股价指数的百分之九十以上的信息,其拟合效果较好。因此ARIMA时间序列模型对掌握创业板股票的买卖时机以及规避风险具有一定的参考价值。
但本文研究所选用的股票并不能代表所有的股票,它只能代表部分涨幅具有一定规律性即时间序列具有白噪声这一类型的股票,所以在运用此模型预测前需要检验预测对象的时间序列是否具有白噪声,若是,则可用此模型进行预测。由此可见,此模型的适用范围存在局限性。关于模型的改进和优化,笔者认为可以选取不同类型的股票通过随机森林进行大量的训练,从而建立一个适用范围更广的股票预测模型。
参考文献
[1]王理峰,朱道元.有约束的多元线性回归模型的Minimax估计.重庆工商大学学报(自然科学版),2009,26(6).
[2]吴玉霞,温欣.基于ARIMA模型的短期股票价格预测.统计与决策,2016,23.
[3]李秀琴,梁满发.基于ARIMA模型的股票行情预测.长春教育学院学报,2013,29(14).