文章目录

  • 一、时间序列平稳性
    • 1、ADF检验
      • 1.1、ADF检验原理
      • 1.2、ADF的python实现
    • 2、ACF和PACF
  • 二、白噪声检验

原始的负荷时间序列曲线

一、时间序列平稳性

时间序列分析之ADF检验

1、ADF检验

在使用很多时间序列模型的时候,如 ARMA、ARIMA,都会要求时间序列是平稳的,所以一般在研究一段时间序列的时候,第一步都需要进行平稳性检验,除了用肉眼检测的方法,另外比较常用的严格的统计检验方法就是ADF检验,也叫做单位根检验。

1.1、ADF检验原理

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

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

1.2、ADF的python实现

ADF检验可以通过python中的 statsmodels 模块,导入adfuller函数

# -*- coding: utf-8 -*-
# @Time : 2021/5/19 15:13
# @Author : Orange
# @File : Stationarity.pyfrom statsmodels.tsa.stattools import *
# 时间序列平稳性检验,ADF检验
result = adfuller(P_data)
print(result)

(-9.087535016007157, 3.9034351012238036e-15, 3, 2973, {‘1%’: -3.432551464895929, ‘5%’: -2.8625126635320393, ‘10%’: -2.567287774919901}, 24322.072376998112)

  • 1%、%5、%10不同程度拒绝原假设的统计值和ADF Test result的比较,ADF Test result同时小于1%、5%、10%即说明非常好地拒绝该假设(这里原假设是存在单位根,即时间序列为非平稳的。),本数据中,adf结果为-9, 小于-3.432551464895929,说明有99%的把握认为原序列平稳。
  • P-value是否非常接近0。本数据中,P-value 为3.9034351012238036e-15<0.05,也可以从另一方面说明序列平稳。

因此这个时间序列是平稳的。

封装一下

# adf 稳定性检验
def stationarity_test(dataset, number):data = dataset.copy()data = data[: len(data) - number]  # 不检测最后number个数据# 平稳性检测from statsmodels.tsa.stattools import adfuller as ADFdiff = 0adf = ADF(data)while adf[1] > 0.05: # 用概率判断,若p<0.05,认为序列平稳diff = diff + 1adf = ADF(data.diff(diff).dropna())  # 对序列求1阶差分后,判断其是否平稳print(u'原始序列经过%s阶差分后归于平稳,p值为%s' % (diff, adf[1]))return adfadf = stationarity_test(ar, 0)
print("adf:", adf)

2、ACF和PACF

自相关图
偏自相关图
如何根据自相关(ACF)图和偏自相关(PACF)图选择ARIMA模型的p、q值

ACF:衡量yty_tyt​和yt−ky_{t-k}yt−k​在k=1,2,3...k=1,2,3...k=1,2,3...时的相关性,横坐标为k
PACF:若回顾之前我们所说过的,自相关图(ACF Plot)反映了自回归中yty_tyt​和yt−ky_{t-k}yt−k​在不同k取值时的相关性,若yty_tyt​和yt−1y_{t-1}yt−1​有相关性,则yt−1y_{t-1}yt−1​和yt−2y_{t-2}yt−2​必然具有相关性,然而yty_{t}yt​和yt−2y_{t-2}yt−2​也必然相关,因为他们都与yt−1y_{t-1}yt−1​相关,而不是因为$ y_{t-2}包含新的信息可以预测包含新的信息可以预测包含新的信息可以预测y_{t}$ 。而偏自相关图,可以反映在移除1,2...k−11,2...k-11,2...k−1延迟的情况下,yt−ky_{t-k}yt−k​对yty_{t}yt​的影响

平稳性:肉眼来看,一个平稳的时间序列,它是在一个水平线附近上下波动,没有明显的趋势性和季节性。平稳的时间序列具有短期的自相关性,

  • 1)如果在自相关图中,lag越大,自相关系数越小并很快衰减为接近于0,那就说明该时间序列具有短期相关性,是平稳时间序列。
  • 2)如果在自相关图中,lag越大,自相关系数并不是衰减为0,而是继续变为负数,那就说明该时间序列不具有短期相关性,不是平稳时间序列。

