在做时间序列的平稳性检验时,经常会用到ADF检验法
如何用python写一个ADF检验平稳性呢?
又该如何理解ADF检验的结果呢?
很简单:
# ADF
result = adfuller(y_list)
print('The result of ADF: ')
print(result)
其中 y_list 是 List 类型变量
输出结果显示为
(-3.5847310180083602, 0.006059737672943494, 11, 355, {‘1%’: -3.448905534655263, ‘5%’: -2.8697161816205705, ‘10%’: -2.5711258103550882}, -216.36816495128028)
我们看第一个值,-3.58 。它在 {‘1%’: -3.448905534655263, ‘5%’: -2.8697161816205705, ‘10%’: -2.5711258103550882},这个区间中的位置是小于1%所对应的-3.44的,而且第二个值0.006也非常接近于0
由此便可得出结论:这个序列是平稳的。如果是大于10%,那么就是一个不稳定的了
当然,中间还有很多其它的转换过程,比如否定H0假设,单位根的概念等,这里只给出了最终判断方法
tip:如果不稳定,就需要进行差分处理。我的博文里有差分的实现方法~