解讀時間序列分析之ADF檢驗(yàn)
一、ADF檢驗(yàn)
在使用很多時間序列模型的時候,如 ARMA、ARIMA,都會要求時間序列是平穩(wěn)的,所以一般在研究一段時間序列的時候,第一步都需要進(jìn)行平穩(wěn)性檢驗(yàn),除了用肉眼檢測的方法,另外比較常用的嚴(yán)格的統(tǒng)計檢驗(yàn)方法就是ADF檢驗(yàn),也叫做單位根檢驗(yàn)。
ADF檢驗(yàn)全稱是 Augmented Dickey-Fuller test,顧名思義,ADF是 Dickey-Fuller檢驗(yàn)的增廣形式。DF檢驗(yàn)只能應(yīng)用于一階情況,當(dāng)序列存在高階的滯后相關(guān)時,可以使用ADF檢驗(yàn),所以說ADF是對DF檢驗(yàn)的擴(kuò)展。
二、單位根
一階AR模型,即AR(1)的情況,其模型如下:
如果α1 = 1 ,成為單位根。該模型就是隨機(jī)游走,我們知道它是不平穩(wěn)的。
換個思路想象一下,當(dāng)α1 = 1 ,那么前一時刻的收益率對當(dāng)下時刻的影響是100%的,不會減弱;那么就算是很遠(yuǎn)的某個時刻,當(dāng)下對它的影響還是不會消除,所以方差(表現(xiàn)在波動)是受前面所有時刻的影響,是和 t 相關(guān)的,因此不平穩(wěn);
如果α1 > 1,那么當(dāng)前時刻的波動不僅受前面時刻的影響,還被放大了,所以肯定不平穩(wěn);
只有當(dāng)α1 < 1 的時候,前面時刻的波動對當(dāng)前時刻的影響會逐漸減小。可以計算此時的自協(xié)方差以及自相關(guān)系數(shù)是一個固定值。所以這種情況下,序列是平穩(wěn)的。
三、ADF檢驗(yàn)的原理
ADF檢驗(yàn)就是判斷序列是否存在單位根:如果序列平穩(wěn),就不存在單位根;否則,就會存在單位根。
所以,ADF檢驗(yàn)的 H0 假設(shè)就是存在單位根,如果得到的顯著性檢驗(yàn)統(tǒng)計量小于三個置信度(10%,5%,1%),則對應(yīng)有(90%,95%,99%)的把握來拒絕原假設(shè)。
四、ADF檢驗(yàn)的python實(shí)現(xiàn)
ADF檢驗(yàn)可以通過python中的 statsmodels 模塊,這個模塊提供了很多統(tǒng)計模型。
1.引入庫
代碼如下:
from statsmodels.tsa.stattools import adfuller
2.函數(shù)說明
adfuller函數(shù)的參數(shù)意義分別是:
x
:一維的數(shù)據(jù)序列。maxlag
:最大滯后數(shù)目。regression
:回歸中的包含項(c:只有常數(shù)項,默認(rèn);ct:常數(shù)項和趨勢項;ctt:常數(shù)項,線性二次項;nc:沒有常數(shù)項和趨勢項)。autolag
:自動選擇滯后數(shù)目(AIC:赤池信息準(zhǔn)則,默認(rèn);BIC:貝葉斯信息準(zhǔn)則;t-stat:基于maxlag,從maxlag開始并刪除一個滯后直到最后一個滯后長度基于 t-statistic 顯著性小于5%為止;None:使用maxlag指定的滯后)。store
:True False,默認(rèn)。regresults
:True 完整的回歸結(jié)果將返回。False,默認(rèn)。
返回值意義為:
adf
:Test statistic,T檢驗(yàn),假設(shè)檢驗(yàn)值。pvalue
:假設(shè)檢驗(yàn)結(jié)果。usedlag
:使用的滯后階數(shù)。nobs
:用于ADF回歸和計算臨界值用到的觀測值數(shù)目。icbest
:如果autolag不是None的話,返回最大的信息準(zhǔn)則值。resstore
:將結(jié)果合并為一個dummy。
五、時間序列分析
1.使用IH2112股指期貨數(shù)據(jù)為例
2.使用IH2112股指期貨數(shù)據(jù)為例
result = adfuller(ih_df["IH2112"].values) print(result)
3. 將數(shù)據(jù)進(jìn)行一階差分滯后
ih_df_diff = np.diff(ih_df["IH2112"].values) result = adfuller(ih_df_diff) print(result)
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用dict.fromkeys()快速生成一個字典示例
這篇文章主要介紹了Python使用dict.fromkeys()快速生成一個字典,結(jié)合實(shí)例形式分析了Python基于dict.fromkeys()生成字典的相關(guān)操作技巧,需要的朋友可以參考下2019-04-04Python如何統(tǒng)計大小寫字母個數(shù)和數(shù)字個數(shù)
這篇文章主要介紹了Python如何統(tǒng)計大小寫字母個數(shù)和數(shù)字個數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Selenium關(guān)閉INFO:CONSOLE提示的解決
這篇文章主要介紹了Selenium關(guān)閉INFO:CONSOLE提示的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12python Popen 獲取輸出,等待運(yùn)行完成示例
今天小編就為大家分享一篇python Popen 獲取輸出,等待運(yùn)行完成示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python ckeditor富文本編輯器代碼實(shí)例解析
這篇文章主要介紹了Python ckeditor富文本編輯器代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06Python開發(fā)WebService系列教程之REST,web.py,eurasia,Django
對于今天的WebService開發(fā),我們至少有兩種選擇:SOAP/WSDL/UDDI系列的; REST風(fēng)格架構(gòu)系列的 ?。?!2014-06-06python用pandas數(shù)據(jù)加載、存儲與文件格式的實(shí)例
今天小編就為大家分享一篇python用pandas數(shù)據(jù)加載、存儲與文件格式的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12pandas將numpy數(shù)組寫入到csv的實(shí)例
今天小編就為大家分享一篇pandas將numpy數(shù)組寫入到csv的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07