时间序列预测

article/2025/8/18 21:02:10

问题简介

简单来说,时间序列是按照时间顺序,按照一定的时间间隔取得的一系列观测值,比如我们上边提到的国内生产总值,消费者物价指数,利率,汇率,股票价格等等。时间间隔可以是日,周,月,季度,年等。
那么如何进行时间序列分析分析呢?通常来说我们尝试找出序列值在过去所呈现的特征模式,假定这种模式在未来能够持续,进而对未来进行预测。时间序列基本特征包括:趋势性,序列相关性,随机性

基本概念

趋势性是指序列整体上呈现单调性,如平稳、上涨或下跌,先提一句,ARMA模型是平稳的时间序列模型,在建模前必须去除趋势性。
序列相关性是指当期的序列值和前期某个或某些序列值线性相关
随机性是指序列在一定程度上呈现不确定性,由于模型并不能捕捉到现实世界中的所有特征,总会有一些噪声的存在,这些噪声我们称之为白噪声
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用模型

白噪声序列

在这里插入图片描述
在这里插入图片描述

自回归模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

移动平均模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自回归移动平均模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自回归求和移动平均模型(ARIMA)模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

预测评价指标

ME (误差 ): Mean(Actual Predict)

MAE( 绝对误差 ) : Mean(abs(Actual Predict))

MAPE( 百分比误差 ): Mean(abs(Actual Predict)/Actual)

