当前位置: 首页 > news >正文

从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 实现签名功能-手机触摸

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

前端组件化探索与实践:Vue自定义暂无数据组件的开发与应用

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

《汇编语言 基于x86处理器》- 读书笔记 - Visual Studio 2019 配置 MASM环境

安装 Visual Studio 2019 配置 MASM环境 下载 Visual Studio Installer安装 Visual Studio 20191. 双击运行2. 自定义安装内容3. 修改 MSVC 工具集版本4. 设置主题&#xff08;可选&#xff09;5. 安装代码高亮插件 AsmDude&#xff08;可选&#xff09;6. 通义灵码&#xff08…...

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析

Air780E/Air780EP/Air780EQ/Air201模块遇到死机问题如何分析 简介 本文档适用于合宙Air780E、Air780EP、Air780EQ、Air201 关联文档和使用工具&#xff1a; 从Ramdump里分析内存泄漏问题 无法抓底层log的情况下如何导出死机dump Luatools下载调试工具 EPAT抓取底层日志 F…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

&#x1f525; 推荐一个高质量的Java LSM Tree开源项目&#xff01; https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree&#xff0c;专为高并发写入场景设计。 核心亮点&#xff1a; ⚡ 极致性能&#xff1a;写入速度超…...

无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技

无需布线的革命&#xff1a;电力载波技术赋能楼宇自控系统 在楼宇自动化领域&#xff0c;传统控制系统依赖复杂的专用通信线路&#xff0c;不仅施工成本高昂&#xff0c;后期维护和扩展也极为不便。电力载波技术&#xff08;PLC&#xff09;的突破性应用&#xff0c;彻底改变了…...