这是 Python 中的示例 ADF 测试,用于检查两对之间的协整。然而,最终结果只给出了协整的数值。如何得到协整的历史结果。

取自 http://www.leinenbock.com/adf-test-in-python/

import numpy as np
import statsmodels.api as stat
import statsmodels.tsa.stattools as ts

x = np.random.normal(0,1, 1000)
y = np.random.normal(0,1, 1000)

def cointegration_test(y, x):
    result = stat.OLS(y, x).fit()
    return ts.adfuller(result.resid)

最佳答案

我假设您想测试扩展协整?请注意,您应该使用 sm.tsa.coint 来测试协整。您可以像这样使用 Pandas 测试 realgdp 和 realdpi 之间的历史协整关系

import pandas as pd
import statsmodels.api as sm

data = sm.datasets.macrodata.load_pandas().data

def rolling_coint(x, y):
    yy = y[:len(x)]
    # returns only the p-value
    return sm.tsa.coint(x, yy)[1]

historical_coint = pd.expanding_apply(data.realgdp, rolling_coint,
                                      min_periods=36,
                                      args=(data.realdpi,))

关于python - 绘制两对之间的历史协整值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23224842/

10-12 15:29