时间序列预测的20个基本概念总结

news2024/10/5 21:18:12

1、时间序列

时间序列是一组按时间顺序排列的数据点

比如:

  • 每小时的气压
  • 每年的医院急诊
  • 按分钟计算的股票价格

2、时间序列的组成部分

时间序列数据有三个主要组成部分。

  • 趋势
  • 季节性
  • 残差或白噪声

3、趋势

在时间序列中记录的长期缓慢变化/方向。

4、季节性

季节性是在固定时间内发生的时间序列中的循环模式。

下面的时间序列显示了季节性,在每个周期中,都处于底部和峰值,模式相似。

5、残差/白噪声

这是一个时间序列的模式,完全是随机的,不能用趋势或季节成分来解释。

6、时间序列分解

时间序列分解是将时间序列分解为其组成部分的过程,即趋势,季节性和残差。

在上图显示了时间序列数据,数据下面的图中被分解为其组成部分。

“残差”显示的是时间序列中无法用趋势或季节性解释的模式。这些表示数据中的随机性。

我们可以使用如下所示的statmodels库来分解时间序列。

 import pandas as pd 
 import matplotlib.pyplot as plt
 from statsmodels.tsa.seasonal import STL
 
 df = pd.read_csv("time-series-data.csv")
 
 decomposition = STL(df['x'], period=12).fit()

decomposition可以进一步绘制如下:

 fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=4, ncols=1, sharex=True,figsize=(10,8))
 
 ax1.plot(decomposition.observed)
 ax1.set_ylabel('Observed')
 
 ax2.plot(decomposition.trend)
 ax2.set_ylabel('Trend')
 
 ax3.plot(decomposition.seasonal)
 ax3.set_ylabel('Seasonal')
 
 ax4.plot(decomposition.resid)
 ax4.set_ylabel('Residuals')
 
 plt.tight_layout()

7、时间序列预测

预测是基于历史时间数据在以后时间上进一步预测数据点的过程。

这可以使用统计模型来完成,例如:

  • 自回归(AR)模型
  • 移动平均(MA)模型
  • 自回归移动平均(ARMA)模型
  • 自回归综合移动平均(ARIMA)模型
  • 季节自回归综合移动平均(SARIMA)模型
  • 带有外源回归量的季节自回归综合移动平均(SARIMAX)模型
  • 向量自回归(VAR)模型
  • 矢量误差校正(VECM)模型

对于较大的数据集,使用以下提到的深度学习模型:

  • 多层感知器(MLP)
  • 循环神经网络(RNN)
  • 长短期记忆网络(LSTM)
  • 自回归LSTMs
  • 卷积神经网络(CNN)

8、预测范围

根据历史时间序列数据预测未来数据点的时间段。

例如根据10年记录的每日气温数据,预测下一周的气温。

在这种情况下,预测范围是一周的时间。

9、预测模型基本步骤

时间序列预测模型主要由以下步骤组成:

  • 收集时间序列数据
  • 开发预测模型
  • 将模型部署到生产环境中
  • 收集新数据
  • 监控和评估模型性能
  • 重新训练预测模型
  • 将新模型部署到生产环境中
  • 返回步骤4

10、时间序列预测与回归

下面是时间序列预测与回归任务的主要区别。

时间序列数据是有序的。这意味着观察/数据点依赖于以前的观察/数据点。因此,在模型训练期间,数据点顺序不会被打乱。

时间序列预测处理随时间收集的数据。而回归可以处理不同类型的数据。

11、Naïve预测与基线模型

基线模型是使用naïve对时间序列数据进行预测构建的最简单的模型。作为比较其他预测模型的基线。

以下假设可用于创建基线模型:

  • 未来值与时间序列中的最后一个数据点相同
  • 未来值与某一时期内的值的中位数/众数相同
  • 未来的值等于一定时期内的平均值
  • 未来的值与一定时期内的所有值相同

12、错误指标

准确预测的目的是最小化数据中预测值与实际值之间的差距。所以有各种错误指标用于监视和最小化这种差距。

