金融时间序列【量化理论】

news2025/2/22 7:16:05

业界常用的技术分析指标都与价格本身有关,而时间序列分析由于对数据平稳性的要求常常是基于收益率这样更加偏稳定的数据(收益率由于会涨停和跌停每天最多10%)

平稳性:

强平稳性:随时间变化,各个统计特征都保持不变,那么这个随机过程具有强平稳性——一般我们只要求金融序列是弱平稳性的也就是均值,方差,协方差随着时间的变化不会发生变化即可

注意‼️:对于不平稳的数据很有可能会产生伪回归

用ARIMA构建有关收益率的时间序列:

在时间序列当中,最简单的模型就是ARIMA模型,其中,AR的含义是自回归,I的含义是差分,MA的含义是移动平均

其中,自回归系数的计算方法:

在AR模型中要对AR模型进行平稳性检验:

又因为白噪声有如下特征:

对原AR求期望可以得到:

有平稳性特征:期待值是相同的

因此进一步化简:

我们称该方程的解的倒数为模型的特征根

当他的特征根的模都小于1,则可以认为序列是平稳的

如下是ARIMA模型简单的代码实例:

import numpy as np
 
import pandas as pd
 
import matplotlib.pyplot as plt
 
from statsmodels.tsa.stattools import acf, pacf
 
 
 
# 设置支持中文的字体
 
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
 
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号
 
 
 
# 数据准备
 
data = {
 
    '年份': list(range(1997, 2024)),
 
    '报考人数': [24.20, 27.40, 31.90, 39.20, 46.00, 62.40, 79.70, 94.50, 117.20, 127.12, 128.20, 120.00, 124.60, 140.00, 151.10, 165.60, 176.00, 172.00, 164.90, 177.00, 201.00, 238.00, 290.00, 341.00, 377.00, 457.00, 474.00],
 
    '录取率': [21.08, 21.17, 20.38, 21.69, 24.02, 31.25, 33.88, 34.92, 27.72, 31.69, 28.40, 32.50, 33.31, 33.71, 32.76, 31.48, 30.73, 31.90, 34.58, 33.32, 35.82, 32.02, 27.93, 29.05, 27.87, 24.15, 24.23]
 
}
 
df = pd.DataFrame(data)
 
df.set_index('年份', inplace=True)
 
 
 
# 选择一个时间序列列,例如 '报考人数'
 
ts = df['报考人数']
 
 
 
# 计算ACF和PACF值
 
acf_values = acf(ts, nlags=9)
 
pacf_values = pacf(ts, nlags=13)
 
 
 
# 计算置信区间
 
conf_int = 1.96 / np.sqrt(len(ts))
 
 
 
# 绘制ACF柱状图
 
plt.figure(figsize=(12, 6))
 
plt.bar(range(len(acf_values)), acf_values, color='blue', alpha=0.7)
 
plt.axhline(y=0, color='black', linestyle='--')
 
plt.axhline(y=-conf_int, color='red', linestyle='--', label='95% 置信区间')
 
plt.axhline(y=conf_int, color='red', linestyle='--')
 
plt.title('ACF图')
 
plt.xlabel('滞后期')
 
plt.ylabel('自相关系数')
 
plt.xticks(range(len(acf_values)), labels=range(len(acf_values)))
 
plt.legend()
 
plt.show()
 
 
 
# 绘制PACF柱状图
 
plt.figure(figsize=(12, 6))
 
plt.bar(range(len(pacf_values)), pacf_values, color='blue', alpha=0.7)
 
plt.axhline(y=0, color='black', linestyle='--')
 
plt.axhline(y=-conf_int, color='red', linestyle='--', label='95% 置信区间')
 
plt.axhline(y=conf_int, color='red', linestyle='--')
 
plt.title('PACF图')
 
plt.xlabel('滞后期')
 
plt.ylabel('偏自相关系数')
 
plt.xticks(range(len(pacf_values)), labels=range(len(pacf_values)))
 
plt.legend()
 
plt.show()
常用定阶方法:

求解AR(p)的p的过程叫做定阶,定阶一般有两种方法,一种是偏自相关系数,另一种是利用信息准则函数:

利用偏自相关系数:构建一连串的AR(p)模型,绘制pacf图,其中纵坐标表示的是偏自相关系数,横坐标表示的是相差的序列数,从哪一个数字开始,稳定在范围以内,就从哪一个数字以前的数作为最终的时间序列

