Python ADF 单位根检验 如何查看结果的实现

什么是 Python ADF 单位根检验

Python ADF(Augmented Dickey-Fuller) 单位根检验是在时间序列建模中常用的一种方法。它主要是用于判断时间序列的平稳性,判断时间序列中是否存在趋势及是否具有时间相关性。其核心思想是检验时间序列中的单位根,如果单位根存在,即时间序列未能收敛到其均值,那么时间序列就是非平稳的。

Python ADF 单位根检验是如何实现的

Python ADF 单位根检验可以使用 Python 中statsmodels库中的函数 adfuller() 实现。adfuller()函数的具体使用方法如下所示:

import statsmodels.api as sm

result = sm.tsa.stattools.adfuller(temperature)

print('ADF Statistic:', result[0])

print('p-value:', result[1])

print('Critical Values:')

for key, value in result[4].items():

print('\t%s: %.3f' % (key, value))

如何查看结果

ADF Statistic

ADF Statistic是ADF检验的统计值,用于判断时间序列是否平稳。如果ADF统计值小于任何一个临界值,那就可以拒绝零假设,即认为时间序列是平稳的。在Python ADF单位根检验中,可以通过打印result[0]来查看ADF统计值。

import statsmodels.api as sm

result = sm.tsa.stattools.adfuller(temperature)

print('ADF Statistic:', result[0])

需要注意的是,ADF Statistic的值越小,说明序列越平稳,对于大多数的情况下,我们希望ADF Statistic的值小于所有Critical Values。

p-value

p-value代表了拒绝零假设的临界值,若P值低于某个阈值(通常是0.05),那么我们就可以拒绝零假设,认为时间序列是平稳的。在Python ADF单位根检验中,可以通过打印result[1]来查看P值:

import statsmodels.api as sm

result = sm.tsa.stattools.adfuller(temperature)

print('p-value:', result[1])

需要注意的是,当p值越小,越接近0,说明我们越有理由拒绝零假设,即认为时间序列是平稳的。

Critical Values

Critical Values代表了ADF统计值在不同置信水平下的临界值。如果ADF统计值小于任何一个临界值,那么就可以拒绝零假设,即认为时间序列是平稳的。在Python ADF单位根检验中,可以通过打印result[4].items()来查看Critical Values:

import statsmodels.api as sm

result = sm.tsa.stattools.adfuller(temperature)

print('Critical Values:')

for key, value in result[4].items():

print('\t%s: %.3f' % (key, value))

需要注意的是,对所有的critical values,ADF Statistic的值都需要小于其中的值,否则将无法拒绝零假设,认为时间序列是非平稳的。

总结

Python ADF 单位根检验是判断时间序列平稳性的重要方法,通过Python中statsmodels库中的函数 adfuller() 实现。ADF统计值,P值,以及Critical Values是Python ADF单位根检验结果中最重要的指标。需要掌握如何使用Python进行ADF检验以及如何解释结果。

后端开发标签