常用的误差指标如下:

  • 均方误差 (MSE)
  • 平均绝对误差 (MAE)
  • 均方根误差 (RMSE)
  • 平均绝对百分比误差 (MAPE)

13、平稳性

平稳的时间序列是其统计性质不随时间变化的序列,这些统计属性包括:

  • 均值
  • 方差
  • 自相关性

一般的统计预测方法(AR、MA、ARMA)都假定时间序列是平稳的。所以如果非平稳时间序列数据与这些一起使用,结果将是不可靠的。

14、变换

变换可以认为是使时间序列平稳的数学过程。常用的变换有:

差分计算从一个时间步到另一个时间步的变化。有助于在时间序列数据中获得恒定的均值。

要应用差分,我们只需从当前时间步长的值中减去之前时间步长的值。

一阶差分:对数据应用一次的差分;二阶差分:对数据应用两次的差分

对数函数应用于时间序列以稳定其方差,但是对数变换后需要进行逆向变换,将最终的结果进行还原。

15、Dickey-Fuller (ADF) 检验

Augmented Dickey-Fuller (ADF) Test是一种用于时间序列数据的经济统计学检验方法,用于确定一个时间序列是否具有单位根(unit root)。单位根表示时间序列具有非平稳性,即序列的均值和方差不随时间变化而稳定。ADF测试的目的是确定时间序列是否具有趋势,并且是否可以进行经济统计学分析。

ADF测试的核心假设是,如果时间序列具有单位根,则序列是非平稳的。反之,如果序列不具有单位根,则序列是平稳的。ADF测试通过对序列进行回归分析来验证这些假设。

我们可以直接使用statsmodels来进行这个检验

 from statsmodels.tsa.stattools import adfuller
 
 ADF_result = adfuller(time_series)
 
 print(f"ADF Result Value: {ADF_result[0]}")
 print(f"ADF Result p-value: {ADF_result[1]}")

16、自相关

是对时间序列中由不同时间步长隔开的值之间线性关系的度量。滞后是分隔两个值的时间步数。

自相关函数(ACF)图用于测试时间序列中的值是否随机分布或彼此相关(如果时间序列具有趋势)。

 from statsmodels.graphics.tsaplots import plot_acf
 
 plot_acf(time_series, lags = 20)

这里的x轴上的值表示滞后,y轴上的值表示由滞后分隔的不同值之间的相关性。

如果y轴上的任何值位于图的蓝色阴影区域,则该值在统计上不显著,比如下面的ACF图显示其值之间没有相关性(除了第一个与自身相关的值)。

17、平滑方法

平滑方法(Smoothing Methods)是一种用于对时间序列数据进行平滑处理的技术,以便更好地观察数据的趋势和季节性成分。这些方法的目标是减少随机噪声,突出数据中的长期变化模式。

常见的有:移动平均法(Moving Average Method)、加权移动平均法(Weighted Moving Average Method)、指数平滑法(Exponential Smoothing Method)、季节性平滑法(Seasonal Smoothing Method)

18、时间序列数据特征

  1. 静态时间序列(Static Time Series):静态时间序列是指数据在时间上没有变化的情况下进行分析。也就是说,它假设观测到的时间序列数据是固定的,没有随时间的推移而发生变化。在静态时间序列中,我们通常关注数据的平均水平、趋势和季节性等静态特征。常见的静态时间序列模型包括平均数模型、指数平滑模型和ARIMA模型等。
  2. 动态时间序列(Dynamic Time Series):动态时间序列是指数据在时间上呈现出变化的情况下进行分析。也就是说,它认为观测到的时间序列数据是随时间变化的,并且过去的值对未来的值有影响。在动态时间序列中,我们关注数据的动态性、趋势变化和周期性等动态特征。常见的动态时间序列模型包括自回归移动平均模型(ARMA)、自回归积分滑动平均模型(ARIMA)和向量自回归模型(VAR)等。

静态时间序列假设数据在时间上没有变化,主要关注数据的静态特征。动态时间序列考虑数据在时间上的变化,并关注数据的动态特征。静态时间序列可以看作是动态时间序列的特例,当数据在时间上没有变化时,可以将其视为静态时间序列。

19、季节性(Seasonality),循环性(Cyclicity) 区别

