from statsmodels.tsa.stattools import adfuller
可以看到里面的參數(shù)
x:array_like裆赵,1維拥诡,時間序列
maxlag:int型,最大延遲階數(shù)
regression:Constant and trend order to include in regression艇潭,回歸中包含的常數(shù)和趨勢階數(shù)坑填。解釋一下:ADF檢驗(yàn)和DF檢驗(yàn)一樣可以用于三種類型的單位根檢驗(yàn)。(王燕虹蒋,應(yīng)用時間序列分析糜芳,6.3.2ADF檢驗(yàn)飒货,分了三種類型,代碼里給了四種類型)
* 'c' : constant only (default)峭竣,默認(rèn)塘辅,僅有常數(shù)均值。
* 'ct' : constant and trend皆撩,有常數(shù)均值扣墩,有趨勢。
* 'ctt' : constant, and linear and quadratic trend扛吞,有常數(shù)均值有線性和二次趨勢呻惕。
* 'nc' : no constant, no trend,無常數(shù)均值滥比,無趨勢亚脆。
當(dāng)選擇的回歸類型不同時,檢驗(yàn)結(jié)果也會不同盲泛。我在這里深深地踩了一個坑型酥。可以看一下時序圖查乒,你的數(shù)據(jù)是否有趨勢弥喉,是否有常數(shù)均值。
autolag : {'AIC', 'BIC', 't-stat', None}玛迄,自動選擇延遲階數(shù)
* if None, then maxlag lags are used由境,如果選擇none,則使用最大延遲階數(shù)
* if 'AIC' (default) or 'BIC', then the number of lags is chosen
to minimize the corresponding information criterion蓖议,如果選擇AIC或者BIC虏杰,則延遲階數(shù)是根據(jù)相應(yīng)的最小信息準(zhǔn)則決定的。(BIC就是SBC準(zhǔn)則)(王燕勒虾,應(yīng)用時間序列分析纺阔,3.3.6模型優(yōu)化)
* 't-stat' based choice of maxlag. Starts with maxlag and drops a
lag until the t-statistic on the last lag length is significant
using a 5%-sized test,這個選擇要基于最大延遲maxlag修然,從最大延遲階數(shù)開始笛钝,每次減少一個延遲,直到某一階延遲的t統(tǒng)計(jì)量對5%來說是顯著的愕宋。(也就是說p_value值小于0.05玻靡,顯著拒絕原假設(shè),證明無單位根中贝,也就是說序列是平穩(wěn)的)
這是我的數(shù)據(jù)的檢測結(jié)果囤捻。
第一部分是τ(tao)統(tǒng)計(jì)量的值。
第二部分是p_value的值邻寿。
第三部分是結(jié)果使用的延遲階數(shù)蝎土。
第四部分是ADF回歸和計(jì)算臨界值所使用的觀察次數(shù)视哑。
第五部分是臨界值。
第六部分是最大的信息準(zhǔn)則的值(如果autolag 非空)誊涯,也就是AIC或者BIC的值黎炉。
當(dāng)我們看序列是否平穩(wěn)的結(jié)果時,一般首先看第二部分的p_value值醋拧。如果p_value值比0.05小慷嗜,證明有單位根,也就是說序列平穩(wěn)丹壕。如果p_value比0.05大則證明非平穩(wěn)庆械。
源碼里有一句note,如果p_value接近于0.05時菌赖,則要通過臨界值進(jìn)行判斷缭乘。也就是說如果p_value接近于0.05就要通過第一部分τ(tao)統(tǒng)計(jì)量的值和第五部分的臨界值進(jìn)行對比。τ(tao)統(tǒng)計(jì)量的值比臨界值小琉用,就證明平穩(wěn)堕绩,反之就是非平穩(wěn)。我的檢測結(jié)果τ(tao)統(tǒng)計(jì)量的值再臨界值5%-10%之間邑时。比5%的臨界值大奴紧。這里的1%,5%晶丘,10%對應(yīng)的是99%黍氮,95%,90%置信區(qū)間浅浮。
ADF檢驗(yàn)只適合AR(P)模型沫浆。
且對方差齊性效果好,對異方差性效果不佳滚秩。異方差可用PP檢驗(yàn)专执。