Python 使用Statsmodels创建时间序列时出现类型错误
我正在努力理解如何在Python 使用Statsmodels创建时间序列时出现类型错误,python,scipy,Python,Scipy,我正在努力理解如何在statsmodels中准确地使用ARIMA 我试图将一个ARIMA模型与我拥有的一组数据相匹配,并且使用了与答案中相同的想法 但是,我不知道作为解释变量的endog值需要是什么 我的代码如下,我得到了错误: TypeError: objfunc() takes exactly 2 arguments (20 given) 行中: brute(objfunc, grid, args=(opening_price), finish=None) 我只是传递了我在这个时间序列中
statsmodels
中准确地使用ARIMA
我试图将一个ARIMA模型与我拥有的一组数据相匹配,并且使用了与答案中相同的想法
但是,我不知道作为解释变量的endog
值需要是什么
我的代码如下,我得到了错误:
TypeError: objfunc() takes exactly 2 arguments (20 given)
行中:
brute(objfunc, grid, args=(opening_price), finish=None)
我只是传递了我在这个时间序列中的20个数据点,我对它的预期感到困惑,因为这是不正确的
def objfunc(order, endog):
fit = ARIMA(endog, order).fit()
return fit.aic()
from scipy.optimize import brute
grid = (slice(1, 3, 1), slice(1, 3, 1), slice(1, 3, 1))
brute(objfunc, grid, args=(opening_price), finish=None)
以下可能是一个解决方案。您应该包含足够的代码,以便可以复制并运行它来重现问题
在对brute
的调用中,将args=(开盘价)
更改为args=(开盘价)
。您没有显示什么是opening\u price
,但我假设它是一个序列,当您编写args=(opening\u price)
(相当于args=opening\u price
)时,opening\u price
的元素在传递到objfunc
时会展开为单独的参数。正确的格式,args=(期初价格,)
,确保args
是一个包含单个元素的元组,期初价格