【数据挖掘 机器学习 | 时间序列】时间序列必备工具箱: 自相关与偏相关检验

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍

在这里插入图片描述

【数据挖掘 & 机器学习 | 时间序列】时间序列必备工具箱: 自相关与偏相关检验
作者: 计算机魔术师
版本: 1.0 ( 2023.11.18 )

摘要: 本系列旨在普及那些深度学习路上必经的核心概念,文章内容都是博主用心学习收集所写,欢迎大家三联支持!本系列会一直更新,核心概念系列会一直更新!欢迎大家订阅

该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

@toc

时间序列问题

和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大小的值改变顺序后输入模型产生的结果是不同的。首先需要明确一点的是,时间序列可以分为平稳序列,即存在某种周期,季节性及趋势的方差和均值不随时间变化的序列,及非平稳序列。

传统预测方法可以分为两种,一种是更加传统的,如移动平均法,指数平均法等;一种是用的还算较多的,即AR,MA,ARMA等,下面主要介绍一下这三种方法,这类方法比较适用于小规模,单变量的预测,比如某门店的销量预测等。

序列检验

在对时间序列进行建模时,我们需要对时间序列数据进行必要的检验,以下是平稳性检验及白噪声检验等。

名称介绍优缺点
Augmented Dickey-Fuller (ADF) 检验(平稳性)ADF检验用于检验时间序列数据的单位根(unit root),进而判断数据是否平稳。它基于自回归模型,通过比较单位根存在和不存在的两种情况下的残差和临界值来进行检验优点:广泛应用于平稳性检验,包括单变量和多变量时间序列数据;缺点:对数据存在线性关系的假设,不适用于非线性关系的检验。
Ljung-Box 检验(白噪声)Ljung-Box检验用于检验时间序列数据中的自相关性和偏相关性,从而判断数据是否具有白噪声特性。该检验基于计算残差的自相关函数(ACF)和偏相关函数(PACF),并与临界值进行比较。优点:适用于白噪声检验,可以检测时间序列数据中的高阶自相关性和偏相关性;缺点:对数据独立同分布的假设,不适用于非独立同分布的数据。
KPSS 检验(平稳性)KPSS检验(Kwiatkowski-Phillips-Schmidt-Shin)用于检验时间序列数据的平稳性。与ADF检验相反,KPSS检验的零假设是数据平稳。检验基于对数据的滞后差分过程进行建模,并通过比较测试统计量和临界值进行判断。优点:适用于平稳性检验,可以检测数据的趋势性;缺点:对数据存在趋势的假设,不适用于非趋势性数据的检验。
Jarque-Bera 检验(正态性)Jarque-Bera检验用于检验时间序列数据的正态性。它基于样本偏度和峰度的比较,通过计算测试统计量并与临界值进行比较来判断数据是否符合正态分布。优点:适用于正态性检验,可以检测数据的偏态和峰态;缺点:对数据满足独立同分布的假设,不适用于非独立同分布的数据。
ADF & PACF

自相关函数(ACF)和偏自相关函数(PACF)是用于分析时间序列数据的常用工具。它们可以帮助我们确定时间序列数据中的自相关和偏自相关结构,从而选择合适的模型来进行预测和分析。

首先,让我们了解一下自相关和偏自相关的概念。

自相关是指时间序列数据与其自身在不同时间点的相关性。简单来说,它衡量了时间序列数据在过去时间点与当前时间点之间的相关性。自相关函数(ACF)用于度量自相关的强度。

偏自相关是指在控制其他时间点的影响后,某一时间点与当前时间点之间的相关性。也就是说,偏自相关关注的是两个时间点之间的直接关系,而忽略了其他时间点的影响。偏自相关函数(PACF)用于度量偏自相关的强度。

ACF和PACF之间存在密切的关系,可以互相推导和解释。下面是它们的大致原理和关系:

  1. ACF的计算方法:

    • 计算时间序列数据在不同滞后(lag)时间点上的相关性。
    • ACF图通常展示了滞后时间和相关性之间的关系。
  2. PACF的计算方法:

    • 首先,假设我们要计算PACF的滞后阶数为k。
    • 然后,我们建立一个线性回归模型,使用前k个滞后值作为自变量,当前值作为因变量。
    • PACF就是回归模型的最后一个滞后系数,它表示当前值与滞后k个时间点之间的直接关系,消除了其他滞后时间点的影响
  3. ACF和PACF之间的关系:

    • PACF是ACF的衍生物,它反映了ACF中与当前时间点直接相关的部分。
    • 当滞后阶数增加时,PACF的值会逐渐趋于零,而ACF的值可能会持续存在非零相关性。
    • 当PACF在某个滞后阶数k之后变为零时,意味着在这个滞后阶数之后的时间点与当前时间点之间没有直接关系,只有间接关系。
    • 因此,PACF可以帮助我们确定时间序列数据的滞后阶数,从而选择合适的AR(自回归)模型。