季节性(Seasonality)和循环性(Cyclicity)都是描述时间序列数据中重复出现的模式,但它们之间存在一些区别。

季节性是在较短的时间尺度内,由于固定或变化的季节因素引起的周期性模式,而循环性则是在较长时间尺度内,由于经济或其他结构性因素引起的周期性模式。

季节性(Seasonality)是指时间序列数据中由于季节因素引起的重复模式。这种模式通常是在较短的时间尺度内(例如每年、每季度、每月或每周)出现的,并且在不同时间段内的观测值之间存在明显的相似性。季节性可以是固定的,即在每个季节周期内的模式相对稳定,例如每年夏天都有高温;也可以是非固定的,即在季节周期内的模式可能有变化,例如某个季节的销售量在不同年份间波动。

循环性(Cyclicity)是指时间序列数据中具有较长周期性的模式。这种模式的周期可以大于或小于季节周期,并且循环性的持续时间通常比季节性更长。循环性可能是由经济、商业或其他结构性因素引起的,与季节性不同,循环性的模式不一定按照固定的时间间隔出现,而是根据外部因素的影响而变化。例如,房地产市场的周期性波动就是一个循环性的例子。

20、时间序列库推荐

PyFlux: PyFlux是一个用于时间序列分析和建模的库,提供了多种模型,包括ARIMA、GARCH、VAR等。

PyCaret: PyCaret是一个用于机器学习和自动化建模的库,它提供了简化时间序列预测任务的工具。它支持自动特征选择、模型选择和调优等功能,可以快速构建时间序列预测模型。

sktime: sktime是一个专门用于时间序列数据的机器学习库,它建立在scikit-learn之上,并提供了许多专门针对时间序列的预处理和建模技术。

CausalImpact: CausalImpact是一个用于因果效应分析的库,它可以帮助评估时间序列数据中某个事件或处理对结果的影响。

tsfresh: tsfresh是一个用于提取时间序列特征的库,它提供了各种统计和时间特征提取方法,用于时间序列数据的特征工程。

https://avoid.overfit.cn/post/7bc21f124d284b47becbeca6dc5c07c7

作者:Ashish Bamania

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

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

相关文章

51、基于51单片机洗衣机控制系统(带水位)系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+任务书+流程图+元器件清单等)

摘 要 随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中。单片机以体积小、功能全、价格低廉、开发方便的优势得到了许多电子系统设计者的青睐。它适合于实时控制,可构成工业控制器、智能仪表、智能接口、智能武器装置以及通用测控单元等。…

