案例:基于小波分析的金触时序数据预侧
1)实验步骤
利用Mtlab软件,对金融数据的预测可以按以下步骤进行。
(1)对原始数据进行分解,本案例采用Mallat算法对数据进行分解,然后对信号进行平滑处理,用低通函数与原始信号卷积实现平滑处理,然后对经过平滑处理的信号进行重构。
(2)检验处理后的数据是否符合AR[p]建模要求,计算自相关系数x,x=R/R0,其中R0为自协方差函数。
(3)通过求解Y-W方程,求得偏相关函数X。
(4)计算10阶以内的模型残差方差U和AIC值,应用AIC准则为模型定阶,AIC准则:
(5)检验{at}是否为白噪声,求{at}的自相关系数P,看其是否趋近于零,若趋近于零,模型适用;否则,模型不适用。
(6)本案例中判定模型阶数为7,利用AR[7]模型的方程对重构后的数据进行预测,AR[7]模型方程为:
X(t)=W(1)×X(t-1)-W(2)×X(t-2)-W(3)×X(t-3)-W(4)×X(t-4)-W(5)×X(t-5)-W(6)×X(t-6)-W(7)xX(t-7)+a
2)实证结果
本案例取深发展A股股票2005年1月4日到2005年12月30日的每交易日的收盘价格(共有227个交易日)作为已知时刻的值,用上述小波变换的方法来预测2006年1月1日到2006年1月7日的6个交易日的股票收盘价的值,并与实际值相比较。
首先给出原始数据图,如图12-4所示,对上述数据用小波进行分解,并对分解后的数据做平滑处理,然后重构得到原数据的近似信号,这时数据走势如图12-5所示。
通过比较可以看出,进行小波变换后,时间序列趋于平稳,我们将其看做原始数据的近似信号,利用AR[7]模型对原始数据的近似信号进行逼近,时间区间为2006/1/1-2006/1/7,共有6个交易日的原始数据,结果如表12-1所示。从表中可以看到,预测的总体趋势和实际股票价格的走势一致,预测的效果很好。
图12-4 深发展A股票收盘价2005年227个交易日的股价走势
图12-5 深发展A小波重构
表12-1 深发展A日收盘价小波分析方法预测值与实际值比较
在小波分析预测方法中,还存在分解层数的问题。小波越往下分解,信号频段划分得越细,细节信号和近似信号的平稳性就越好,这样预测值会比较精确。但实际上,由于分解过程中本身存在计算的误差,层数越多,误差就会越大,这样这种误差就会影响预测值。因此在选择层数时不宜过多,也不宜过少。表12-2给出了采用小波分析方法进行预测时,分解层数分别为1-6层时的预测误差均方根值。
表12-2 不同分解层数的误差均方根值
通过以上案例实证,可以看到小波预测方法在预测处理金融数据这类非平稳的时间序列时,预测的结果与实际值很接近,效果较好。虽然所预测的结果仍会出现个别偏大或者偏小的值,但是可以看出小波方法预测的效果同传统的预测方法相比较,其具有一定的可靠性,用于预测股价的短期(六、七天)走势,效果比较好。同时也可以发现,一般当分解层数在2~3层时,预测效果比较好。