自相关图和偏相关图

# -*- coding: utf-8 -*-
# @Time : 2021/5/19 15:13
# @Author : Orange
# @File : Stationarity.pyfrom statsmodels.graphics.tsaplots import plot_acfplot_acf(P_data.dropna(),lags=1440*10)
plt.show()plot_acf(P_data.dropna(),lags=1440*10)
plt.show()


(1)白噪声自相关系数很快就衰减到0附近,是明显的平稳序列。滞后期为0时自相关系数和偏自相关系数其实就是序列自己和自己的相关性,故为1;滞后期为1时,自相关系数为0,表示白噪声无自相关性。(2) 随机游走,自相关系数下降非常缓慢,故为非平稳序列;另从偏自相关系数中可以看到随机游走只和前一项有关。(3) GDP数据的自相关图中也可以看到存在一定的周期性,滞后4、8、12等自相关系数较大下降较慢,差分后下降多一些起到一定效果,认为差分后序列是平稳的。同可视化数据一样,直观判断带有较强主观性,但能让我们对数据有更直观的认识。
注:这种方式比较主观,不推荐

二、白噪声检验

白噪声

白噪声检验也称为纯随机性检验, 当数据是纯随机数据时,再对数据进行分析就没有任何意义了, 所以拿到数据后最好对数据进行一个纯随机性检验。

可以通过调用statsmodels.stats.diagnostic里的acorr_ljungbox实现

from statsmodels.stats.diagnostic import acorr_ljungbox
lb, p = acorr_ljungbox(data, lags=1)

返回值

  • lbvalue:测试的统计量
  • pvalue:基于卡方分布的p统计量,pvalue<0.05,说明不是白噪声
# 白噪声检验
# 白噪声检验
def whitenoise_test(dataset, number):data = dataset.copy()data = data[: len(data) - number]  # 不使用最后number个数据# 白噪声检测from statsmodels.stats.diagnostic import acorr_ljungboxl = acorr_ljungbox(data, lags=1)p=l['lb_pvalue'].values[0]if p < 0.05:print(u'原始序列为非白噪声序列,对应的p值为:%s' % p)else:print(u'原始该序列为白噪声序列,对应的p值为:%s' % p)l= acorr_ljungbox(data.diff().dropna(), lags=1)p=l['lb_pvalue'].values[0]if p < 0.05:print(u'一阶差分序列为非白噪声序列,对应的p值为:%s' % p)else:print(u'一阶差分该序列为白噪声序列,对应的p值为:%s' % p)whitenoise_test(pd.Series(ar), 0)

补充:白噪声序列是一个平稳的时间序列,无周期性、无趋势性,无自相关性
白噪声检验
时间序列分析

