从0开始对时间序列模型ACF和PACF的理解(以股价预测为例子)
目录
- ACF
- 模型选择问题
- ACF处理问题
- PACF(偏自相关系数)
- 模型选择
ACF
先了解一下概念,我不喜欢用公式套话讲。
ACF(自相关函数):就是看看当前的股票价格和之前的股票价格之间有没有关系。比如说,今天的价格和昨天的价格是不是有联系,今天的价格和前天的价格是不是有联系,依此类推。
如果 ACF 值很高,说明今天的价格和之前某一天的价格关系很大。这可能意味着股票价格有某种规律,比如每隔几天就有一个相似的趋势(这就是所谓的“季节性”或“趋势”)。
假设我们有一系列的开盘价:
今天的开盘价(D0):100元
昨天的开盘价(D1):98元
前天的开盘价(D2):97元
大前天的开盘价(D3):96元
四天前的开盘价(D4):95元
那么ACF看的是
今天的开盘价和昨天的开盘价之间的关系。
今天的开盘价和前天的开盘价之间的关系。
今天的开盘价和大前天的开盘价之间的关系。
我们计算的式子是
我们计算出
自相关函数(ACF)的值也在 -1 和 1 之间。,ACF()里面的1,2,3,4是代表相较与前面的前几天,如ACF(1)代表乡较与前一天,2代表相较与前两天
ACF正相关:如果 ACF 是正值,说明当前的开盘价和之前某一天的开盘价之间有正相关关系。也就是说,如果之前某一天的开盘价较高,那么当前的开盘价也可能较高;反之亦然。
比如: ACF(1)=0.335 表示今天的开盘价和昨天的开盘价有正相关关系。昨天的开盘价高,今天的开盘价也可能高。
**ACF负相关:**如果 ACF 是负值,说明当前的开盘价和之前某一天的开盘价之间有负相关关系。也就是说,如果之前某一天的开盘价较高,那么当前的开盘价可能较低;反之亦然。
比如: ACF(3)=−0.346 表示今天的开盘价和大前天的开盘价有负相关关系。大前天的开盘价高,今天的开盘价可能低。
当然这些只是可能,对于股价预测来说,它不靠谱,因为这只是理论罢了,真正的股票没有规律,如果有我也不会这么穷了。
**那么我们是不是得到了结论:**如果ACF越高,就代表以前的股价和现在的股价相关性高,那么你仔细想想,相关性高代表什么?那是不是代表着
之前的价格和今天的价格可以建立某种关系趋势函数,我们可以从前面之前的价格推断出我们今天的价格。
什么是季节性?趋势?
**举个例子:**我开了一个冰淇淋店,一般是夏天收益高,其他季节淡吧,那么我卖东西是不是可以遵循这个规律,夏天多进点货,其他季节少一点。那么着就是季节性,也就是趋势。夏天多来电,其他季节少来点。
模型选择问题
那我们进行深度学习训练,或者进行股价预测的时候,我们该怎么确定是要高ACF和低ACF呢?
这个是根据模型来选择的
**高的 ACF 值:**适合使用复杂的时间序列模型(如 ARIMA 或 SARIMA),因为这些模型可以捕捉到数据中的自相关性和季节性成分。
**低的 ACF 值:**适合使用简单的平滑模型或移动平均模型,因为数据自相关性较弱。
ACF处理问题
再我们进行股价预测的时候,我们一般考虑为有一支非常平稳的趋势线让股价上涨,为什么?因为有利我们模型的数据处理,以(informer)为例子。加入编码的时候数据突然忽高,那么得到的上下文信息就稳定,我们预测的结果就会有偏差。所以我们一般会进行处理,让它趋于平稳上涨。
那么一般用什么呢?(这里只介绍一种)
**差分:**我们一般是先画出数据的差分图,看是否有趋势或者季节性。
那么大家肯定想知道什么是季节性,如下图,这个是冰淇淋的销售季度图,我们发现它总是有规律的起浮。那么这就是有规律的。
看不懂看下面这个画出来的ACF图,你看1,2,3,4总是有规律的上下上下浮动。这就是不平稳的。
所以需要差分处理。那我们处理前后的图变成什么样子呢?
处理前的
处理后的:发现是不是平稳一些
PACF(偏自相关系数)
讲白话,比如ACF是前几天对当天的影响,那么PACF是前面的某一天对当天的影响。
我们还是之前的那个股价的例子:
今天的开盘价(D0):100元
昨天的开盘价(D1):98元
前天的开盘价(D2):97元
大前天的开盘价(D3):96元
四天前的开盘价(D4):95元
得到
PACF(1) = 0.8
PACF(2) = 0.3
PACF(3) = -0.1
PACF(4) = -0.2
偏自相关函数(PACF)的值通常在 -1 和 1 之间,正值代表正相关,负值代表负相关,意义和前面ACF一样,只不过是针对前面的特指某一天而言。PACF()里面的1,2,3,4是代表相较与前面的第几天比如PACF(1)代表前一天对今天的影响,PACF(2)代表倒数第二天对今天的影响。。。
PACF(1) = 0.8:昨天的开盘价较高,今天的开盘价也可能较高。正相关性较强,表示昨天的开盘价对今天的开盘价有显著的正面影响。前天的开盘价较高,今天的开盘价也可能较高,但这种影响比滞后 1 的影响要小一些。
**PACF(2) = 0.3:**前天的开盘价(D2 = 97元)对今天的开盘价(D0 = 100元)有中等程度的直接影响,而这种影响不是通过昨天的开盘价间接产生的。大前天的开盘价较高,今天的开盘价可能略低,但这种负相关性很弱。
PACF(3) = -0.1四天前的开盘价(D4 = 95元)对今天的开盘价(D0 = 100元)有中等程度的负相关影响。四天前的开盘价较高,今天的开盘价可能较低。负相关性表明四天前的开盘价对今天的开盘价有一定的反向影响。
模型选择
那么我们模型所需要数据的PACF是越大越好还是越小越好呢?
答案是看你的模型复杂度。
PACF 值越大:表示滞后期的直接相关性越强,应在模型中考虑这些滞后期。
PACF 值越小:表示滞后期的直接相关性越弱,可以忽略这些滞后期。
那么我们人事一下这个
AR项(自回归项,Autoregressive term)是时间序列模型中表示当前值与其过去值之间关系的一部分。 意思就是当前值可以通过过去值的线性组合来解释。
首先我们看ACF和PACF是否显著是用其值的绝对值是否大于你的置信区间来定义的!
比如 你模型定义|PACF|>0.2就是很好了,那么PACF(2)=0.3就是显著的。
对于我们的简单模型来说 如lstm
简单模型只选择 PACF 图中最显著的几个滞后期作为自回归项(AR 项)。
例如,若 PACF(1) 显著,可以选择 AR(1) 模型;若 PACF(1) 和 PACF(2) 显著,可以选择 AR(2) 模型。
简单模型的参数较少,更容易解释和理解。
例如,AR(1) 模型只考虑前一天的股价对今天股价的影响,AR(2) 模型则考虑前两天的股价对今天股价的影响。
对于复杂模型 如informer
复杂模型可能选择多个显著的滞后期作为自回归项,甚至包括一些不那么显著但仍有一定相关性的滞后期。例如,若 PACF(1)、PACF(2)、PACF(3) 显著,可以选择 AR(3) 模型;若 PACF(4)、PACF(5) 也有一定相关性,可以考虑更高阶的模型。
复杂模型试图捕捉数据中的更多细节和复杂关系,适用于数据中存在复杂模式或长记忆效应的情况。例如,ARIMA(3,1,2) 模型同时考虑了多个自回归项和移动平均项,适合处理更复杂的时间序列数据。
相关文章:

