1. 程式人生 > 程式設計 >Python ADF 單位根檢驗 如何檢視結果的實現

Python ADF 單位根檢驗 如何檢視結果的實現

如下所示:

from statsmodels.tsa.stattools import adfuller

print(adfuller(data))

(-8.14089819118415,1.028868757881713e-12,8,442,{'1%': -3.445231637930579,'5%': -2.8681012763264233,'10%': -2.5702649212751583},-797.2906467666614)

第一個是adt檢驗的結果,簡稱為T值,表示t統計量。

第二個簡稱為p值,表示t統計量對應的概率值。

第三個表示延遲。

第四個表示測試的次數。

第五個是配合第一個一起看的,是在99%,95%,90%置信區間下的臨界的ADF檢驗的值。

第一點,1%、%5、%10不同程度拒絕原假設的統計值和ADF Test result的比較,ADF Test result同時小於1%、5%、10%即說明非常好地拒絕該假設。本資料中,adf結果為-8, 小於三個level的統計值

第二點,p值要求小於給定的顯著水平,p值要小於0.05,等於0是最好的。本資料中,P-value 為 1e-15,接近0.

ADF檢驗的原假設是存在單位根,只要這個統計值是小於1%水平下的數字就可以極顯著的拒絕原假設,認為資料平穩。注意,ADF值一般是負的,也有正的,但是它只有小於1%水平下的才能認為是及其顯著的拒絕原假設。

對於ADF結果在1% 以上 5%以下的結果,也不能說不平穩,關鍵看檢驗要求是什麼樣子的。

補充知識:python 編寫ADF 檢驗 ,程式碼結果引數所表示的含義

我就廢話不多說了,大家還是直接看程式碼吧!

from statsmodels.tsa.stattools import adfuller

import numpy as np
import pandas as pd

adf_seq = np.array([1,2,3,4,5,7,1,54,6,87,45,14,24])

dftest = adfuller(adf_seq,autolag='AIC')

dfoutput = pd.Series(dftest[0:4],index=['Test Statistic','p-value','#Lags Used','Number of Observations Used'])

# 第一種顯示方式

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

  dfoutput['Critical Value (%s)' % key] = value

  print(dfoutput)

# 第二種顯示方式

print(dftest)

(1)第一種顯示方式如圖所示:

Python ADF 單位根檢驗 如何檢視結果的實現

具體的引數含義如下所示:

Test Statistic : T值,表示T統計量

p-value: p值,表示T統計量對應的概率值

Lags Used:表示延遲

Number of Observations Used: 表示測試的次數

Critical Value 1% : 表示t值下小於 - 4.938690 , 則原假設發生的概率小於1%, 其它的數值以此類推。

其中t值和p值是最重要的,其實這兩個值是等效的,既可以看t值也可以看p值。

p值越小越好,要求小於給定的顯著水平,p值小於0.05,等於0最好。

t值,ADF值要小於t值,1%, 5%, 10% 的三個level,都是一個臨界值,如果小於這個臨界值,說明拒絕原假設。

其中,1% : 嚴格拒絕原假設; 5%: 拒絕原假設; 10% 以此類推,程度越來越低。如果,ADF小於1% level, 說明嚴格拒絕原假設。

(2)第二種表示方式,如下圖所示:

Python ADF 單位根檢驗 如何檢視結果的實現

第一個值(0.0): 表示Test Statistic , 即T值,表示T統計量

第二個值(0.958532086060056):p-value,即p值,表示T統計量對應的概率值

第三個值(7):Lags Used,即表示延遲

第四個值(7):Number of Observations Used,即表示測試的次數

大括號中的值,分別表示1%, 5%, 10% 的三個level

查閱了資料,簡單的做的總結經驗。

以上這篇Python ADF 單位根檢驗 如何檢視結果的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。