代码之家  ›  专栏  ›  技术社区  ›  Sid

如何解释adfuller测试结果?[已关闭]

  •  13
  • Sid  · 技术社区  · 7 年前

    我正在努力理解p值的概念和adfuller测试的各种其他结果。

    我使用的代码:

    import numpy as np
    import os
    import pandas as pd
    import statsmodels.api as sm
    import cython
    
    import statsmodels.tsa.stattools as ts
    
    loc = r"C:\Stock Study\Stock Research\Hist Data"
    os.chdir(loc)
    xl_file1 = pd.ExcelFile("HDFCBANK.xlsx")
    xl_file2 = pd.ExcelFile("KOTAKBANK.xlsx")
    y1 = xl_file1.parse("Sheet1")
    x1 = xl_file2.parse("Sheet1")
    
    x = x1['Close']
    y = y1['Close']
    
    
    def cointegration_test(y, x):
        # Step 1: regress on variable on the other
        ols_result = sm.OLS(y, x).fit()
        # Step 2: obtain the residual (ols_resuld.resid)
        # Step 3: apply Augmented Dickey-Fuller test to see whether
        #        the residual is unit root
        return ts.adfuller(ols_result.resid)
    

    (-1.8481210964862593, 0.35684591783869046, 0, 1954, {'10%': -2.5675580437891359, '1%': -3.4337010293693235, '5%': -2.863020285222162}, 21029.870846458849)
    

    如果我正确理解测试:

    价值
    adf:浮动 测试统计
    pvalue:浮点
    usedlag:int 使用的延迟数
    nobs:int 用于ADF回归和临界值计算的观察数
    临界值:dict 1%、5%和10%水平下的测试统计临界值。基于MacKinnon(2010)
    icbest:浮动 如果自滞后不是无,则为最大信息准则。
    resstore:ResultStore,可选

    我无法完全理解结果,希望有人愿意用外行的语言解释。我发现的所有解释都是非常技术性的。

    我的解释是:它们是协整的,即我们未能反驳零假设(即单位根存在)。置信水平是百分比数字。

    我完全错了吗?

    3 回复  |  直到 3 年前
        1
  •  16
  •   noob    5 年前

    零假设:序列中存在非平稳性。

    替代假设:序列中存在平稳性

    Data: (-1.8481210964862593, 0.35684591783869046, 0, 1954, {'10%': -2.5675580437891359, 
    '1%': -3.4337010293693235, '5%': -2.863020285222162}, 21029.870846458849)
    

    让我们逐个打断数据。

    第一个数据点: -1.8481210964862593:您案例中数据的临界值

    第二个数据点: 0.35684591783869046:零假设不会被拒绝的概率(p值)

    0:回归中用于确定t统计量的滞后数。所以这里没有回到“0”周期的自相关性。

    第四个数据点:

    第五个数据点: {10%':-2.5675580437891359,'1%':-3.4337010293235,'5%':-2.863020285222162}:对应于adfuller测试的T值。

    自临界值-1.8>-2.5、-3.4、-2.8(t值在1%、5%和10%置信区间),不能拒绝零假设。因此,数据中存在非平稳性

    p值也为0.35>0.05(如果我们取5%显著性水平或95%置信区间),则不能拒绝零假设。

    因此,数据是非平稳的(这意味着它与时间有关)

        2
  •  8
  •   desertnaut SKZI    3 年前

    你在问题中所说的是正确的。在OLS回归残差上应用Adfuller检验后,您正在检查残差是否具有任何异方差性,换句话说,如果残差是固定的。

    由于你的adfuller p值低于某个特定的α(即:5%),那么你可能会拒绝零假设(Ho),因为仅仅靠运气(随机机会)获得如此低的p值的概率是非常不可能的。

    一旦Ho被拒绝,替代假设(Ha)就可以被接受,在这种情况下,它将是:剩余序列是平稳的。

    以下是假设关系:

    何:这个序列不是平稳的,它呈现异方差性。换句话说,你的留数依赖于自身(即:yt依赖于yt-1,yt-1依赖于yt-2…,依此类推)

    Ha:序列是平稳的(这通常是我们在回归分析中所希望的)。再也不需要做什么了。

        3
  •  8
  •   desertnaut SKZI    3 年前

    拒绝零假设的典型方法是,t检验结果-1.84小于所有临界值(1%、5%、10%),在这种情况下,它不小于临界值。