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

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


plt.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, 我们不能拒绝零假设。这意味着数据不是平稳的,也就是说随时间推移没有恒定的方差。

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值