利用信息准则:最常见的有AIC(赤池信息准则):

其中,k为包括结局项在内,自由参数的数量;L为似然函数的最大值

最大似然估计(MLE)的核心思想确实是通过不断调整模型参数 ,来寻找使得观察到的数据出现概率(即似然函数)最大的参数值。

在ARIMA(p,q)当中p和q分别代表自回归和滑动平均部分的阶数,可以通过绘制热力图来找到最小的AIC(BIC准则同理)

具体可以参考这篇arima模型预测考研难度(基于考研难度系数评价模型)-CSDN博客

用ARCH和GARCH来预测金融时间序列的波动率:

在金融时间序列里,还有一种处理方法是对波动率进行处理,这种方法相比收益率相对来说没有那么直观但是更加常用,在金融时间序列当中往往存在波动率聚集现象(volatility cluster),也就是说,波动率在一段时间内都比较高,在另一段时间内都比较低,且波动率会随着时间相对平稳的变化。

ARCH:

波动率模型(ARCH)采用自回归来体现波动聚集性,其假设资产收益率的扰动序列虽然不相关,但也并非完全独立(可以用延迟值的简单二次函数来表示)

(用方差预测条件方差)

同样的,我们会对其进行相关性检验

GARCH:

更常用的干扰率预测模型其实是GARCH(在ARCH的基础上进一步改进)

其中残差平方反应的是以往实际观测值与模型预测值之间差异的影响,捕捉了波动性的长期记忆效应;而条件方差反应了过去信息对当前信息的预测,是一种波动性的长期记忆效应。

GARCH的阶数在实际应用当中不太容易确定,因此往往直接采用低阶的

(在arch模块当中,可以用res.summary来查看拟合结果)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2303278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速入门——第三方组件element-ui

学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:10.第三方组件element-ui_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 第一节 组件间的传值 组件可以有内部Data提供数据,也可由父组件通过prop方式传…

Qt5 C++ TcpSocket 如何判断是服务主动断开tcp socket连接?

文章目录 实现思路示例代码代码解释主要功能和用法注意事项 在 Qt 5.9.9 的 C 开发中,使用 QTcpSocket 时,要判断是服务端主动断开 TCP Socket 连接,可以通过处理 QTcpSocket 的 disconnected 信号,结合 QTcpSocket 的状态以及…

DeepSeek动画视频全攻略:从架构到本地部署

DeepSeek 本身并不直接生成动画视频,而是通过与一系列先进的 AI 工具和传统软件协作,完成动画视频的制作任务。这一独特的架构模式,使得 DeepSeek 在动画视频创作领域发挥着不可或缺的辅助作用。其核心流程主要包括脚本生成、画面设计、视频合成与后期处理这几个关键环节。 …

电力通信物联网应用,国密网关守护电力数据安全

电力国密网关是用于保护电力调度数据网路由器和电力系统的局域网之间通信安全的电力专用网关机,主要为上下级控制系统之间的广域网通信提供认证与加密服务,实现数据传输的机密性、完整性。 国密算法网关功能特点 身份认证:对接入的设备和用户…

Datawhale Ollama教程笔记5

Dify 接入 Ollama 部署的本地模型 Dify 支持接入 Ollama 部署的大型语言模型推理和 embedding 能力。 快速接入 下载 Ollama 访问 Ollama 安装与配置,查看 Ollama 本地部署教程。 运行 Ollama 并与 Llama 聊天 ollama run llama3.1Copy to clipboardErrorCopied …

保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek

要在Postman中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java…

ASP.NET Core 下载文件

本文使用 ASP .NET Core,适用于 .NET Core 3.1、.NET 5、.NET 6和.NET 8。 另请参阅: 如何在将文件发送到浏览器后自动删除该文件。 如何将文件从浏览器上传到服务器。 如何在 ASP.NET Core 应用程序中从 URL/URI 下载文件。 如果使用.NET Framework&am…

【信息系统项目管理师-案例真题】2022下半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一(24分)【问题1】(6分)【问题2】(10分)【问题3】(8分)试题二(26分)【问题1】(8分)【问题2】(8分)【问题3】(4分)【问题4】(6分)试题三(25分)【问题1】(12分)【问题2】(7分)【问题…