为了更好地理解ACF和PACF,你可以将它们想象成一个投影。ACF是将时间序列数据投影到不同滞后时间点上的相关性,而PACF则是在控制其他滞后时间点的影响后,将时间序列数据投影到当前时间点上的相关性。

Augmented Dickey-Fuller (ADF)

ADF代表"Augmented Dickey-Fuller",即"增广迪基-富勒"。ADF检验是一种常用的单位根检验方法,用于确定时间序列数据是否具有单位根(即非平稳性)。它是由迪基和富勒在1981年提出的,DF检验只能应用于一阶情况,当序列存在高阶的滞后相关时,可以使用ADF检验,所以说ADF是对DF检验的扩展。

ADF检验就是判断序列是否存在单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根。

所以,ADF检验的 H0 假设就是存在单位根,如果得到的显著性检验统计量小于三个置信度(10%,5%,1%),则对应有(90%,95,99%)的把握来拒绝原假设。

以下是ADF算法的具体步骤:

步骤1:对原始时间序列进行差分,直到得到一个差分序列,使其具有更好的平稳性。计算一阶差分序列: Y t = X t − X t − 1 Y_t = X_t - X_{t-1} Yt=XtXt1

步骤2:构建回归方程。将差分序列 Y t Y_t Yt作为因变量,前向滞后差分序列 Y t − 1 Y_{t-1} Yt1作为自变量,构建回归方程: Y t = α + β Y t − 1 + ε t Y_t = \alpha + \beta Y_{t-1} + \varepsilon_t Yt=α+βYt1+εt,其中 α \alpha α β \beta β是回归系数, ε t \varepsilon_t εt是误差项。

步骤3:对回归方程进行估计,并计算残差。使用最小二乘法估计回归方程的系数 α ^ \hat{\alpha} α^ β ^ \hat{\beta} β^。然后计算残差序列 ε t ^ \hat{\varepsilon_t} εt^,表示观测值和回归方程的预测值之间的差异。

步骤4:进行单位根检验。对残差序列 ε t ^ \hat{\varepsilon_t} εt^进行单位根检验,以确定时间序列的平稳性。ADF测试统计量的计算公式为:

A D F = β ^ 标准误 (1) ADF = \frac{\hat{\beta}}{\text{标准误}} \quad \text{(1)} ADF=标准误β^(1)

其中, β ^ \hat{\beta} β^是ADF回归系数是ADF检验回归模型中时间趋势系数(β)的估计值,ADF标准误差是ADF回归系数的标准误差。。该统计量的值与临界值进行比较,以确定是否可以拒绝原假设。(用估计量除以估计量的标准误。)

步骤5:确定临界值。ADF测试的临界值取决于所选的显著性水平(例如5%或1%)。根据不同的样本量和回归方程的特性,可以使用预先计算的临界值表或近似公式来确定临界值。

步骤6:进行统计显著性检验。将ADF统计量与对应的临界值进行比较。如果ADF统计量的绝对值大于临界值,则可以拒绝原假设,并得出时间序列是平稳的结论。否则,不能拒绝原假设,时间序列被认为具有单位根,即非平稳。

请注意,ADF测试还可以进行更高阶的差分,以进一步提高时间序列的平稳性。对于更高阶差分,ADF测试的公式和步骤类似,只是回归方程和单位根检验统计量的计算会有所不同。

ADF检验可以通过python中的 statsmodels 模块,这个模块提供了很多统计模型。

# 定义单位根检验函数
def testStationarity(ts):
    dftest = ADF(ts)
    # 对ADF求得的值进行语义描述
    dfoutput = pd.Series(dftest[0:4], index = ['Test Statistic','p-value','#Lags Used',
                                               'Number of Observations Used'])
    for key, value in dftest[4].items():
        dfoutput['Critical Value (%s)'%key] = value
    return dfoutput
Partial Autocorrelation Function(PACF)

PACF(Partial Autocorrelation Function,偏自相关函数)是用于时间序列分析的一种工具,它衡量了一个时间序列在给定滞后阶数的情况下,与自身滞后的系数相关性。PACF在建立自回归模型(AR)时非常有用,它帮助确定AR模型的滞后阶数。

