python财务报表预测股票价格_建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+Yule-Walker方程_Python...

2023-11-03

1.背景:

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

2.模型选取:

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

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

1316134-20180625101539936-696317090.png

其中,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)\]

1316134-20180625161401192-1038409608.png

将因变量观测值(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

在计算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%的置信区间,误差曲线在该区域内表明通过检验。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python财务报表预测股票价格_建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+Yule-Walker方程_Python... 的相关文章

  • windows live writer 离线写blog

    微软发布的软件windows live writer 可以离线写blog 也就是说 你可以在windows live writer这个软件编辑blog 然后点击 发布 见blog发送到指定网页上 前提是需要在windows live wri
  • 关于ios手机嵌套h5页面滚动兼容问题解决

    1 使用绝对定位 滚动元素使用绝对定位 position absolute top 0 left 0 bottom 0 height 100vh overflow y srcoll 2 添加兼容样式 webkit overflow scro
  • 华为OD机试 - 最大括号深度(Java)

    题目描述 现有一字符串仅由 六种括号组成 若字符串满足以下条件之一 则为无效字符串 任一类型的左右括号数量不相等 存在未按正确顺序 先左后右 闭合的括号 输出括号的最大嵌套深度 若字符串无效则输出0 0 字符串长度 100000 输入描述
  • stats

    本篇介绍基础包stats中的一个函数nls 它的作用是求解非线性回归的待定参数 nls formula data start control algorithm trace subset weights na action model lo
  • 标准库类型sring

    1 string 类型表示可变长的字符序列 需要包含头文件 include 2 定义和初始化 string 对象 拷贝初始化 使用了 号 直接初始化 用 3 string 对象的操作 cin lt lt string 会忽略前面的空白的无效
  • Java访问数据库的速度瓶颈问题的分析及解决

    内容 速度瓶颈问题的提出 JDBC访问数据库的机制 不同模式的 JDBC接口的选择 Java程序中SQL语句格式的优化 软件模型中对数据库访问的设计模式的优化 将深入研究的问题 参考资料 关于作者 FoolsGarden SMTH 自由Ja
  • 解决VS Code连接远程服务器使用Python中的matplotiib包画图无法显示的问题

    项目场景 在使用VS Code连接远程服务器使用Python中的matplotiib包画图时 会出现无法显示的问题 问题描述 在直接执行画图程序时 会报错 RuntimeError Invalid DISPLAY variable 原因分析
  • [Java学习]报错:类 OperatorDemo01 是公共的, 应在名为 OperatorDemo01.java 的文件中声明

    搭建好环境 用notepad 编写完程序 打开cmd编译文件 算数运算符 public class OperatorDemo01 public static void mian String args int a 6 int b 4 Sys
  • 编译原理(第四版)复习 (一)

    第一章 编译概述 编译程序 将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序 解释程序 也是一种翻译程序 将源程序翻译并执行 边解释边执行 两者的区别 解释程序的执行过程不会生成目标程序 编译过程的5个阶段 词法分析 语法分析
  • 用Python实现进制转换,这一篇教程就够了

    Python 实现进制转换 一 导言 导语 在计算机进行数据交换时 常常会有一个进制转换的过程 我们知道计算机只认0 和 1 在内存系统中 基本基于二进制进行运算的 但是有时候数据过于庞大 为了方便存储管理 计算机会使用十六进制存储数据 但
  • GNU-ld链接脚本浅析

    0 Contents 1 概论 2 基本概念 3 脚本格式 4 简单例子 5 简单脚本命令 6 对符号的赋值 7 SECTIONS命令 8 MEMORY命令 9 PHDRS命令 10 VERSION命令 11 脚本内的表达式 12 暗含的连
  • web前后端分离

    1 介绍 参考链接 https www cnblogs com leotsai p vuejs front backend architecture html 前后端分离的话 则可以很好的解决前后端分工不均的问题 将更多的交互逻辑分配给前端
  • JDBC学习(四)时间类型

    在Java代码中 java sql包原则上不能出现在DAO以外的地方 数据库和java中的时间类型的对应关系 DATE gt java sql Date TIME gt java sql Time TIMESTAMP gt java sql
  • 概念基础:恶意软件混淆的方法

    2020 05 20 看了一些网站的内容 发现主要存在四种方式 xor 加壳 base64编码 rot13 arm的一个指令 1 2 分别是简答介绍了这集中方式 3 是一个实验室的工具 可以取出一些混淆的字符串 但是只支持pe格式 在原理方
  • Android和iOS 测试五个最好的开源自动化工具

    本文主要介绍Android和iOS 五个最好的开源自动化工具 这里整理了相关资料 希望能帮助测试软件的朋友 有需要的看下 自动化测试在产品测试上有着非常重要的作用 实现测试自动化有多种积极的方式 包括最大限度地减少测试执行时间 在关键的发布
  • 相约久久网 -- 有很多东西值得学习

    http www meet99 com 转载于 https www cnblogs com yqskj archive 2012 10 07 2714622 html
  • flutter 怎么实现app整体灰度

    今天举国哀悼 进入各种大厂的app也可以看到主色都变成灰色的了 作为程序员我们肯定会想怎么可以实现的 我简单研究了10分钟 flutter中只要在整体外面套一个ShaderMask 然后修改blendMode即可 核心代码 class My
  • CentOS7目录结构详细版

    原文地址 http www cnblogs com ellisonDon archive 2012 10 03 2710730 html 原文地址 https www cnblogs com ellisonDon archive 2012
  • SpringBoot集成ShardingJDBC系列【2】—— 基于yaml基本配置

    文章只负责讲解sharding的相关配置 springboot其他的配置自己解决 文章内容将分开发布 便于平时查阅 基于yaml基本配置 在application yml配置文件中对mybatis plus做简单的配置 这里不对Mybati

随机推荐

  • Flutter设置Container的高度随ListView或者GridView

    在做移动端的时候 很多时候会需要下图所示的需求 如图1美团外卖首页的一部分 先进行需求分析 这个模块可以设计成Container包含GridView GridView中子内容个数由后台数据控制 但是在直接写Container包含GridVi
  • 第130篇 在 OpenSea 上创建自己的 NFT 商店(2)

    本文介绍一种通过自己部署智能合约 在 OpenSea 上创建自己的 NFT 商店的方法 1 ERC721合约 写一个最简单的标准 ERC721 合约 源码 SPDX License Identifier MIT pragma solidit
  • java 简介

    java 简介 1991 年Sun公司的James Gosling 詹姆斯 高斯林 等人开始开发名称为 Oak 的语言 希望用于控制嵌入在有线电视交换盒 PDA等的微处理器 1994年将Oak语言更名为Java 1 java体系结构 j2s
  • C语言笔记 指针 数组

    C语言中 指针做函数参数传递二维数组有两种基本方法 1 传递 数组指针 include
  • Openstack常用命令

    目录 一 创建用户 二 创建删除模板和模板其他操作 三 创建更新删除镜像 四 创建网络 五 VPN的使用 六 创建容器swift模块 前言 在linux中使用openstakc命令前 需要source etc keystone admin
  • 设计模式在开源框架中的应用

    设计模式不是虚的 实实在在出现在很多开源框架中 比如spring tomcat等等 现在这篇文章是一个阅读合集 整理了设计模式在开源框架中的应用 后续会逐渐补充 1 tomcat中设计模式的使用 Tomcat 系统架构与设计模式 第 2 部
  • 最大期望值(EM算法)学习

    20201008 0 引言 提示 本篇文章并没有详细的说明EM算法数学推导 虽然前面通过GMM的例子能够明白大致的思想 但是在底层数学推导部分没有非常完整说明 后续有时间可能会继续添加 如果想知道数学原理的读者 就不要浪费时间再看这篇文章了
  • TCP/IP学习笔记-PPPoE协议

    写在前面 仅供学习使用 PPPoE协议概述 PPPoE是一种把PPP帧封装到以太网帧的链路层协议 所以抓包的时候抓的是以太网协议 PPPoE利用以太网将大量主机组网 不仅具有以太网快速简便的特点还有PPP强大的功能 任何能被PPP封装的协议
  • OLED拼接屏生产流程全解析:关键步骤、注意事项和技术趋势

    OLED拼接屏作为现代商业展示 会议室和指导系统中的重要组成部分 其高亮度 高对比度和逼真的色彩效果备受推崇 然而 要实现一块完美无缝的OLED拼接屏并非易事 本文将深入探讨OLED拼接屏的生产过程 包括关键步骤 注意事项以及当前的技术趋势
  • Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)

    一 漏洞描述 Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的网关 它旨在为微服务架构提供一种简单 有效 统一的 API 路由管理方式 3月1日 VMware发布安全公告
  • Linux三剑客(grep、sed、awk)

    Linux三剑客指的是grep sed awk 其中grep擅长查找功能 sed擅长取行和替换 awk擅长取列 一 grep grep作用是筛选 查询 文本搜索工具 根据用户指定的 模式 pattern 对目标文本进行过滤 显示被模式匹配到
  • bp神经网络算法matlab程序,bp神经网络的matlab实现

    MATLAB中BP神经网络的训练算法具体是怎么样的 先用newff函数建立网络 再用train函数训练即可 1 正向传播 输入样本 gt 输入层 gt 各隐层 处理 gt 输出层注1 若输出层实际输出与期望输出 教师信号 不符 则转入2 误
  • MATLAB批量重命名存储数据

    目录 文件查找 文件移动和改名 所调用函数功能 文件查找 首先确定数据存储的文件夹地址 记为folder dir 如果该文件夹不存在需要访问的子文件夹 则直接复制文件地址 如果存在需要访问的子文件夹 则要利用dir函数进行寻找 将子文件夹信
  • Content-Type

    要学习content type 必须事先知道它到底是什么 是干什么用的 HTTP协议 RFC2616 采用了请求 响应模型 客户端向服务器发送一个请求 请求头包含请求的方法 URI 协议版本 以及包含请求修饰符 客户 信息和内容的类似于MI
  • SQL综合案例之电商漏斗转化分析,pv,uv及

    漏斗模型示例 不同的业务场景有不同的业务路径 有先后顺序 事件可以出现多次 注册转化漏斗 启动APP gt APP注册页面 gt 注册结果 gt 提交订单 gt 支付成功 搜购转化漏斗 搜索商品 gt 点击商品 gt 加入购物车 gt 提交
  • 什么是UTXO

    比特币UTXO是比特币网络中的一个重要概念 它是比特币交易的基础 也是比特币的账户系统 本文将从UTXO的定义 使用方式 优点和缺点等多个方面详细介绍比特币UTXO 一 UTXO的定义 UTXO Unspent Transaction Ou
  • 超详细用profile工具分析sql语句执行及status说明

    超详细用profile工具分析sql语句执行及status说明 介绍 sql执行慢的原因有可能很多种 怎么定位呢 可以用Query Profile人工具 通过该工具可以获取一条Query 在整个执行过程中多种资源的消耗情况 如 CPU IO
  • 如何防止服务器数据轻易泄露

    如今 对于中小企业和个人用户来说 在考虑到服务器的性能与安全成本的基础上 应该如何保护自己的服务器数据呢 1 提高服务器的容错能力 容错能力指的是 当服务器出现磁盘阵列错误 发现其中一组数据出错 服务器可以自动通过其他磁盘来纠正错误 恢复到
  • deep learning编程作业总结3---一步步搭建多层神经网络及应用

    本周的主要学习了如何搭建一个多层神经网络 涉及较多的理论知识 因此本编博客将对自己所学的有关神经的知识做一个总结 图1展示的是具有4个隐藏层的神经网络结构 它的输入由x1 x2 x3构成 表示样本X具有三个特征 随后进入第一个隐藏层 该层分
  • python财务报表预测股票价格_建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+Yule-Walker方程_Python...

    1 背景 针对股票市场中AR 模型的识别 建立和估计问题 利用AR 模型算法对股票价格进行预测 2 模型选取 股票的价格可视为随机信号 将此随机信号建模为 一个白噪声通过LTI系统的输出 通过原始数据求解 所建模型参数 得到模型 即可预测近