如何使用statsmodels拟合ARMAX模型

时间:2014-11-21 08:55:40

标签: python statsmodels

如何使用statsmodels ARMA流程来拟合表格的差分方程。

y[k] = - a1 * y[k-1] + b0 * u[k] + b1 * u[k-1] + c0 * e[k] + c1 * e[k-1]

我不知道如何设置exog矩阵。 E.g。

import statsmodels.api as sm
# some stupid data

y = np.random.randn(100)
u = np.ones((100,2))
armax = sm.tsa.ARMA(y, order=(1, 1), exog=u).fit()

结果

ValueError: could not broadcast input array from shape (2) into shape (3)

它可能很容易解决,但我是该领域的新手。

感谢。

(我使用statsmodels 0.6)

1 个答案:

答案 0 :(得分:6)

这里的问题是你传递两个常量列,然后告诉适合用trend='nc'添加另一个常量列。不可否认,我们应该在这里更优雅地失败,但你需要尝试像

这样的东西
u = np.random.randn(100, 2)

而不是常数exog。