PACF算法的详细步骤

  1. 假设有一个时间序列数据 X t X_t Xt,其中 t = 1 , 2 , … , n t = 1, 2, \ldots, n t=1,2,,n

  2. 首先,计算原始数据的自相关系数(ACF)。

    自相关系数定义为:
    ρ k = Cov ( X t , X t − k ) Var ( X t ) ⋅ Var ( X t − k ) \rho_k = \frac{{\text{Cov}(X_t, X_{t-k})}}{{\sqrt{\text{Var}(X_t) \cdot \text{Var}(X_{t-k})}}} ρk=Var(Xt)Var(Xtk) Cov(Xt,Xtk)
    其中, k k k 是滞后阶数, Cov ( X t , X t − k ) \text{Cov}(X_t, X_{t-k}) Cov(Xt,Xtk) X t X_t Xt X t − k X_{t-k} Xtk 的协方差, Var ( X t ) \text{Var}(X_t) Var(Xt) Var ( X t − k ) \text{Var}(X_{t-k}) Var(Xtk) 分别是 X t X_t Xt X t − k X_{t-k} Xtk 的方差。

    计算自相关系数 ρ k \rho_k ρk 的方法有多种,常用的是Pearson相关系数或样本自相关函数。

  3. 然后,我们要计算偏自相关系数(PACF)。

    偏自相关系数定义为:
    ϕ k k = Corr ( X t , X t − k ∣ X t − 1 , X t − 2 , … , X t − ( k − 1 ) ) \phi_{kk} = \text{Corr}(X_t, X_{t-k} | X_{t-1}, X_{t-2}, \ldots, X_{t-(k-1)}) ϕkk=Corr(Xt,XtkXt1,Xt2,,Xt(k1))
    其中, Corr ( X t , X t − k ∣ X t − 1 , X t − 2 , … , X t − ( k − 1 ) ) \text{Corr}(X_t, X_{t-k} | X_{t-1}, X_{t-2}, \ldots, X_{t-(k-1)}) Corr(Xt,XtkXt1,Xt2,,Xt(k1)) 表示在给定 X t − 1 , X t − 2 , … , X t − ( k − 1 ) X_{t-1}, X_{t-2}, \ldots, X_{t-(k-1)} Xt1,Xt2,,Xt(k1) 的条件下, X t X_t Xt X t − k X_{t-k} Xtk 的相关系数。

    偏自相关系数反映了两个变量之间的线性关系,排除了其他变量的影响,因此在建立AR模型时非常有用。

  4. PACF的计算可以通过递归方法进行,具体推导如下:

    a. 首先,初始化 k = 1 k=1 k=1,并假设 ϕ 11 = ρ 1 \phi_{11} = \rho_1 ϕ11=ρ1

    b. 对于 k > 1 k > 1 k>1,计算 ϕ k k \phi_{kk} ϕkk 的值。

    i. 通过回归分析,将 X t X_t Xt 回归到 X t − k X_{t-k} Xtk 上,得到残差序列 e t e_t et

    ii. 计算残差序列 e t e_t et 的自相关系数 ρ k ( e t ) \rho_k(e_t) ρk(et)

    iii. 计算 ϕ k k \phi_{kk} ϕkk 的值:
    ϕ k k = ρ k − ∑ j = 1 k − 1 ϕ k − 1 , j ρ k − j 1 − ∑ j = 1 k − 1 ϕ k − 1 , j ρ j \phi_{kk} = \frac{{\rho_k - \sum_{j=1}^{k-1}\phi_{k-1,j}\rho_{k-j}}}{1 - \sum_{j=1}^{k-1}\phi_{k-1,j}\rho_j} ϕkk=1j=1k1ϕk1,jρjρkj=1k1ϕk1,jρkj

    c. 重复步骤 b 直到计算出所有的 ϕ k k \phi_{kk} ϕkk

  5. 最后,根据计算得到的偏自相关系数 ϕ k k \phi_{kk} ϕkk,可以绘制PACF图,以帮助确定AR模型的滞后阶数。在PACF图中,滞后阶数为 k k k 的偏自相关系数表示为 ϕ k k \phi_{kk} ϕkk

这就是PACF算法的详细步骤和数学公式推导。通过计算偏自相关系数,我们可以确定AR模型的滞后阶数,从而更好地理解和预测时间序列数据。

参考文章:

http://t.csdnimg.cn/u7pIm
在这里插入图片描述

						  🤞到这里,如果还有什么疑问🤞
					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM的运行时数据区

Java虚拟机(JVM)的运行时数据区是程序在运行过程中使用的内存区域,主要包括以下几个部分: 程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存 不同的虚拟机实现可能会略有差异。这些区域协同工作,支持Java…

游戏数据分析必知必会

游戏的分类 按端分类:端游(steam),页游(4399),手游(手机,pad)按盈利模式分类:付费游戏(一次买断,后续购买其它剧情或者包…

优质好文链接

文章目录 1.开放源码有利于系统安全2.yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)3.rpm包是什么4.SSH是什么意思?有什么功能? 1.开放源码有利于系统安全 开放源码有利于系统安全 2.yum源配置…

