如何使用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)
答案 0 :(得分:6)
这里的问题是你传递两个常量列,然后告诉适合用trend='nc'
添加另一个常量列。不可否认,我们应该在这里更优雅地失败,但你需要尝试像
u = np.random.randn(100, 2)
而不是常数exog。