建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+YuleWalker方程_Python

摘要:
因此,我们的预测模型使用AR模型。为了稳定股价,对股价进行差分处理。然后用Yule-Walker方程求解模型系数,并用试算法确定模型的阶数。

1.背景:

  针对股票市场中AR 模型的识别、建立和估计问题,利用AR 模型算法对股票价格进行预测。

2.模型选取:

  股票的价格可视为随机信号,将此随机信号建模为:一个白噪声通过LTI系统的输出,通过原始数据求解 所建模型参数,得到模型,即可预测近期未来的未知股票价格。

  随机信号建模为:白噪声通过滤波器,滤波器的系统函数为:

建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+YuleWalker方程_Python第1张

  其中,bq,ap为滤波器系数,根据参数的不同,此滤波器的类型相应有三种。

(1)AR模型(Auto-Regreesion)

  此时,滤波器系数为bq(分子)为1,系统主要依赖于过去输出的反馈作用(分母),这是一种特殊的IIR滤波器。

AR模型中,序列X当前值由序列e的当前值和序列X的前一个长度为M的窗口内序列值决定。

  原理:自回归模型(Autoregressive Model,AR Model)是用自身做回归变量的过程,即利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型。

(2)MA模型(画的平均)

  此时,滤波器系数ap(分母)为1,无反馈,系统主要依赖于白噪声样本加权求和输出,FIR滤波器。

(3)ARMA模型

  bq,ap都不为1,是一种典型的IIR滤波器。

  这三种模型中,AR模型的特别之处是它具有预测特性,把所有能用过去值预测的都表达了,只剩下输入导致的变化。故我们的预测模型使用AR模型。

  AR 是对平稳时间序列成立的,平稳大致上意味着该序列没有趋势,围绕着一个均值上下波动。为了将股票价格平稳化,先对股价进行差分处理。然后使用Yule—Walker 方程求解模型系数,模型的阶数通过试探的方法确定。预测时程序可选择使用模型预测天数,本程序使用六阶模型预测未来近三日的股价。

  步骤:

  考虑一组随机自变量观测值因变量观测值之间的关系,设自变量观测值为x(n),因变量观测值为Y=[y(n),y(n-1),…,y(n-N)],则依据AR Model,满足如下关系式:

  \[{a_0}y\left( n \right) + {a_1}y\left( {n - 1} \right) + \cdot \cdot \cdot + {a_N}y\left( {n - N} \right) = x\left( n \right)\]

其中,a=[a0,a1,…aN]为各项因变量观测值系数。通常情况下,我们令a0=1。考虑到上式的迭代性,我们可以将其转化为一组自变量观测值和一个因变量观测值的形式如下:

  \[y\left( n \right) = x\left( n \right) + {\alpha _1}x\left( {n - 1} \right) + {\alpha _2}x\left( {n - 2} \right) + \cdot \cdot \cdot \]

其中,A=[]是各项自变量观测值的系数。另外,我们假定自变量观测值的自相关函数为:

  \[{\rm{E}}\left\{ {\left. {x\left( n \right)x\left( {n - k} \right)} \right\}} \right. = {\sigma ^2}\delta \left( k \right)\]

其中:\[{\sigma ^2}\]是自变量观测值的方差; \[\delta \left( k \right)\]是狄拉克函数。

将所得的y(n)代入可得:

  \[{\rm{E}}\left\{ {\left. {y\left( n \right)x\left( n \right)} \right\}} \right. = {\rm{E}}\left\{ {\left. {\left[ {x\left( n \right) + {\alpha _1}x\left( {n - 1} \right) + \cdot \cdot \cdot } \right]x\left( n \right)} \right\}} \right. = {\sigma ^2}\]

 同样,将任意的一个y(n-K)代入可得:

\[{\rm{E}}\left\{ {\left. {y\left( {n - k} \right)x\left( n \right)} \right\}} \right. = {\sigma ^2}\delta \left( k \right)\]

建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+YuleWalker方程_Python第2张

将因变量观测值(Y(n)的自相关)的自相关函数写成矩阵形式可得如下:

\[\left[ {\begin{array}{*{20}{c}}
{{r_0}}&{{r_1}}& \cdots &{{r_{N - 1}}}\\
{{r_1}}&{{r_0}}& \cdots &{{r_{N - 2}}}\\
\vdots & \vdots & \vdots & \vdots \\
{{r_{N - 1}}}&{{r_{N - 2}}}& \cdots &{{r_0}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{a_1}}\\
{{a_2}}\\
\vdots \\
{{a_N}}
\end{array}} \right] = - \left[ {\begin{array}{*{20}{c}}
{{r_1}}\\
{{r_2}}\\
\vdots \\
{{r_N}}
\end{array}} \right]\]

该矩阵由Yule-Walker方程描述为:\[Ra = - r\]

对于该系统预测的关键在于对系统系数向量a的求解。将AR Model方程写成如下形式:

\[y\left( n \right) = - \sum\limits_{k = 1}^N {{a_k}y\left( {n - k} \right)} + x\left( n \right)\]

将因变量观测值y(n)的L个观测值写成矩阵形式如下:

