如何从statsmodels.tsa.api中提取系数矩阵

问题描述

https://www.statsmodels.org/dev/vector_ar.html

statsmodels中的VAR使您可以拟合给定时间序列的向量自回归模型。向量自动回归为:

Y_t  = A_1Y_{t-1} + A_2Y_{t-2} + ... + E_t

其中,Y_t是向量,A_i是系数矩阵,E_t是残差向量。我在从模型中提取A_i矩阵时遇到困难。

from statsmodels.tsa.api import VAR
import numpy as np
timeseries = np.random.standard_normal([1000,10])
model = VAR(timeseries)
model_fit = model.fit(3)
model_fit.summary()

问题在于summary()使得每个变量对另一个变量的影响。可以提取矩阵形式的系数吗?

我有100个变量和3阶滞后。手动提取系数很耗时。我不敢相信这种流行的程序包不允许编写model_fit.coef_[1]之类的东西,而要获得100 * 100矩阵以求第1阶滞后。

有什么办法吗?

解决方法

不确定确切的位置,但是您可以尝试类似的操作

request.getAttribute("micronaut.http.serviceId")

然后查看 summary_object.model._cache ,这是一个包含大量值的大型词典。不确定这是否是您想要的数据所在的地方,但是您可以通过执行我的操作并使用pycharm调试器/控制台进行检查来找到它。

enter image description here

enter image description here