用Python解释VECM模型的问题

问题描述

我有一个名为 null 的数据集,其中包含 3 个变量列 goldret、equityret 和 btcret。 我发现协整等级为 3,我尝试运行 allret_q2btc 提供的 VCEM 模型,但是,我无法理解结果。

statsmodels.tsa.vector_ar.vecm

下图给出了上述代码的结果。但是,与 R 或 Eviews 不同,我无法理解结果的格式,我无法解释结果。请帮我解决这个问题。

同时我想知道是否有人使用过上述包。如果是,请告诉我其中的 VECMResult 模块有什么用处。附上任何示例,不胜感激。

Image1 Image2

解决方法

首先,记住 statsmodel 用于 VECM 的这个方程:Δyt=Πyt−1+Γ1Δyt−1+…+Γkar−1Δyt−kar+1+ut

您在 image1 的前 3 个表中看到的是 VECM(kar-1) 模型的 kar−1(在本例中为 1)参数矩阵 Γ1,...,Γkar−1 的估计值。您可以使用 VECM_fit.gamma 获得准确的系数。

其他表格是关于 alpha 和 beta 的估计值。您可以直接使用 VECM_fit.alphaVECM_fit.beta 获得这两个 neqsxcoint_rank(在本例中为 3x3)矩阵。

注意:Π=αβ′(Π=VECM_fit.alpha.dot(VECM_fit.beta.T))

您可以在此处阅读有关 VECMResult 属性的更多信息:https://www.statsmodels.org/stable/generated/statsmodels.tsa.vector_ar.vecm.VECMResults.html#statsmodels.tsa.vector_ar.vecm.VECMResults

您还可以通过 VECM_fit.var_rep 获得 VECM(1) 模型的 VAR(2) 表示。

最后,您可以检查一下:

  • VECM_fit.var_rep[0] = VECM_fit.gamma + VECM_fit.alpha.dot(VECM_fit.beta.T) + np.diag(v=[1,1,1])
  • VECM_fit.var_rep[1] = -VECM_fit.gamma