如何解读 adfuller 测试结果?

How to interpret adfuller test results?

我很难理解 p 值的概念和 adfuller 检验的各种其他结果。

我使用的代码:

(我在 Stack Overflow 中找到了这段代码)

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 : 浮动 检验统计
p值:浮点数 MacKinnon 基于 MacKinnon (1994, 2010) 的近似 p 值
使用延迟:整数 使用的滞后数
贵族 : int 用于 ADF 回归和计算临界值的观测值数量
临界值:dict 检验统计量在 1 %、5 % 和 10 % 水平的临界值。基于 MacKinnon (2010)
icbest : 浮动 autolag 不是 None 时的最大化信息准则。
resstore:ResultStore,可选

我无法完全理解结果,希望有人愿意通俗易懂地解释一下。我找到的所有解释都非常技术性。

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

我完全错了吗?

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

你在问题中所说的是正确的。一旦您对 OLS 回归残差应用 Adfuller 检验,您就是在检查您的残差是否具有任何异方差性,换句话说,如果您的残差是平稳的。

由于你的 adfuller p 值低于某个指定的 alpha(即:5%),那么你可以拒绝原假设 (Ho),因为得到 p 值的概率低至纯粹的运气(随机机会)是不太可能的。

一旦拒绝了Ho,就可以接受备择假设(Ha),在这种情况下就是:残差序列是平稳的。

这里是给你的假设关系:

Ho:序列不是平稳的,它呈现异方差性。换句话说,你的残差取决于它自己(即:yt 取决于 yt-1,yt-1 取决于 yt-2 ...,依此类推)

哈:序列是平稳的(这通常是我们在回归分析中所希望的)。无需再做任何事情。

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

备择假设:序列存在平稳性

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”周期。

第四个数据点: 1954 年:分析中使用的观测数。

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

由于临界值-1.8>-2.5、-3.4、-2.8(t值在1%、5%和10%的置信区间),不能拒绝原假设。所以你的数据存在非平稳性

此外,p 值 0.35>0.05(如果我们采用 5% 的显着性水平或 95% 的置信区间),则不能拒绝原假设。

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