Sid*_*Sid 10 math statistics statsmodels
我对统计和编程很陌生。我已经自学了一些,但我很难理解p-valueadfuller 测试的概念和其他各种结果。
我正在使用的代码:
(我在 stockoverflow 上找到了这段代码)
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)
Run Code Online (Sandbox Code Playgroud)
输出:
>(-1.8481210964862593, 0.35684591783869046, 0, 1954, {'10%': -2.5675580437891359, '1%': -3.4337010293693235, '5%': -2.863020285222162}, 21029.870846458849)
Run Code Online (Sandbox Code Playgroud)
如果我正确理解测试:
| 价值 | |
|---|---|
| adf : 浮动 | 检验统计量 |
| pvalue : 浮动 | MacKinnon 基于 MacKinnon (1994, 2010) 的近似 p 值 |
| 使用滞后:int | 使用的滞后数 |
| nobs : int | 用于 ADF 回归和临界值计算的观测数 |
| 临界值:字典 | 1 %、5 % 和 10 % 水平的检验统计的临界值。基于 MacKinnon (2010) |
| icbest : 浮动 | 如果 autolag 不是 None 的最大化信息标准。 |
| resstore : 结果存储,可选 |
我无法完全理解结果,希望有人愿意用外行的语言解释它们。我发现的所有解释都非常技术性。
我的解释是:它们是协整的,即我们未能反驳零假设(即存在单位根)。置信水平是百分比数字。
我完全错了吗?
noo*_*oob 11
零假设:序列中存在非平稳性。
替代假设:序列中存在平稳性
Data: (-1.8481210964862593, 0.35684591783869046, 0, 1954, {'10%': -2.5675580437891359,
'1%': -3.4337010293693235, '5%': -2.863020285222162}, 21029.870846458849)
Run Code Online (Sandbox Code Playgroud)
让我们一一分解数据。
第一个数据点: -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% 的置信区间),则不能拒绝零假设。
因此数据是非平稳的(这意味着它与时间有关)
很惊讶没有人回答这个问题,但我会说拒绝零假设的典型方法是你的 t 检验结果 -1.84 小于所有临界值(1%、5%、10%),其中这种情况下,不低于你的临界值。
如果有人不同意,请插话。
你在问题中说的是正确的。一旦你对你的 OLS 回归残差应用 Adfuller 检验,你就在检查你的残差是否有任何异方差性,换句话说,如果你的残差是固定的。
由于您的 adfuller p 值低于某个指定的 alpha(即:5%),那么您可能会拒绝原假设 (Ho),因为仅靠运气(随机机会)获得 p 值的概率如此之低) 的可能性很小。
一旦 Ho 被拒绝,就可以接受备择假设 (Ha),在这种情况下将是:残差序列是平稳的。
这是你的假设关系:
何:级数不是平稳的,它呈现异方差性。换句话说,您的残差取决于自身(即:yt 取决于 yt-1,yt-1 取决于 yt-2 ...,依此类推)
哈:序列是平稳的(这通常是我们在回归分析中所希望的)。没有什么需要做的了。
如果您的问题仍未解决,请随时与我联系。