快速搞懂时间序列数据平稳检验

2024-02-18 16:04

本文主要是介绍快速搞懂时间序列数据平稳检验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在对时间序列数据进行分析预测时,平稳时间序列数据预测效果更好。所以首先要检测数据是否平稳,没有趋势的时间序列数据,我们称为平稳的,即随着时间的推移,表现出恒定的方差,具有恒定的自相关结构。本文介绍如何检测数据集是否平稳的方法,并给出实战过程代码。常用的检测方法有KPSS,Phillips–Perron,
和 Augmented Dickey-Fuller,本文主要介绍ADF检测。

单位根检验

在时间序列分析中,单位根检验是检验时间序列是否不平稳,是否由单位根组成。时间序列中单位根的存在定义了零假设,备择假设定义了时间序列是平稳的。单位根检验的数学公式可表示为:

y t = D t + z t + ɛ t y_t = D_t + z_t + ɛ_t yt=Dt+zt+ɛt

  • D t D_t Dt 是决定性成分
  • Z t Z_t Zt 是随机成分
  • ɛ t ɛ_t ɛt 是平稳的误差处理

单位根检验的基本概念是确定 z t z_t zt(随机分量)是否由单位根组成。

ADF检验简要说明

ADF(Augmented Dickey-Fuller) 检验是一种检验时间序列数据是否平稳的方法。ADF是统计显著性检验,包括零假设和备择假设分别为:

  • H0

    时间序列不是平稳的,换句话说,它有一些随时间变化的结构,随时间推移没有恒定的方差。

  • H1

    时间序列是平稳的。

如果测试的P值小于显著性水平(假设为 .α = .05),那么我们能拒绝零假设,得出结论时间序列是平稳的。下面通过示例进行说明。

Python实现ADF检验

假设我们有下面测试数据:

data = [3, 4, 4, 5, 6, 7, 6, 6, 7, 8, 9, 12, 10]

在检验之前,我们先对数据进行可视化,展示数据的分布情况。下面代码可视化数据:

import matplotlib.pyplot as pltplt.plot(data)
plt.show()

在这里插入图片描述

要执行ADF单位根检验,需要statsmodels库中导入函数 adfuller()函数,首先需要安装statsmodels包:

pip install statsmodels

接下来,我们使用下面代码执行ADF检验:

from statsmodels.tsa.stattools import adfuller# perform augmented Dickey-Fuller test
result = adfuller(data)
print(result)

输出结果如下:

-0.975383623474406, 0.7621363564361016, 0, 12, {'1%': -4.137829282407408, '5%': -3.1549724074074077, '10%': -2.7144769444444443}, 31.2466098872313

这里我们解释前两个最重要的值:

  • 检验统计量: -0.97538
  • P-value: 0.7621

既然P值不小于.05, 我们不能拒绝零假设。这意味着数据不是平稳的,也就是说随时间推移没有恒定的方差。

这篇关于快速搞懂时间序列数据平稳检验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721689

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=