如何在 python 中生成 IRF() 函数的实际结果?

How to generate the actual results of an IRF() function in python?

我无法生成 IRF 的实际基础值。请参阅简单 VAR 模型的代码。

import numpy as np
import statsmodels.tsa as sm
model = VAR(df_differenced.astype(float))
results = model.fit()
irf = results.irf(10)

我可以用这段代码生成结果 IRF 图:

irf.plot(orth=False)

但是,我无法生成基础值。我想这样做以获得精确的数字。视觉解释 IRF 并不那么准确。使用 summary() 没有为我提供这些信息。

非常感谢您的帮助。提前致谢。

您需要使用 irfs 属性 或 cum_effects(累积 irf)。 results.irf returns 一个 IRAnalysis object。文档低于应有的标准。

import numpy as np
import statsmodels.tsa as sm
import pandas as pd

df = pd.DataFrame(np.random.standard_normal((300,3)))
model = VAR(df)
results = model.fit()
irf = results.irf(10)
print(irf.irfs)
print(irf.cum_effects)

您接近实际答案了。 你可以输入

results.irf(10)

或尝试

results.impulse_responses(10)

它会给你一个 table 和来自 VAR

的实际点估计