从0开始对时间序列模型ACF和PACF的理解(以股价预测为例子)
目录 ACF模型选择问题ACF处理问题 PACF(偏自相关系数)模型选择 ACF 先了解一下概念,我不喜欢用公式套话讲。 ACF(自相关函数):就是看看当前的股票价格和之前的股票价格之间有没有关系。比如说,…...
MybatisPlus(MP)基础知识全解析
MyBatis-Plus(简称MP)是一个基于Java的持久层框架,它在MyBatis的基础上提供了许多实用的功能增强,使得开发者可以更加便捷地进行数据库操作。本文将介绍MyBatis-Plus的基础知识,包括其特性、核心组件以及如何使用它进行…...

前端组件化实践:Vue自定义加载Loading组件的设计与实现
摘要 随着前端技术的飞速发展,组件化开发已成为提高开发效率、降低维护成本的重要方法。本文介绍了前端Vue自定义加载Loading组件的设计思路与实现过程,该组件通过设置gif动画实现加载效果,可广泛应用于页面请求加载场景。通过该组件的实践&…...

LLaMA 背景
什么是LLaMA? 模型介绍:LLaMA是Meta开发的语言模型,旨在推动开放科学和人工智能的实践。 参数范围:这些模型的参数数量从7B到65B不等,覆盖了不同规模的需求。 训练数据:LLaMA模型是在数万亿个公开数据集的…...

硅谷裸机云多IP服务器怎么样?
硅谷裸机云多IP服务器是一种在硅谷地区提供的、具有多个IP地址的裸机云服务器。这种服务器结合了裸机服务器的高性能和云服务器的灵活性,同时提供了多个IP地址,为用户的各种需求提供了支持。以下是关于硅谷裸机云多IP服务器的一些详细信息,ra…...

