统计模型:vector_ar 和 IRAnalysis
Statsmodels: vector_ar and IRAnalysis
我正在尝试使用 statsmodels.tsa 估计 -1 标准差冲击对 3 维 VAR 的脉冲响应函数,但是我目前在设置冲击幅度方面遇到问题。
这为我提供了 1 s.d 的 IRF。震撼,默认:
import numpy as np
import statsmodels.tsa as sm
model = sm.vector_ar.var_model.VAR(endog = data)
fitted = model.fit()
shock= -1*fitted.sigma_u
irf = sm.vector_ar.irf.IRAnalysis(model = fitted)
函数 IRAnalysis 接受一个参数 P,一个设置冲击的上对角矩阵,我在查看源代码时发现了这个。但是如下所示输入P似乎没有任何作用。
irf = statsmodels.tsa.vector_ar.irf.IRAnalysis(model = fitted, P = -np.linalg.cholesky(model.fitted_U))
非常感谢您的帮助。
提前致谢。
我也有同样的问题,终于找到了适合我的方法。
我发现将 VAR 模型转换为其 MA 表示是调整冲击大小的最佳方式,而不是明确使用 IRAnalysis。
from statsmodels.tsa.vector_ar.irf import IRAnalysis
J = fitted.ma_rep(T)
J = shock*np.array(J)
这将为您提供 T 周期的 irfs 输出。
我还想要我的绘图上的标准误差带,所以我也做了类似于该特定函数的操作。
G, H = fitted.irf_errband_mc(orth=False, repl=1000, steps=T, signif=0.05, seed=None, burn=100, cum=False)
希望对您有所帮助
我正在尝试使用 statsmodels.tsa 估计 -1 标准差冲击对 3 维 VAR 的脉冲响应函数,但是我目前在设置冲击幅度方面遇到问题。
这为我提供了 1 s.d 的 IRF。震撼,默认:
import numpy as np
import statsmodels.tsa as sm
model = sm.vector_ar.var_model.VAR(endog = data)
fitted = model.fit()
shock= -1*fitted.sigma_u
irf = sm.vector_ar.irf.IRAnalysis(model = fitted)
函数 IRAnalysis 接受一个参数 P,一个设置冲击的上对角矩阵,我在查看源代码时发现了这个。但是如下所示输入P似乎没有任何作用。
irf = statsmodels.tsa.vector_ar.irf.IRAnalysis(model = fitted, P = -np.linalg.cholesky(model.fitted_U))
非常感谢您的帮助。 提前致谢。
我也有同样的问题,终于找到了适合我的方法。
我发现将 VAR 模型转换为其 MA 表示是调整冲击大小的最佳方式,而不是明确使用 IRAnalysis。
from statsmodels.tsa.vector_ar.irf import IRAnalysis
J = fitted.ma_rep(T)
J = shock*np.array(J)
这将为您提供 T 周期的 irfs 输出。
我还想要我的绘图上的标准误差带,所以我也做了类似于该特定函数的操作。
G, H = fitted.irf_errband_mc(orth=False, repl=1000, steps=T, signif=0.05, seed=None, burn=100, cum=False)
希望对您有所帮助