时间序列平稳性分析和白噪声检验相关推荐

  1. R语言时间序列平稳性几种单位根检验(ADF,KPSS,PP)及比较分析

    原文链接:http://tecdat.cn/?p=21757 时间序列模型根据研究对象是否随机分为确定性模型和随机性模型两大类. 随机时间序列模型即是指仅用它的过去值及随机扰动项所建立起来的模型,建立 ...

  2. matlab格兰杰因果检验,格兰杰因果关系检验 平稳性分析 ADF检验 ARMA模型 GA-LS算法 RLS-LS算法 Eviews6.O MATLAB...

    格兰杰因果关系检验论文:国内房地产发展趋势研究及销售价格指数基于ARMA模型的预测分析 [中文摘要]本文以国内房地产业为背景,对房地产业近几十年的发展趋势进行了初步研究,并在此基础上对国内房地产销售价 ...

  3. 【R语言实验】基于R语言的时间序列平稳性检验

    一.实验项目名称:基于R语言的时间序列平稳性检验 二.实验目的与要求: 平稳时间序列的概念,平稳性检验的时序图检验方法和自相关图检验方法. 三.实验原理: 时序图和自相关图检验时间序列的平稳性依据: ...

  4. 数据分享|SAS与eviews用ARIMA模型对我国大豆产量时间序列预测、稳定性、白噪声检验可视化...

    全文链接:http://tecdat.cn/?p=31480 我国以前一直以来都是世界上大豆生产的第一大国.但由于各国的日益强大,导致我国豆种植面积和产量持续缩减.因此,预测我国的大豆产量对中国未来的 ...

  5. matlab语言 列车平稳性指标,铁道车辆平稳性分析报告.docx

    .... 铁道车辆平稳性分析 车辆平稳性评价指标 1.1 sperling平稳性指标 欧洲铁路联盟以及前社会主义国家铁路合作组织均采用平稳性指数来评定车辆的运行 品质.等人在大量单一频率振动的实验基础 ...

  6. 语音处理:音频信号短时平稳性分析

    语音处理:音频信号短时平稳性分析 背景 短时平稳含义 结语 背景 音频信号中,许多特征变换如短时傅里叶变换,都要求一个前提:语音信号短时平稳性. 那么语音信号短时稳定性这样一个假设,该如何直观理解呢? ...

  7. python白噪声检验_时间序列 平稳性检验 白噪声 峰度 偏度

    时间序列 简而言之,时间序列就是带时间戳的数值序列.股票,期货等金融数据就是典型的时间序列.量化的过程,很多时间都是在分析时间序列,找到稳定赚钱因子. 平稳性定义 所谓时间序列的平稳性,是指时间序列的 ...

  8. python 白噪声检验 结果-时间序列 平稳性检验 白噪声 峰度 偏度

    时间序列 简而言之,时间序列就是带时间戳的数值序列.股票,期货等金融数据就是典型的时间序列.量化的过程,很多时间都是在分析时间序列,找到稳定赚钱因子. 平稳性定义 所谓时间序列的平稳性,是指时间序列的 ...

  9. python 白噪声检验-时间序列 平稳性检验 白噪声 峰度 偏度

    时间序列 简而言之,时间序列就是带时间戳的数值序列.股票,期货等金融数据就是典型的时间序列.量化的过程,很多时间都是在分析时间序列,找到稳定赚钱因子. 平稳性定义 所谓时间序列的平稳性,是指时间序列的 ...

最新文章

  1. 通过NVIDIA PilotNet,人人都能变成人工智能的老师
  2. windows7下安装centos7双系统(未验证)
  3. Windows下MinGW编译vim7.4
  4. java阿里云短信服务开通验证码功能实现(1)
  5. 995. K 连续位的最小翻转次数
  6. Spring boot 之搭建
  7. oracle 恢复坏块,Oracle 修复坏块,关掉闪回
  8. 守卫数据中心命门的胡桃夹子-特权账号管理平台
  9. 农业大数据中心建设可行性方案
  10. 火狐浏览器安装插件“组件未验证无法安装”问题解决
  11. 三菱q plc modbus通讯协议详解_三菱PLC串口通讯模块QJ71C24N和MR-JE-A的modbus通讯
  12. 万能密码 php,PHP 万能密码
  13. 超好用的文件对比工具—— Beyond Compare
  14. 上海应届毕业生起薪调查报告
  15. Unhandled Exception: Looking up a deactivated widget‘s ancestor is unsafe.
  16. hdu 3018 图 欧拉回路 并查集
  17. 将数字月份转换成英语字母的月份的例子
  18. 如何快速实现邮箱注册(项目案例)
  19. P2404 自然数拆分问题
  20. 开源C++单元测试框架Google Test介绍

热门文章

  1. [Codeforces Gym 101651/100725B] Banal Tickets
  2. 京东移动端首页-流式布局
  3. krpano全景图切片还原和下载
  4. Java内存模型(JMM)详解
  5. 张景明:方剂【方歌】——清热剂
  6. java kdj macd_MACD、BOLL、KDJ 三大组合精准把握趋势与买卖!
  7. 陀螺年度巨献 | 2020年度区块链产业发展报告
  8. Win10怎么隐藏磁盘分区
  9. 苹果电脑怎么用c语言编程,mac电脑怎么调试c语言
  10. 05-现代威胁环境下的10个SIEM用例