Python+Django+MySQL的新闻发布管理系统【附源码,运行简单】
PythonDjangoMySQL的新闻发布管理系统【附源码,运行简单】 总览 1、《新闻发布管理系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 登录2.2 程序主页面2.3 新闻新增界面2.4 文章编辑界面2.5 新闻详情页2.7 其他功能贴图 3、下载 总览 自己做的项目&…...

实战项目:仿muduo库实现并发服务器
目录 项目初始与项目演示HTTP服务器基础认识Reactor模式基础认识单Reactor单线程模式认识单Reactor多线程模式认识多Reactor多线程模式认识 目标定位总体大模块划分server模块的管理思想Buffer子模块Socket子模块Channel子模块Connection子模块Acceptor子模块TimerQueue子模块P…...
提高Java程序效率:ImmutableList、Stream API 和 JSON序列化实战指南
常用列表构建方法: 1.ImmutableList.of() : 静态方法、不可变的列表 可以接受任意数量的参数,并将它们作为元素添加到新创建的列表中,但是一旦创建,集合的内容就不能被改变。在多线程环境中非常有用,因为…...

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍
目录 1、协议数据单元(PDU)传输2、通信模块的案例2.1、SDU、 PCI & PDU2.2、通信模块构成2.3、从数据传输的角度看Communication2.4、Communication中的接口 在前面 《关于接口的一些说明》 以及 《Memory软件模块接口说明》 中,简要介绍了CP_AUTOSAR分层…...

C语言 ——— 浮点数类型 在 内存中 的 存储模式
目录 浮点数存储规则 单\双精度浮点数 存储 S、M、E 的布局 有效数字M 和 指数位E 的特殊规定 浮点数在内存中是否存储的S、M、E 浮点数存储规则 根据国际标准IEEE754(电气和电子工程协会)规定:任意一个 浮点数F的二进制 都可以表示成…...

socket 收发TCP/UDP
一、c 个人测试记录,有问题还请指出,谢谢 参考:C开发基础之网络编程WinSock库使用详解TCP/UDP Socket开发_c udp使用什么库-CSDN博客 代码中Logger测试见文章: c中spdlog的使用/python中logger的使用-CSDN博客 1、main.cpp 收…...

Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
什么是 Swagger ? Swagger 是一组围绕 OpenAPI 规范构建的开源工具,可以帮助您设计、构建、记录和使用 REST API。主要的 Swagger 工具 包括: Swagger Editor:基于浏览器的编辑器,您可以在其中编写 OpenAPI 定义Swagger UI&…...

spark shell
1.进行shell命令行 spark-shell 2.创建RDD 2.1 读取文件创建RDD 2.1.1读取linux文件系统的文件创建RDD --需要保证每一个worker中都有该文件 val data1 sc.textFile("file:/opt/file/word.txt") 2.1.2读取hdfs文件系统上的文件创建RDD val data2sc.textFile("…...

集群架构-web服务器(接入负载均衡+数据库+会话保持redis)--15454核心配置详解
紧接着前面的集群架构深化—中小型公司(拓展到大型公司业务)–下面图简单回顾一下之前做的及故障核心知识总结(等后期完全整理后,上传资源希望能帮大家) web集群架构-接入负载均衡部署web02服务器等 web集群-搭建web0…...

# Redis 入门到精通(七)-- redis 删除策略
Redis 入门到精通(七)-- redis 删除策略 一、redis 删除策略–过期数据的概念 1、Redis 中的数据特征 Redis 是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态。 XX :具有时效性…...

10:00面试,10:08就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到6月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...

html+canvas 实现签名功能-手机触摸
手机上的效果图 需要注意,手机触摸和鼠标不是一个事件,不能通用,上一篇是关于使用鼠标的样例 相关代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewpo…...

前端组件化探索与实践:Vue自定义暂无数据组件的开发与应用
摘要 随着前端开发技术的不断进步,组件化开发已成为提升开发效率、降低维护成本的关键手段。本文旨在通过介绍一款Vue自定义暂无数据组件的开发与实践,深入探讨前端组件化开发的重要性、优势及其在实际项目中的应用。 一、引言 在前端开发中࿰…...

《汇编语言 基于x86处理器》- 读书笔记 - Visual Studio 2019 配置 MASM环境
安装 Visual Studio 2019 配置 MASM环境 下载 Visual Studio Installer安装 Visual Studio 20191. 双击运行2. 自定义安装内容3. 修改 MSVC 工具集版本4. 设置主题(可选)5. 安装代码高亮插件 AsmDude(可选)6. 通义灵码(…...

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析
Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析 简介 本文档适用于合宙Air780E、Air780EP、Air780EQ、Air201 关联文档和使用工具: 从Ramdump里分析内存泄漏问题 无法抓底层log的情况下如何导出死机dump Luatools下载调试工具 EPAT抓取底层日志 F…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...