下面是一个有3个时间序列的例子,我认为它们应该按照定义进行联合集成。然而,只有一个协整关系给出了协整时间序列。在
np.random.seed(1234)
nums = np.random.normal(size=10000)
z = np.cumsum(nums)
p = .3*z + np.random.normal(size=10000)
q = .6*z + np.random.normal(size=10000)
r = .2*z + np.random.normal(size=10000)
ordering1 = np.stack((p,q,r),axis=1)
from statsmodels.tsa.vector_ar.vecm import coint_johansen
jres1 = coint_johansen(ordering1, 0, 1)
d1 = np.dot(ordering1,jres1.evec[0])
plt.plot(d1)
d2 = np.dot(ordering1,jres1.evec[1])
plt.plot(d2)
d3 = np.dot(ordering1,jres1.evec[2])
plt.plot(d3)
from statsmodels.tsa.stattools import adfuller
def ADF(v, max_d=1, level='10%'):
adf = adfuller(v, max_d)
if adf[0] < adf[4][level]:
return True
else:
return False
print(ADF(d1))
print(ADF(d2))
print(ADF(d3))
我的问题是:
为什么在ADF测试中只有一个timeseries是co-integrated的,这个例子应该可以找到co-integrated-series?
我如何知道应该使用哪些可能的协整关系来获得最多的协同集成时间序列。在这个例子中,它是第三个,但我的测试表明,到目前为止,情况并不总是如此。
目前没有回答
相关问题 更多 >
编程相关推荐