首页 > 解决方案 > 如果我使用 Johansen Test 来确定 python 中两个时间序列之间的相关性,如何读取测试结果?

问题描述

我正在尝试使用 2 个时间序列拟合向量自动回归模型。我需要在应用 VAR 之前执行协整测试以检查两个时间序列是否相关。我能够成功实施 Johansen 测试,但无法读取测试结果。我正在寻找的答案是结果是否显示两个时间序列之间的相关性。

我已经熟悉 Augmented Dicky Fuller 检验,并且我知道如何使用检验统计量和临界值推断单变量时间序列的平稳性

以下代码给出了特征值。

from statsmodels.tsa.vector_ar.vecm import coint_johansen
coint_johansen(train_model_mul,-1,1).eig

>>>array([0.09947583, 0.00235395])

以下代码给出了跟踪统计的临界值(90,95,99)。

coint_johansen(train_model_mul,-1,1).cvt
>>>array([[10.4741, 12.3212, 16.364 ],
       [ 2.9762,  4.1296,  6.9406]])

以下代码给出了跟踪统计值。

coint_johansen(train_model_mul,-1,1).lr1
>>>array([83.2438963 ,  1.83117555])

标签: pythontime-series

解决方案


您可以解决此问题的一种方法是coint.test()在 statsmodels 中使用。

例如,假设我们正在寻求确定油价走势与标准普尔 500 指数之间是否存在协整。运行协整的 Engle-Granger 检验(零假设不存在协整):

import statsmodels.tsa.stattools as ts 
result=ts.coint(oil, gspc)
result

结果如下:

(-2.2598677154038014,
 0.3937399201683496,
 array([-3.91847791, -3.34837749, -3.05294328]))

正如我们所见,0.39 > 0.05 的 p 值意味着不能在 5% 的显着性水平上拒绝无协整的原假设。

你可以用你的数据试试 Engle-Granger,看看读数是什么——它可能被证明更简单。


推荐阅读