企业计算机服务器中了mallox勒索病毒怎么解决,勒索病毒解密文件恢复

随着科技技术的不断发展,网络技术得到了快速提升,但网络安全威胁也不断增加,近期,云天数据恢复中心陆续接到很多企业的求助信息,企业的计算机服务器遭到了mallox勒索病毒攻击,导致企业的所有业务中断&#…

算法设计与分析【期中+期末复习知识点总结】(持续更新)

第1章:算法概述 算法:具有输入、输出、确定性、有限性。 程序(算法数据结构程序):具有输入、输出、确定性(注意:程序可以不满足有限性,如操作系统是在无限循环中执行的程序&#x…

接口调用微信公众号群发功能,绕过微信自身限制

微信群发功能要求要微信认证。微信认证要求要企业账号、而且需要认证费用。 本篇文章教大家非微信认证账号如何群发公众号信息 本篇文章基于python语言开发,其他的语言一样的方式,不需要拘泥于语言 注意事项: 要求有微信公众平台登陆状态,也就是Cookie数据, 如何通过Py…

基于SSM的在线投稿系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

计算机的发展

硬件的发展 第一台电子数字计算机:ENIAC(1946),作者:冯诺依曼,逻辑元件:电子管 bug:小虫子,会影响打点 Intel: 机器字长:计算机一次整数运算所能…

OpenAI变天:也许会有另一个OpenAI要崛起?

本周五,OpenAI发布重磅声明,创始人兼CEO山姆奥特曼辞任OpenAI,并退出董事会。总裁Greg Brockman(格雷格布罗克曼)将辞去董事会主席一职,但将继续在公司担任职务,向CEO汇报。 作为吃瓜群众&#…

Linux(4):Linux文件与目录管理

目录与路径 相对路径在进行软件或软件安装时非常有用,更加方便。利用相对路径的写法必须要确认目前的路径才能正确的去到想要去的目录。 绝对路径的正确度要比相对路径好,因此,在写程序(shell scripts)来管理系统的条…

公司会倒闭,但大模型肯定不会

咋玩抖音的我,前几天在抖音上发了一张图片,没想到竟然有1000多的播放量。 当然这个播放量不算高,甚至在抖音的体系里属于很低的,但是比我预料的可能只有个位数的播放量是高了不少。 这张图片是我用某国产 AI 软件生成的&#xff…

【设计模式】设计模式基础

设计模式基础 文章目录 设计模式基础一、七大设计原则1.1 概述1.2 单一职责原则1.3 接口隔离原则1.4 依赖倒转原则1.5 里氏替换原则1.6 开闭原则1.7 迪米特法则1.8 合成复用原则 二、UML类图2.1 概述2.2 依赖关系(Dependence)2.3 泛化关系(generalizatio…

linux在非联网、无网络环境下,使用yumdownload、reportrack方法安装rpm包

文章目录 前言1、下载yum-utils​​2、yumdownloader3、repotrack4、区别:总结 前言 当开发者在联网环境下使用Linux时,可以轻松地通过yum或apt-get安装软件。然而,在公司和企业中,由于安全原因,生产环境通常无法访问…

es的优势

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

系列一、堆里面的分区:Eden、From、To、老年代各自的特点

一、堆里面的分区:Eden、From、To、老年代各自的特点 堆是对象共享的区域,也是垃圾回收器主要工作的地方。主要分为新生区、养老区和元空间,而这三块地方中GC主要工作在新生区和养老区,其中新生区占1/3、养老区占2/3,新…

springboot+activiti5.22.0集成Activiti在线流程设计器

SpringBoot集成Activiti5.22在线流程设计器 文章目录 SpringBoot集成Activiti5.22在线流程设计器📝1.增加配置pom依赖 增加数据库及redis配置文件📜 2.启动类ActivitiDesignApplication排除安全校验注解启动项目后将会自动在数据库中生成表 &#x1f4d8…

Win11+Modelsim SE-64 10.6d搭建UVM环境

1、添加源文件及tb文件 在目录下建立文件夹,将DUT和Testbench添加进去,文件夹内容如下所示: 2、以《UVM实战》中的例子做简单的示例: 2.1 设计文件 :dut.sv 功能很简单,即将接受到的数据原封不动发送出去…

鸿蒙:Harmony开发基础知识详解

一.概述 工欲善其事,必先利其器。 上一篇博文实现了一个"Hello Harmony"的Demo,今天这篇博文就以Demo "Hello Harmony" 为例,以官网开发文档为依据,从鸿蒙开发主要的几个方面入手,详细了解一下鸿…