以下是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)
答案 0 :(得分:6)
我假设你想测试扩展协整?请注意,您应该使用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,))