MSE( 均方误差平方和: Mean((Actual Predict)^2)

RMSE( 标准差): Sqrt(Mean((Actual Predict)^2))

在评价指标的选取上,通常会结合分析的需求以及其他的时间序列模型方法,选择某个评价指标进而选择使该评价指标最小的模型方法。

Box-Jenkins建模流程

在这里插入图片描述
首先进行平稳性的判断,如果该序列是平稳的则直接进入第二步模型的识别,否则需要差分处理。在识别模型后,我们估计模型的参数。参数估计出来后我们要判断该模型的是否合理,主要通过检验残差序列是否为白噪声序列进行白噪声序列是没有相关性的,也就意味着我们的模型已经把相关因素都提取出来了,可以用于后续的预测,否则我们的模型需要调整。最后我么能使用模型进行预测。下面我们具体来看一下每个步骤的细节:
在这里插入图片描述
在这里插入图片描述

单位根检验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结:单位根检验分为两种过程:平稳或者不平稳。
单位根检验的过程:先检验带截距和趋势的单位根过程,这时有两个结果。

  1. 检验显示平稳,那么应该搞清楚是什么状态的平稳,这时看时间趋势的检验结果,如果拒接原假设(不带趋势),那么检验结束,时间序列是趋势平稳,如果不拒接原假设,则认为不存在时间趋势,继续进行有截距的单位根检验,和时间趋势的检验相似,如果拒绝原假设(不带截距),可以判断时间序列截距平稳,这时如果不拒绝原假设,这时进行不带趋势和截距的单位根检验,检验结果一般平稳。
  2. 检验显示不平稳,直接进行带截距的单位根检验,如果结果平稳,则判断是什么状态的平稳,如果不平稳继续进行检验, 即不带截距和趋势的单位根检验,根据AIC,BC和SIC最小的个数判断是什么单位根过程。
    ADF python操作
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

深度学习方法

LSTM

循环神经网络

相较于循环神经网络大家应该更熟悉全连接神经网络和卷积神经网络,以及它们的训练和使用。他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。这时,就需要用到深度学习领域中另一类非常重要神经网络:循环神经网络(Recurrent Neural Network)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LSTM

为什么LSTM优于RNN?

这里就牵扯到梯度消失和爆炸的问题了,上面那个最基础版本的RNN,我们可以看到,每一时刻的隐藏状态都不仅由该时刻的输入决定,还取决于上一时刻的隐藏层的值,如果一个句子很长,到句子末尾时,它将记不住这个句子的开头的内容详细内容。

LSTM通过它的“门控装置”有效的缓解了这个问题,这也就是为什么我们现在都在使用LSTM而非普通RNN。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

优化思路

1.利用优化算法(粒子群、遗传算法…)优化超参数

2.优化误差反向传播过程中的经典随机梯度下降算法(Adam)

多层LSTM(nested two(n)-layer LSTM model)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

双向LSTM(Bi-LSTM)

在这里插入图片描述
在这里插入图片描述
即正向计算时,隐藏层的 s t s_t st s t - 1 s_{t-1} st1 有关;反向计算时,隐藏层的 s t s_t st s t + 1 s_{t+1} st1 有关:
在这里插入图片描述
文末有python例子

随机LSTM(RLSTM)

在这里插入图片描述
参考文献

ARIMA-LSTM(2022 C 2212336)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相空间重构模型

在时间序列问题的一般场景中,都是通过在时间域或者时域与频域的变换中进行研究的,而有一类时间序列本身是在确定系统中出现的无规则的运动极具混沌特性的时间序列(混沌的含义是混乱而没有秩序的状态),这个混沌现象是广泛存在的,因为很多后续变化都是对初值敏感,而且虽然整个过程中表面无规则但是实际上是可以通过一些动力学模型预测的。对于这一类混沌时间序列的问题(包括模型建立和预测)在现存的理论中是在相空间进行研究的,所以自然而然相空间重构是处理混沌时间序列中非常重要的过程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

延迟时间t的确定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

嵌入维数d的确定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CNN-LSTM

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
相关博客1
相关博客2


http://chatgpt.dhexx.cn/article/Nk3MkEHE.shtml

相关文章

时间序列分析

http://blog.csdn.net/pipisorry/article/details/62053938 时间序列简介 时间序列是时间间隔不变的情况下收集的时间点集合。这些集合被分析用来了解长期发展趋势,为了预测未来或者表现分析的其他形式。但是什么时间序列?与常见的回归问题的不同&…

时间序列模型调查

RNN 模型 Recurrent Neural Network (回流神经网络,有的译做递归神经网络) 时间序列模型最常用最强大的的工具就是递归神经网络(recurrent neural network, RNN)。相比与普通神经网络的各计算结果之间相互独立的特点,RNN的每一次隐含层的计算结果都与当前输入以及上一次的…

时间序列模型

1. 时间序列分析方法概述 一个时间序列往往是一下几类变化形式的叠加或耦合。 (1)长期趋势变动:反映主要变化趋势; (2)季节变动 (3)循环变动 (4)不规则变动 使…

python创建时间序列_python 时间序列

将dataframe的列转化为时间序列 #https://www.cnblogs.com/bolgbjg/p/14013300.html #datetime.now()获取现在的时间,now.year,获取现在的年份,其他以此类推 #timedelta()表示两个datetime之间的时间差,默认单位是天 strftime()参数, strftim…

时间序列(数据分析)

目录 第11章 时间序列 11.1 日期和时间数据的类型及工具 11.1.1 字符串与datetime互相转换 11.2 时间序列基础 11.2.1 索引、选择、子集 11.2.2 含有重复索引的时间序列 11.3 日期范围、频率和移位 11.3.1 生成日期范围 11.3.2 频率和日期偏置 11.3.3 移位&#xff0…

时间序列介绍

什么是时间序列? 时间序列是按照一定时间顺序,按照一定的时间间隔取得的一系列观测值。 怎样做时间序列分析? 时间序列分析尝试找出序列值在过去所呈现的特征模式,假定这种模式在未来能够持续,进而对未来进行预测 时…

时间序列

时间序列 一、时间序列是什么?二、时间序列分类1.白噪声序列2.平稳非白噪声序列3.非平稳序列 三. 时间序列主要模型1. ARIMA如何挑选模型参数:Example and application: 总结 一、时间序列是什么? 时间序列是指某种现象某一指标在不同时间上…

经典时间序列的学习(一)简单的认识时间序列

1. 什么是时间序列 同一统计指标数值按照时间先后顺序排列而成的数据。本质上是反映一个变量随时间序列变化的趋势。 简单的例子就像是学生每一年的身高数据,这个也是一个时间序列。变量是我们的身高;每一年都不一样。我们支付宝或者微信的零钱,每一天…

【时间序列】时间序列基本概念总结

最近一直在接触时间序列,所以打算写一些有关时间序列的文章,预测部分会从规则开始、到传统模型、到机器学习、再到深度学习,此外也会介绍一些时间序列的基本概念,包括自相关、平稳性、滞后性、季节性等。 1.基本概念 1.1 时间序列…

备战数学建模35-时间序列预测模型

目录 一、时间序列概念与分解模型 1-时间序列数据与基本概念 2-时间序列分解 二、SPSS中七种指数平滑模型 1-七种指数平滑模型简介 2-七种指数平滑模型具体分析 三、ARIMA模型相关的知识点 四、时间序列模型经典案例 1-时间序列建模思路介绍 2-案例1销售数据预测 3-…

【时间序列】最完整的时间序列分析和预测(含实例及代码)

时间序列 在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻所得到的离散数字组成的序列集合,称之为时间序列。 pandas生成时间序列过滤数据重采样插值滑窗数据平稳性与差分法 pandas生成时间序列 时间戳(ti…

UCF 2021 Qualifying - H . Time to Eat + UCF HSPT 2020 - E . Use Giant Fans to Deal With Hurricanes?

题目: H . Time to Eat [ 问题 8933 ] [ 讨论 ] Description The UCF Programming Team has made it to the World Contest Finals (WF), thanks to the great team members and coaches. Fortunately for Dr. Orooji (Team Faculty Advisor), WF is in a city wit…

MTU

MTU 是出接口方向的MTU值,跟入接口方向无关。 MTU 是双方向的,也就是说两个方向的数据流可以有不同的MTU值。 在实施中遇到这么个问题: 用户在BigIP的VLAN设置中修改了MTU值,并保存。但系统重启后,这个值又恢复为原来的默认值了。 有兄弟遇到过么?望指点一二。 [ 本帖最…

Mahout学习

Mahout学习 Mahout学习(主要学习内容是Mahout中推荐部分的ItemCF、UserCF、Hadoop集群部署运行) 1、Mahout是什么? Mahout是一个算法库,集成了很多算法。 Apache Mahout 是 Apache Software Foundation(ASF)旗下的…

metahuman 简介

目录 metahuman 简介 metahuman是什么登陆metahuman人物导出 metahuman 简介 metahuman是什么 是一个像游戏的捏脸软件,是云端的。在开始之前我们需要注册一个epic的账号 epic是一个白嫖游戏的网页,引擎,商城,metahuman都是他们做…

CTFHub | .htaccess

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。 0x01 题目描述…

C++手敲基于梯度图和像素数量数组的OTSU阈值分割

一、OTSU算法原理 ➢OTSU法(最大类间方差法,有时也称之为大津算法) ➢ 使用聚类的思想,把图像的灰度数按灰度级分成2个部分, 使得两个部分之间的灰度值差异最大,每个部分之间的灰 度差异最小 ➢ 通过方差…

Otsu图像分割

opencv自带Otsu算法,只需要在分割时将参数选择为“cv2.THRESH_OTSU”即可 #coding:utf-8 import cv2 import numpy as np from matplotlib import pyplot as pltimage cv2.imread(E:/shale10053.bmp) grayimage cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray c…

OpenCV中图像的自适应处理、Otsu方法讲解与实战(附Python源码)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、自适应处理 很多时候图像色彩是不均衡的,如果只使用一种阈值处理类型,就无法得到清晰有效的结果 下面使用五种常用的阈值处理类型对色彩不均衡的图像进行处理 代码如下 import cv2image cv2.imread(&…

图像分割 - 阈值处理 - 多阈值处理(OTSU)

目录 1. 多阈值处理介绍 2. 代码讲解 3. 完整代码 1. 多阈值处理介绍 之前介绍的都是全局单个阈值对图像的分割。固定阈值法,阈值是人工根据灰度直方图的波谷进行设置的。全局阈值法,根据不停的迭代两个区域间的平均灰度进行分割。OUST最大类间方差法…