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