1.7 应用实例:基于时间序列的股票预测
有些股票的价格波动具有很好的周期性,这时就可以考虑用时间序列方法进行股票价格预测。下面将以具体的实例来说明如何利用上述介绍的时间序列方法进行股票价格走势的预测。
(1)读取股票数据
(2)原始数据可视化
该节程序执行后,会得到如图1-3所示的原始的股票价格走势图,从该图中可以看出,股票的价格变动有些规律,即周期性上升,为此可以考虑用时间序列来建立股票价格走势的模型。
图1-3 原始的股票价格走势图
(3)建立ARIMA模型
由于ARIMA具有较强的适应性,可以尝试用该模型建立该股票的时间序列模型,具体代码如下:
(4)评估预测效果
该节程序运行后,产生如图1-4所示的股票实际走势与预测走势的比较图。从该图中可以看出,两者总的趋势一致,但波动周期、波动幅度差异较大。这说明时间序列能在一定程度上反映股价的走势情况,但同时也说明现实中股价的变化情况具有较强的无序、随机的特征。这也是比较客观的,因为时间序列模型是经过抽象后形成的比较完美的模型,而现实世界的股价则是完全自由的,用完美、固定的模型只能刻画现实数据的部分特征。
图1-4 股票实际走势与预测走势的比较图
(5)预测未来股票趋势
本节程序得到的是用已经训练的模型对未来股价预测后的结果,如图1-5所示,同时还得到股价95%的置信波动区间,说明股价的可能波动范围。从该图中可以看出,预测时间越长,波动范围越大,这也说明预测时间越长,结果越不准,所以在用时间序列预测时,尽量不要将预测时间设置得太长,原则上预测时间不宜超过时间序列数据对应总时长的10%,也就是向后推延的时间不超过历史时间的10%。
图1-5 对未来股价预测后的结果
从该案例读者也可以体会到,股价数据随机性较强、噪声偏多,时间序列方法可在一定程度上反映股价的走势,对投资具有一定的指导意义。同时需要注意的是,影响股价的因素很多,各种各样非市场的因素往往左右着股价的整体走势,这在一个成熟市场是不应该出现的,从而充分地说明了我国股市还存在一些弊端。对广大投资者而言,要努力提高自身素质,减少对股票的盲目侥幸的认识,培养起应有的投资意识;对股市的研究人员而言,应该积极吸收西方发达国家成熟股市的先进经验和理论,运用于我国股票市场,以起到理论带动实践发展的作用。