实验一-基于AR模型的股票价格预测
- 格式:doc
- 大小:309.50 KB
- 文档页数:15
实验一-基于AR模型的股票价格预测
第 2 页 共15页 基于AR模型的股票价格预测
1. 问题描述
AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据。本次实验使用从雅虎上下载的美国某股票七年共2000个收盘价格数据来进行数据分析建模,取其前1000个价格数据构建预测方程,预测剩下的股票收盘价格。
2. 原理简述
2.1 基本原理
自回归模型(Autoregressive Model,AR Model)是用自身做回归变量的过程,即利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型,它是时间序列中的一种常见形式。
考虑一组随机自变量观测值与因变量观测值之间的关系,设自变量观测值为x(n),因变量观测值为Y=[y(n),y(n-1),…,y(n-N)],则依据AR Model,满足如下关系式:
011NaynaynaynNxn (2.1)
其中,a=[a0,a1,…aN]为各项因变量观测值系数。通常情况下,我们令a0=1。考虑到式(2.1)的迭代性,我们可以将其转化为一组自变量观测值和一个因变量观测值的形式如下:
1212ynxnxnxn (2.2)
其中,A=[12,,]是各项自变量观测值的系数。另外,我们假定自变量观测值的自相关函数为:
2Exnxnkk (2.3)
其中,2是自变量观测值的方差,k是狄拉克函数。
将所得的y(n)代入可得:
12EE1ynxnxnxnxn (2.4)
同样,将任意的一个y(n-K)代入可得:2Eynkxnk。
接下来,我们将所得各式写成向量的形式如下:
第 3 页 共15页 11,1,...,NaynynynNxnaM (2.5)
112011EE,1,...,1,,...,NNNaynxnynynynynNaarrraMM (2.6)
1111EE,1,...,1,,...,0NkkkNNaynkxnynkynynynNaarrraMM (2.7)
将因变量观测值的自相关函数写成矩阵形式可得如下:
0111110222120NNNNNNrrrarrrrarrrrarLLMMMMMML (2.8)
该矩阵由Yule-Walker方程描述为:Rar。
对于该系统预测的关键在于对系统系数向量a的求解。将AR Model方程写成如下形式:
1Nkkynaynkxn (2.9)
将因变量观测值y(n)的L个观测值写成矩阵形式如下:
第 4 页 共15页 1212011111211NyNyNyNyaxNyNyNyNyaxNyLyLyLNaxLLLMMMMMMMLL (2.10)
将上式写成Yule-Walker方程形式为:yYax。其中,x是自变量观测值矩阵,a是系数矩阵,Y是Toeplitz矩阵,y是因变量观测值矩阵。
使用最小二乘法(Least Square,LS)寻找一个最优解为:2HxyYayYa。对该式进行求解可得:1HHaYYYy。将所求系数代入即可得到拟合方程,根据拟合方程可以得到问题的估计值。
2.2 实现步骤
具体实现步骤如下:
(1)利用自变量观测值x,因变量观测值y和系数矩阵a构建系统模型yYax;
(2)依据LS求解系统系数矩阵1HHaYYYy;
(3)将a代入构造预测方程;
(4)将已知值代入到预测方程中对未知值进行预测。
2.3 实现框图
构建系统模型依据LS求解系统系数矩阵构造预测方程利用已知值对未知值进行预测
图1 预测实现框图
3. 仿真结果及分析
仿真分为三组进行,分别是固定系数矩阵a的股价预测图样;迭代更新系数矩阵a的股价
第 5 页 共15页 预测图样;加窗更新系数矩阵a的股价预测图样。
3.1 固定系数矩阵a的股价预测
仿真采用1000个股票收盘价格构建预测方程,来预测接下来300个股票收盘价格,具体仿真如下图所示:
0200400600800100012001000120014001600180020002200240026002800数据量股票收盘价格
实际值预测值0200400600800100012001000120014001600180020002200240026002800数据量股票收盘价格
实际值预测值
(a) (b)
0200400600800100012001000120014001600180020002200240026002800数据量股票收盘价格
实际值预测值0200400600800100012001000120014001600180020002200240026002800数据量股票收盘价格
实际值预测值
(c) (d)
图2 固定系数矩阵时不同阶数下股票价格预测图
图2所示为利用前1000个数据求得系数矩阵a之后对接下来300个股票价格的预测图,蓝色为股票价格实际值,红色为股票价格预测值。图中(a)、(b)、(c)、(d)分别代表阶数为10、50、100、200时的不同情况。从图中可以看出,在阶数为10时,股票价格预测效果较差;当阶数为50和100时,预测效果有较大提升;而在阶数为200时,出现过度拟合的情况,预测效果开始下降。
四种不同阶数的预测均方误差如表I所示:
表I 不同阶数下股票价格预测均方误差
阶数 10 50 100 200
均方误差(410) 5.7328 1.6552 3.8745 6.0020
第 6 页 共15页 从表I中可以看出,阶数位于10~100之间时,具有最优预测。
3.2 迭代更新系数矩阵a的股价预测
本节中,我们利用原始数据求解系统系数矩阵a,利用该系数矩阵a构建预测方程,通过预测方程求解接下来的一个值,再将该值代入,更新系数矩阵a,实现一种交叉迭代的预测求解。仿真采用1000个股票收盘价格构建预测方程,来预测接下来1000个股票收盘价格,具体仿真如下图所示:
020040060080010001200140016001800200010001200140016001800200022002400260028003000数据量股票收盘价格
实际值预测值 020040060080010001200140016001800200010001200140016001800200022002400260028003000数据量股票收盘价格
实际值预测值
(a) (b)
020040060080010001200140016001800200010001200140016001800200022002400260028003000数据量股票收盘价格
实际值预测值 020040060080010001200140016001800200010001200140016001800200022002400260028003000数据量股票收盘价格
实际值预测值
(c) (d)
图3迭代更新系数矩阵时不同阶数下股票价格预测图
图3中(a)、(b)、(c)、(d)分别为阶数取10、50、100和200时的股票价格预测图,从图中可以看出,由于对系数矩阵a进行不断的迭代更新,因此求得的预测值近似为线性预测,即只能预测股票的升降趋势。观察之前1000个数据可知,股票价格以下降趋势为主,因此在这里的预测函数为一近似单调递减的线性函数。
3.3 加窗更新系数矩阵a的股价预测
考虑到3.2中系数矩阵a是在每次得到新的预测值就进行更新,在本节中,我们利用前1000个股价预测接下来长度为m的股价,m即为我们加窗的长度。在这里我们取m为一系列的值,
第 7 页 共15页 分别为50、100、200、300和400。通过预测的估计,更新系统矩阵a,进而预测接下来的股价。仿真时阶数分别取为100和300,显示如下图所示:
02004006008001000120014001000120014001600180020002200240026002800数据量股票收盘价格
实际值预测值02004006008001000120014001000120014001600180020002200240026002800数据量股票收盘价格
实际值预测值
(a) (b)
图4 加窗长度为50时不同阶数下的股价预测图
0200400600800100012001400-0.500.511.522.533.544.5x 10307数据量股票收盘价格
实际值预测值0200400600800100012001400-101234567x 10282数据量股票收盘价格
实际值预测值
(a)
(b)
图5 加窗长度为100时不同阶数下的股价预测图
第 8 页 共15页 0200400600800100012001400-0.500.511.522.5x 104数据量股票收盘价格
实际值预测值0200400600800100012001400-3-2-101234x 104数据量股票收盘价格
实际值预测值
(a)
(b)
图6加窗长度为200时不同阶数下的股价预测图