时间序列分析之ADF检验


一、ADF检验

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

ADF检验全称是 Augmented Dickey-Fuller test,顾名思义,ADF是 Dickey-Fuller检验的增广形式。DF检验只能应用于一阶情况,当序列存在高阶的滞后相关时,可以使用ADF检验,所以说ADF是对DF检验的扩展。

二、单位根

一阶AR模型,即AR(1)的情况,其模型如下:
在这里插入图片描述
如果α1 = 1 ,成为单位根。该模型就是随机游走,我们知道它是不平稳的。换个思路想象一下,当α1 = 1 ,那么前一时刻的收益率对当下时刻的影响是100%的,不会减弱;那么就算是很远的某个时刻,当下对它的影响还是不会消除,所以方差(表现在波动)是受前面所有时刻的影响,是和 t 相关的,因此不平稳;

如果α1 > 1,那么当前时刻的波动不仅受前面时刻的影响,还被放大了,所以肯定不平稳;

只有当α1 < 1 的时候,前面时刻的波动对当前时刻的影响会逐渐减小。可以计算此时的自协方差以及自相关系数是一个固定值。所以这种情况下,序列是平稳的。

三、ADF检验的原理

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

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

四、ADF检验的python实现

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

1.引入库

代码如下:

from statsmodels.tsa.stattools import adfuller

2.函数说明

adfuller函数的参数意义分别是:

  1. x:一维的数据序列。
  2. maxlag:最大滞后数目。
  3. regression:回归中的包含项(c:只有常数项,默认;ct:常数项和趋势项;ctt:常数项,线性二次项;nc:没有常数项和趋势项)。
  4. autolag:自动选择滞后数目(AIC:赤池信息准则,默认;BIC:贝叶斯信息准则;t-stat:基于maxlag,从maxlag开始并删除一个滞后直到最后一个滞后长度基于 t-statistic 显著性小于5%为止;None:使用maxlag指定的滞后)。
  5. store:True False,默认。
  6. regresults:True 完整的回归结果将返回。False,默认。

返回值意义为:

  1. adf:Test statistic,T检验,假设检验值。
  2. pvalue:假设检验结果。
  3. usedlag:使用的滞后阶数。
  4. nobs:用于ADF回归和计算临界值用到的观测值数目。
  5. icbest:如果autolag不是None的话,返回最大的信息准则值。
  6. resstore:将结果合并为一个dummy。

五、时间序列分析

1.使用IH2112股指期货数据为例

在这里插入图片描述

2.使用IH2112股指期货数据为例

    result = adfuller(ih_df["IH2112"].values)
    print(result)

在这里插入图片描述

3. 将数据进行一阶差分滞后

在这里插入图片描述

    ih_df_diff = np.diff(ih_df["IH2112"].values)
    result = adfuller(ih_df_diff)
    print(result)

在这里插入图片描述

  • 9
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
时间序列是一种重要的经济数据类型,它涉及到的变量通常是连续的,而且对于一些时间序列数据,可能存在某些趋势或者季节性等特征。在进行经济学方面的研究时,我们经常需要对时间序列数据进行检验,以判断其是否具有平稳性。ADF检验是一种重要的工具,可以用来检测时间序列数据是否呈现出平稳性的特征。 Stata是一种广泛使用的统计分析软件,它提供了一整套命令,可以用来进行时间序列ADF检验。具体来说,我们可以使用命令"dfuller"或者"adf"来进行检验。这两个命令的功能都非常类似,其中"dfuller"命令提供了更加灵活的参数设置和结果呈现方式。 在使用"dfuller"命令进行ADF检验时,我们需要指定需要进行检验的数据变量。一旦命令被输入,Stata会输出一张结果表,其中包括ADF检验的统计量和相应的p值。如果p值小于0.05,我们可以拒绝零假设,并得出结论表明数据具有平稳性。否则,我们则认为数据缺乏平稳性特征。 除此之外,在Stata中进行时间序列ADF检验时,我们还可以根据实际需求对检验过程进行相应的修改。例如,我们可以使用不同的lag数或者考虑趋势项和季节因素等影响,从而得出更加客观和准确的结论。 总的来说,Stata提供的时间序列ADF检验命令非常实用和方便,可以为经济学研究提供有力的支持。但是,在进行检验时,我们也需要注意选择合适的参数设置和数据变量,以保障结果的客观和准确。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大虾飞哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值