【最优PID 整定】PID性能指标(ISE,IAE,ITSE和ITAE)优化、稳定性裕量(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》(2018)

论文总结 以下是我阅读完整篇论文做的个人总结,基本包含了ChatGPT1设计的完整框架思路,可以仅看【论文总结】章节。 在GPT1实现的核心架构中,包含两个阶段。 第一阶段 在第一阶段基于一个包含7000本书籍内容的海量未标注文本数据集进行无…

PLC模拟量超限报警功能块

模拟量偏差报警功能块请参看下面文章: 模拟量偏差报警功能块(SCL代码)_RXXW_Dor的博客-CSDN博客工业模拟量采集的相关基础知识,可以查看专栏的系列文章,这里不再赘述,常用链接如下:PLC模拟量采集算法数学基础(线性传感器)_plc傳感器數據轉化_RXXW_Dor的博客-CSDN博客。…

GOOGLE | COT(chain of thought)开山之作,利用思维链提升复杂问题推理能力

一、概述 title:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 论文地址:https://arxiv.org/abs/2201.11903 auto COT代码【COT升级版本】:GitHub - amazon-science/auto-cot: Official implementation for &qu…

【LeetCode】HOT 100(8)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

字符串--字符串字面量、字符串的存储

一、字符串字面量(string literal) 字符串字面量(string literal ),有时也成为字符串常量,它是由一对双引号括起来的一个字符序列。如“hello”,“123”等都是字符串。无论双引号内是否包含字符…

C++入门:类和对象(上)

目录 前言: 一:初识面向过程和面向对象 二:类的引入 三:封装和类的访问限定符 (1)封装 (2)访问限定符 四:类的作用域和类的定义 (1)作用域 (2)类的定义 五:类的实例化(对象) 六:类对象…

代码随想录第58天

1.每日温度: 1.什么时候用单调栈呢? 通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。 2.单调栈里元素是递增呢? 还是递减呢? 注意以…

阿里云服务器解析绑定后访问不了的变态策略

阿里云服务器默认把80端口毙掉了,说是为了服务器安全。 客户买个一般服务器不就是弄个网站,80或者443端口默认还需要自己打开。 好比买个车,为了安全,没有轮胎,怕客户跑起来撞人,买完车让客户自己安装轮胎。…

Redis常见问题、各个分布式锁优缺点-05

Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数? 因为新master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,当其中一个挂了,是达不到选举新master的条件的。 奇数个ma…

BLIP和BLIP2

文章主要是对BLIP2 (使用冻结图像编码器和大型语言模型的Bootstrapping语言图像预训练)论文的阅读笔记,也对BLIP(用于统一视觉语言理解和生成的Bootstrapping语言图像预训练)算法进行了简单的介绍。 一、BLIP&#xf…

走进人工智能| Computer Vision 数字化时代的视觉启示录

前言: 计算机视觉是通过模仿人类视觉系统的工作原理,使计算机能够感知、理解和解释图像和视频的能力。 文章目录 序言背景适用领域技术支持应用领域程序员如何学总结 序言 计算机视觉是人工智能领域的一个重要分支,它涉及使计算机能够“看”…

nginx的开始(一)---nginx的安装

文章目录 1.nginx是什么?2.nginx安装2.1.安装准备:2.2.进行安装:2.2.1.apt安装(快速)2.2.2.源码安装 2.3.配置文件简解(nginx.conf) 1.nginx是什么? Nginx(发音为"e…

AndroidT(13) init 进程 -- first stage init 的初始化 (二)

1.概览 第一阶段的 init 工作主要用于读取系统启动阶段需要的配置信息(例如 linux的bootconfig,cmdline等配置信息)、挂载文件系统、安装 kernel 中的模块驱动,最后就是启动第二阶段的 init 来进行 Android 系统相关的组件。第一阶段的 init …

《微服务实战》 第三十章 分布式事务框架seata TCC模式

前言 本章节介绍分布式事务框架seata TCC模式,上一章节介绍seata以及集成到Springboot、微服务框架里。 1、TCC模式 一个分布式的全局事务,整体是 两阶段提交 的模型。全局事务是由若干分支事务组成的,分支事务要满足 两阶段提交 的模型要…

如何利用ChatGPT写毕业论文

如何利用ChatGPT写毕业论文 ChatGPT是什么?利用ChatGPT写毕业论文的步骤1.准备数据2.训练模型3.生成论文4.检查论文 总结地址 ChatGPT是什么? ChatGPT是一个基于GPT-2模型的开源聊天机器人,它可以回答用户的问题,进行闲聊和提供各…

或许是一个新的算法方向?

动动发财的小手,点个赞吧! 今日谷歌 DeepMind 使用深度强化学习发现更快的排序算法,相关论文[1]成果已经发表在Nature上。 据报道:该算法可以提速 70%,相比之下,快了3倍之多。 摘要 排序或散列等…

230611-通过Doxygen实现项目代码的文档自动化生成(Mac+Win通用)

背景介绍 目前主流的Python项目的文档管理多通过Sphinx实现;当前Sphinx尚未有针对C#等代码的插件;若想对C#的项目代码进行Sphinx的管理,可通过Doxygen导出为xml文件,进行二次转换;有关Doxygen的介绍及使用&#xff0c…

Java使用Opencv进行大图找小图并使用其找图功能进行bilibili视频下载案例

Java使用Opencv进行大图找小图并使用其找图功能进行bilibili视频下载案例 一、Opencv大图找小图说明二、Opencv的window安装1.下载windows下的安装包2.安装3.Java中Opencv加载测试 三、Java中通过Opencv进行模板匹配大图找小图四、进行多图查找五:案例下载bilibili视…