中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現ADF檢驗

發布時間:2022-01-12 16:50:50 來源:億速云 閱讀:716 作者:iii 欄目:大數據

本篇內容介紹了“python怎么實現ADF檢驗”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

ADF檢驗

在使用很多時間序列模型的時候,如 ARMA、ARIMA,都會要求時間序列是平穩的,所以一般在研究一段時間序列的時候,第一步都需要進行平穩性檢驗,除了用肉眼檢測的方法,另外比較常用的嚴格的統計檢驗方法就是ADF檢驗,也叫做單位根檢驗。

ADF檢驗全稱是 Augmented Dickey-Fuller test,顧名思義,ADF是 Dickey-Fuller檢驗的增廣形式。DF檢驗只能應用于一階情況,當序列存在高階的滯后相關時,可以使用ADF檢驗,所以說ADF是對DF檢驗的擴展。
單位根(unit root)

在做ADF檢驗,也就是單位根檢驗時,需要先明白一個概念,也就是要檢驗的對象——單位根

當一個自回歸過程中:y_{t} = by_{t-1} + a + \epsilon _{t} ,如果滯后項系數b為1,就稱為單位根。當單位根存在時,自變量和因變量之間的關系具有欺騙性,因為殘差序列的任何誤差都不會隨著樣本量(即時期數)增大而衰減,也就是說模型中的殘差的影響是永久的。這種回歸又稱作偽回歸。如果單位根存在,這個過程就是一個隨機漫步(random walk)。

ADF檢驗的原理

ADF檢驗就是判斷序列是否存在單位根:如果序列平穩,就不存在單位根;否則,就會存在單位根。

所以,ADF檢驗的 H0 假設就是存在單位根,如果得到的顯著性檢驗統計量小于三個置信度(10%,5%,1%),則對應有(90%,95,99%)的把握來拒絕原假設。

ADF檢驗的python實現

ADF檢驗可以通過python中的 statsmodels 模塊,這個模塊提供了很多統計模型。

使用方法如下:

導入adfuller函數

from statsmodels.tsa.stattools import adfuller

adfuller函數的參數意義分別是:
1、x:一維的數據序列。
2、maxlag:最大滯后數目。
3、regression:回歸中的包含項(c:只有常數項,默認;ct:常數項和趨勢項;ctt:常數項,線性二次項;nc:沒有常數項和趨勢項)
4、autolag:自動選擇滯后數目(AIC:赤池信息準則,默認;BIC:貝葉斯信息準則;t-stat:基于maxlag,從maxlag開始并刪除一個滯后直到最后一個滯后長度基于 t-statistic 顯著性小于5%為止;None:使用maxlag指定的滯后)
5、store:True  False,默認。
6、regresults:True 完整的回歸結果將返回。False,默認。

返回值意義為:

1、adf:Test statistic,T檢驗,假設檢驗值。
2、pvalue:假設檢驗結果。
3、usedlag:使用的滯后階數。
4、nobs:用于ADF回歸和計算臨界值用到的觀測值數目。
5、icbest:如果autolag不是None的話,返回最大的信息準則值。
6、resstore:將結果合并為一個dummy。

def adfuller(x, maxlag=None, regression="c", autolag='AIC',
             store=False, regresults=False):
    """
    Augmented Dickey-Fuller unit root test
    The Augmented Dickey-Fuller test can be used to test for a unit root in a
    univariate process in the presence of serial correlation.
    Parameters
    ----------
    x : array_like, 1d
        data series
    maxlag : int
        Maximum lag which is included in test, default 12*(nobs/100)^{1/4}
    regression : {'c','ct','ctt','nc'}
        Constant and trend order to include in regression
        * 'c' : constant only (default)
        * 'ct' : constant and trend
        * 'ctt' : constant, and linear and quadratic trend
        * 'nc' : no constant, no trend
    autolag : {'AIC', 'BIC', 't-stat', None}
        * if None, then maxlag lags are used
        * if 'AIC' (default) or 'BIC', then the number of lags is chosen
          to minimize the corresponding information criterion
        * '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
    store : bool
        If True, then a result instance is returned additionally to
        the adf statistic. Default is False
    regresults : bool, optional
        If True, the full regression results are returned. Default is False
    Returns
    -------
    adf : float
        Test statistic
    pvalue : float
        MacKinnon's approximate p-value based on MacKinnon (1994, 2010)
    usedlag : int
        Number of lags used
    nobs : int
        Number of observations used for the ADF regression and calculation of
        the critical values
    critical values : dict
        Critical values for the test statistic at the 1 %, 5 %, and 10 %
        levels. Based on MacKinnon (2010)
    icbest : float
        The maximized information criterion if autolag is not None.
    resstore : ResultStore, optional
        A dummy class with results attached as attributes
    """

 現在我們用一個RB1309的收盤數據來進行ADF檢驗,看一下結果:

python怎么實現ADF檢驗

result = adfuller(rb_price)
print(result)


(-0.45153867687808574, 0.9011315454402649, 1, 198, {'5%': -2.876250632135043, '1%': -3.4638151713286316, '10%': -2.574611347821651}, 1172.4579344852016)

看到 t-statistic 的值 -0.451 要大于10%的顯著性水平,所以無法拒絕原假設,另外,p-value的值也很大。

將數據進行一階差分滯后,看一下結果如何:

python怎么實現ADF檢驗

rb_price = np.diff(rb_price)
result = adfuller(rb_price)
print(result)

(-15.436034211511204, 2.90628134201655e-28, 0, 198, {'5%': -2.876250632135043, '1%': -3.4638151713286316, '10%': -2.574611347821651}, 1165.1556545612445)

 看到 t-statistic 的值 -15 要小于5%,所以拒絕原假設,另外,p-value的值也很小,所以說明一階差分之后的數據是平穩的。

“python怎么實現ADF檢驗”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴楚县| 晋宁县| 平泉县| 江川县| 孟村| 昭觉县| 西畴县| 色达县| 田东县| 商河县| 抚顺县| 什邡市| 张家港市| 汽车| 岳阳县| 九江县| 连山| 汾阳市| 巫溪县| 武山县| 信丰县| 腾冲县| 施甸县| 门头沟区| 松阳县| 治县。| 永兴县| 双柏县| 华阴市| 平凉市| 贵南县| 百色市| 浦城县| 南和县| 正定县| 理塘县| 虹口区| 华宁县| 高碑店市| 达孜县| 四子王旗|