2014-11-21 135 views
3

如何使用statsmodels ARMA过程来拟合窗体的差分方程。如何使用statsmodels拟合ARMAX模型

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

我不知道如何设置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() 

结果

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

它可能容易解决,但我新的领域。

谢谢。

(我使用statsmodels 0.6)

回答

5

这里的问题是,你传递两个常量列,然后告诉适合与trend='nc'新增一个常量列。无可否认,我们应该在这里失败得更加优雅,但是你需要尝试类似于

u = np.random.randn(100, 2) 

而不是常数的exog。