我对统计和编程很陌生。我已经自学了一点,但我正在努力理解p-value
的概念以及adfuller测试的各种其他结果。
我正在使用的代码:
(我在stackoverflow上找到了这段代码)
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:float
测试统计
p值:浮点数
MacKinnon基于MacKinnon的近似p值(1994年,2010年)
usedlag:int
使用的滞后数量
nobs:int
用于ADF回归的观察数和临界值的计算
关键值:dict
测试统计数据的临界值为1%,5%和10%。基于MacKinnon(2010)
icbest:漂浮
如果autolag不是None,则最大化信息标准。
resstore:ResultStore,可选
我无法完全理解结果,并希望有人愿意用外行的语言来解释它们。我发现的所有解释都非常技术性。
我的解释是:它们是协整的,即我们没有反驳零假设(即存在单位根)。置信水平是%数。
我完全错了吗?
你在问题中说的是正确的。一旦您对您的OLS回归残留物应用Adfuller测试,您就会检查您的残留物是否具有任何异方差性,换句话说,如果您的残留物是静止的。
由于您的adfuller p值低于某个指定的alpha值(即:5%),那么您可以拒绝原假设(Ho),因为获得p值的概率低于单纯运气(随机机会) )是不太可能的。
一旦Ho被拒绝,可以接受替代假设(Ha),在这种情况下将是:残差序列是静止的。
以下是您的假设关系:
何:这个系列不是静止的,它呈现出异方差性。换句话说,你的残留取决于它自己(即:yt取决于yt-1,yt-1取决于yt-2 ......,依此类推)
哈:这个系列是静止的(这通常是我们在回归分析中所希望的)。没有什么需要做的。
如果您的问题仍然没有解决,请不要犹豫与我联系。
此致
相当惊讶,没有人回答这个,但我会说拒绝零假设的典型方法是你的t检验结果-1.84小于所有临界值(1%,5%,10%)这种情况下,它不低于你的临界值。
如果有人不同意,请加入。