原来DeepSeek还能运用在系统集成-领星对接

在当今数字化转型的浪潮中,企业的信息化建设已成为提升运营效率、优化管理流程的关键。领星ERP与金蝶云星空作为两款在电商和财务管理领域广受欢迎的软件,其数据对接对于跨境电商企业来说尤为重要。本文将结合实际应用场景,深度解析如何通过轻…

在windows下安装windows+Ubuntu16.04双系统(上)

这篇文章的内容主要来源于这篇文章,给文章很详细的介绍了如何从windows下安装windowsubuntu16.04双系统。我刚开始装双系统都是参照这个方法,该作者前后更新了两个版本,在这里对其稍微进行整理一下。 一、准备:(这里推…

第37章 合作之路与占坑成功

在春寒料峭的时节,那丝丝寒意宛如一缕缕若有若无的轻烟,在空气中悄然弥漫。锐创所的会议室,宛如一个被岁月尘封的神秘空间,暖黄色的灯光晕染开来,像是为整个房间披上了一层朦胧的薄纱,陈旧却又带着几分温馨…

杰和科技GAM-AI视觉识别管理系统,让AI走进零售营销

在数字化浪潮席卷全球零售业的今天,如何精准触达顾客需求、优化运营效率、提升门店业绩,成为实体商业破局的关键。 GAM-AI视觉识别管理系统 杰和科技智能零售管理系统:GAM-AI视觉识别管理系统,以AI视觉识别大数据分析边缘计算为核…

golang内存泄漏

golang也用了好几年了,趁着有空 整理归纳下,以后忘了好看下 一般认为 Go 10次内存泄漏,8次goroutine泄漏,1次是真正内存泄漏,还有1次是cgo导致的内存泄漏 1:环境 go1.20 win10 2:goroutine泄漏 单个Goroutine占用内存&…

Redis存储⑩Redis的事务_弱化的原子性

目录 1. MySQL和Redis事务的区别 1.1 MySQL的事务 1.2 Redis的事务 2. Redis事务操作 2.1 MULTI multi 2.2 EXEC exec 2.3 DISCARD discard 2.4 WATCH 1. MySQL和Redis事务的区别 1.1 MySQL的事务 MySQL事务复习: MySQL数据库⑨_事务(四个属性…

基于Flask的京东商品信息可视化分析系统的设计与实现

【Flask】基于Flask的京东商品信息可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 系统能够灵活地执行SQL查询,提取出用于分析的关键数据指标。为了将这…

QML ToolButton与DelayButton的使用、详解与自定义样式

QML MenuBarItem与MenuItem的使用、详解与自定义样式 一、介绍1、ToolButton常见用法基础示例设置图标 常用属性texticonenabledshortcutcheckable & checked 信号onClickedonPressed 和 onReleased 样式和外观使用场景 2、DelayButton使用场景核心属性1. delay 核心信号1.…

JSON格式,C语言自己实现,以及直接调用库函数(一)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。以下为你提供不同场景下常见的 JSON 格式示例。 1. 简单对象 JSON 对象是由键值对组成,用花括号 {} 包裹&…

学习整理安装php的uuid扩展以及uuid调用方法

学习整理安装php的uuid扩展以及uuid调用方法 1、安装uuid依赖库2、下载并安装3、ini中添加扩展4、re2c版本报错5、uuid调用方法 1、安装uuid依赖库 yum -y install uuid uuid-devel e2fsprogs-devel libuuid-devel2、下载并安装 点我下载uuid安装包 wget http://pecl.php.ne…

Orange 单体架构 - 快速启动

1 后端服务 1.1 基础设施 组件说明版本MySQLMySQL数据库服务5.7/8JavaJava17redis-stackRedis向量数据库最新版本Node安装Node22.11.0 1.2 orange-dependencies-parent 项目Maven依赖版本管理 1.2.1 项目克隆 GitHub git clone https://github.com/hengzq/orange-depende…

Spring Boot 入门 与 无法解析符号 springframework 的解决

Spring Boot 入门的关键步骤 1 创建 Maven 工程 操作目的: 通过 Maven 工程来管理项目依赖,Spring Boot 本身就依赖 Maven 或 Gradle 来简化依赖管理。 操作方法: 打开 IDEA(IntelliJ IDEA)。点击 New Project&#…