如何使用statsmodels拟合ARMAX模型

P3t*_*rus 5 python statsmodels

如何使用statsmodels ARMA过程来拟合表单的差分方程.

y[k] = - a1 * y[k-1] + b0 * u[k] + b1 * u[k-1] + c0 * e[k] + c1 * e[k-1]
Run Code Online (Sandbox Code Playgroud)

我不知道如何设置exog矩阵.例如

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()
Run Code Online (Sandbox Code Playgroud)

结果是

ValueError: could not broadcast input array from shape (2) into shape (3)
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

(我正在使用statsmodels 0.6)

jse*_*old 6

这里的问题是你传递两个常量列,然后告诉适合添加另一个常量列trend='nc'.诚然,我们应该在这里更优雅地失败,但你需要尝试类似的东西

u = np.random.randn(100, 2)
Run Code Online (Sandbox Code Playgroud)

而不是常数exog.