\[\left[ {\begin{array}{*{20}{c}}
{y\left( N \right)}\\
{y\left( {N + 1} \right)}\\
\vdots \\
{y\left( {L - 1} \right)}
\end{array}} \right] = - \left[ {\begin{array}{*{20}{c}}
{y\left( {N - 1} \right)}&{y\left( {N - 2} \right)}& \cdots &{y\left( 0 \right)}\\
{y\left( N \right)}&{y\left( {N - 1} \right)}& \cdots &{y\left( 1 \right)}\\
\vdots & \vdots & \vdots & \vdots \\
{y\left( {L - 2} \right)}& \cdots & \cdots &{y\left( {L - N - 1} \right)}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{a_1}}\\
{{a_2}}\\
\vdots \\
{{a_N}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{x\left( N \right)}\\
{x\left( {N + 1} \right)}\\
\vdots \\
{x\left( {L - 1} \right)}
\end{array}} \right]\]

将上式写成Yule-Walker方程形式为:\[y = - Ya + x\]。其中,x是自变量观测值矩阵,a是系数矩阵,Y是Toeplitz矩阵,y是因变量观测值矩阵。

使用最小二乘法(Least Square,LS)寻找一个最优解为:\[{\left\| x \right\|^2} = {\left( {y + Ya} \right)^H}\left( {y + Ya} \right)\]。对该式进行求解可得:\[a = - {\left( {{Y^H}Y} \right)^{ - 1}}{Y^H}y\]。将所求系数代入即可得到拟合方程,根据拟合方程可以得到问题的估计值。

AR模型结束确定(Matlab):

研究表明,采用Yule-Walker方法可得到优化的AR模型,故采用aryule程序估计模型参数。

[m,refl] = ar(y,n,approach,window)

yp = predict(m,y,k)

表示预测模型;为实际输出;预测区间;yp为预测输出。

 当k<Inf时,yp(t)为模型m与y(1,2,…t-k)的预测值;当k=Inf时,yp(t)为模型m的纯仿真值;默认情况下,k=1。

在计算AR模型预测时,k应取1,原因参照AR模型理论公式。

compare(y,m,k)
[yh,fit,x0] = compare(y,m,k)

Compare的预测原理与predict相同,但其对预测进行了比较。

e = pe(m,data)

pe误差计算。采用yh=predict(m,data,1)进行预测,然后计算误差e=data-yh;

[e,r]= resid(m,data,mode,lags);
resid(r)

resid计算并检验误差。采用pe计算误差;在无输出的情况下,绘出误差图,误差曲线应足够小,黄色区域为99%的置信区间,误差曲线在该区域内表明通过检验。

免责声明:文章转载自《建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+YuleWalker方程_Python》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jsplumb电脑风扇轴承介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

分类模型评估

一直对于各种分类器评估的指标有点晕,今天决定琢磨下,并且写下来,方便以后回忆。 一、混淆矩阵 来源于信息论,根据上面的混淆矩阵,有3个指标需要搞清楚,我觉得记公式真的很容易搞混,建议大家都直接记文字加上自己理解就好了。 准确率=正确预测正负的个数/总个数(这个指标在python中的交叉验证时可以求准确率) 覆盖率(也叫作召回率)=正确预测正的个数/实际...

机器学习速成笔记一

定义:机器学习系统通过如何组合输入信息来对从未见过的数据做出有用的预测。 基本术语 标签:标签是我们要预测的事物,即简单线性回归中的(y)变量。 特征:特征是输入变量,即简单线性回归中的(x)变量,特征可以有多个,是一种可量化的指标。 样本:样本是指数据的特定实例(X),样本分为有标签样本和无标签样本。 模型:模型定义了特征与标签之间的关系。 训练:是指...

seq2seq聊天模型(二)——Scheduled Sampling

使用典型seq2seq模型,得到的结果欠佳,怎么解决 结果欠佳原因在这里 在训练阶段的decoder,是将目标样本["吃","兰州","拉面"]作为输入下一个预测分词的输入。 而在预测阶段的decoder,是将上一个预测结果,作为下一个预测值的输入。(注意查看预测多的箭头)这个差异导致了问题的产生,训练和预测的情景不同。在预测的时候,如果上一个词语预测错...

[软件过程/软件生命周期模型]软件过程的工具链【待续】

0 宣言:DevOps & RUP统一过程建模 1 项目管理 (需求管理 / 缺陷管理 / ...) 禅道(前身:bugfree) [在线协作] JIRA(项目与事务跟踪工具) 与禅道类同,但又不同,有明显的Scrum敏捷风格 Microsoft Project [离线维护] 在线文档 or Excel 2 系统建模 2....

[转载] 第三篇:数据仓库系统的实现与使用(含OLAP重点讲解)

阅读目录 前言 创建数据仓库 ETL:抽取、转换、加载 OLAP/BI工具 数据立方体(Data Cube) OLAP的架构模式 小结 回到顶部 前言         上一篇重点讲解了数据仓库建模,它是数据仓库开发中最核心的部分。然而完整的数据仓库系统还会涉及其他一些组件的开发,其中最主要的是ETL工程,在线分析处理工具(OLAP)和商务智能(...

机器学习与R语言

此书网上有英文电子版:Machine Learning with R - Second Edition [eBook].pdf(附带源码) 评价本书:入门级的好书,介绍了多种机器学习方法,全部用R相关的包实现,案例十分详实,理论与实例结合。 目录 第一章 机器学习简介 第二章 数据的管理和理解 第三章 懒惰学习--使用近邻分类 第四章 概率学习--朴素贝...