




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于AR模型的股票价格预测1 .问题描述AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据。本次实验使用从雅虎上下载的美国某股票七年共2000个收盘价格数据来进行数据分析建模,取其前1000个价格数据构建预测方程,预测剩下的股票收盘价格。2 .原理简述2.1 基本原理自回归模型(AutoregressiveModel,ARModel)是用自身做回归变量的过程,即利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型,它是时间序列中的一种常见形式。考虑一组随机自变量观测值与因变量观测值之间
2、的关系,设自变量观测值为x(n),因变量观测值为Y=y(n),y(n-1),y(n-N),则依据ARModel,满足如下关系式:a°ynayn_1fyn-N):=xn(2.1)其中,a=a0,a1-aN为各项因变量观测值系数。通常情况下,我们令a0=1。考虑到式(2.1)的迭代性,我们可以将其转化为一组自变量观测值和一个因变量观测值的形式如下:yn)=xn厂:4xn-1r:i2xn-2(2.2)(2.3)其中,人=%,0(2,是各项自变量观测值的系数。另外,我们假定自变量观测值的自相关函数为:Elxnxn-k=。2、k其中,。2是自变量观测值的方差,每(k)是狄拉克函数。将所得的y(
3、n)代入可得:(2.4)E'.ynxnJ=E|xn)r%xn-1xn:2:-2同样,将任意的一个y(n-K)代入可得:En-k)x(n)=。26(k)。接下来,我们将所得各式写成向量的形式如下:一11_y(ny(n1),y(nN):=x(n)分一(2.5)二E"(n)x(n?=E<y(n)y(n),y(n1),.,y(nN):11工fN(2.6)一iTEy(nk)x(n»=E«y(nk)y(n),y(n1>.,y(nN)a>LWNi一1l=rk,rk,.,rk_N】:=。A1(2.7)将因变量观测值的自相关函数写成矩阵形式可得如下:一r0
4、r1"rN1KaJ-rJ1r0rNJ2a2r23ams_rNrNJ2.r°aN_1I一n_(2.8)该矩阵由Yule-Walker方程描述为:Ra=-r对于该系统预测的关键在于对系统系数向量a的求解。将ARModel方程写成如下形式:(2.9)Nyn-Jakyn-kxnk=1将因变量观测值y(n)的L个观测值写成矩阵形式如下:一y(N)1y(N-1)y(N-2)y(0)一ajx(N)1y(N+1)=y(N)ay(N-1)may(1)a2+x(N+1)sy(LT)11y(L-2)-y(LN_1)_aN-x(L11(2.10)将上式写成Yule-Walker方程形式为:y=,a
5、+x。其中,x是自变量观测值矩阵,a是系数矩阵,Y是ToepHtz矩阵,y是因变量观测值矩阵。2H使用取小二乘法(LeastSquare,LS)寻找一个取优斛为:|x|=(y+Ya)(y+Ya)。对该1式进行求解可得:a=-(YhY)YHy0将所求系数代入即可得到拟合方程,根据拟合方程可以得到问题的估计值。2.2 实现步骤具体实现步骤如下:(1)利用自变量观测值x,因变量观测值y和系数矩阵a构建系统模型y=Ya+x;(2)依据LS求解系统系数矩阵a=-(YHY)YHy;(3)将a代入构造预测方程;(4)将已知值代入到预测方程中对未知值进行预测。2.3 实现框图图1预测实现框图3.仿真结果及分析
6、仿真分为三组进行,分别是固定系数矩阵a的股价预测图样;迭代更新系数矩阵a的股价预测图样;加窗更新系数矩阵a的股价预测图样。3.1 固定系数矩阵a的股价预测仿真采用1000个股票收盘价格构建预测方程,来预测接下来300个股票收盘价格,具体仿真如下图所示:2800260024002200格价2000盘£1800票股16001400120010002800260024002200200018001600140012001200100004002800260024002200格价2000盘收1800票股1600140012001000数据量(a)(b)2800260024002200格价20
7、00盘收1800票股16001400120010001200100010001200(c)(d)图2固定系数矩阵时不同阶数下股票价格预测图图2所示为利用前1000个数据求得系数矩阵a之后对接下来300个股票价格的预测图,蓝色为股票价格实际值,红色为股票价格预测值。图中(a)、(b)、(c)、(d)分别代表阶数为10、50、100、200时的不同情况。从图中可以看出,在阶数为10时,股票价格预测效果较差;当阶数为50和100时,预测效果有较大提升;而在阶数为200时,出现过度拟合的情况,预测效果开始下降。四种不同阶数的预测均方误差如表I所示:1050100200均方误差(父104)5.73281
8、.65523.87456.0020表I不同阶数下股票价格预测均方误差从表I中可以看出,阶数位于10100之间时,具有最优预测。3.2 迭代更新系数矩阵a的股价预测本节中,我们利用原始数据求解系统系数矩阵a,利用该系数矩阵a构建预测方程,通过预测方程求解接下来的一个值,再将该值代入,更新系数矩阵a,实现一种交叉迭代的预测求解。仿真采用1000个股票收盘价格构建预测方程,来预测接下来1000个股票收盘价格,具体仿真如下图所示:O003ot)ot)O格价盘收票股8040002M0022格价盘收票股且值冰测头预0000O00002004006008a)格价盘收票股008O12O862(c)(d)图3迭
9、代更新系数矩阵时不同阶数下股票价格预测图图3中(a)、(b)、(c)、(d)分别为阶数取10、50、100和200时的股票价格预测图,从图中可以看出,由于对系数矩阵a进行不断的迭代更新,因此求得的预测值近似为线性预测,即只能预测股票的升降趋势。观察之前1000个数据可知,股票价格以下降趋势为主,因此在这里的预测函数为一近似单调递减的线性函数。3.3 加窗更新系数矩阵a的股价预测考虑到3.2中系数矩阵a是在每次得到新的预测值就进行更新,在本节中,我们利用前1000个股价预测接下来长度为m的股价,m即为我们加窗的长度。在这里我们取m为一系列的值,分别为50、100、200、300和400。通过预测
10、的估计,更新系统矩阵a,进而预测接下来的股价。仿真时阶数分别取为100和300,显示如下图所示:00ot)ot)240004006oooo。208221格价盘收票ot)2Iotw200数据量(b)图4加窗长度为50时不同阶数下的股价预测图o格价盘收票股282X107实际盾预测值400600800100012001400数据量(a)图5加窗长度为实际值预测值0数据量100012001400(b)100时不同阶数下的股价预测图格价盘收票股实际值预测值400600800100012001400数据量图6加窗长度为-1-24X10-30实际值预测值200400600800100012001400数据量
11、(b)200时不同阶数下的股价预测图格价盘收票股ot)42008量据O数0042(a)(b)图7加窗长度为300时不同阶数下的股价预测图一实际帮预测值oOoO8622格价盘收票股0042-O8642(a)(b)图8加窗长度为400时不同阶数下的股价预测图观察以上各图可知,加窗长度为100、200和300时,预测值和实际值具有较大偏差。而当加窗长度为50和400时,效果较之前三种有较大提高。其中当阶数为100时,预测结果近似于线性,当阶数为300时,两者均具有较好的预测。其中,加窗长度为50时,具有最佳预测效果。从以上仿真结果可以看出,预测准确性和加窗长度和阶数有关。所以,为了获得较好的预测效果
12、,需要选择合适的加窗长度和阶数。4 .结束语本次实验是基于AR模型的股票价格预测,在实验中我们使用Yule-Walker方程对系统系数矩阵a进行求解,通过求解得到的系数矩阵a构造预测方程。同时,在仿真中我们讨论了使用不同的方法对系数矩阵a进行优化,分别为固定系数矩阵a的股价预测;迭代更新系数矩阵a的股价预测;加窗更新系数矩阵a的股价预测。实验结果表明,在固定系数矩阵a的情况下,预测的准确性和阶数的选取有关;而在更新系数矩阵a的情况下,预测的准确性和加窗长度及阶数均有关。5 .附录股票价格数据命名为xx'。%不更新A值clcclearload('xx.mat');data
13、=xx(:,1),;p=200;L=1000;MSE=0;data1=data(1:L);y=data(p+1:L)'fori=1:pY(:,p-i+1)=data(i:L-p+i-1)'enda=-inv(Y'*Y)*Y'*y;fori=L+1:length(data)data1(i)=data1(i-p:i-1)*(-a);endfori=1000:1300MSE=MSE+(data(i)-data1(i)A2;endMSE=MSE/300;figure(1)plot(data(1:1500),'b');holdonplot(data1(1:
14、1500),'r');xlabel('数据量');ylabel('股票收盘价格,);legend('实际值','预测值');axis(0130010002800);%每次预测一个点,代入更新a值clcclearallload('xx.mat');p=200;L=1000;datal=data(1:L);fori=L+1:length(data)y=data1(p+1:L)'forj=1:pfork=1:(L-p)Y(k,j)=data1(p-j+1+k-1);endendY1=Y'K=inv
15、(Y1*Y);a=-inv(Y1*Y)*Y1*y;data1(i)=data1(i-1:-1:i-p)*(-a);endfigure(2)plot(data(1:2000),'b');holdonplot(data1(1:2000),'r');xlabel('数据量');ylabel('股票收盘价格');legend('实际值,'预测值');%加窗的预测,窗的长度分别为100、200、300、400、500clcclearload('xx.mat');data=xx(:,1)'p=3
16、00;L=1000;L_list=50100200300400;select_number=5;data1=data(1:L);fori=0:30y=data1(L_list(select_number)*i+(p+1):L_list(select_number)*i+L)'forj=1:pfork=1:(L-p)Y(k,j)=data1(L_list(1)*i+p-j+1+k-1);endend%a(:,i+1)=-inv(Y'*Y)*Y'*y;a=-inv(Y'*Y)*Y'*y;form=1:L_list(select_number)data1(L+L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论