使用Statsmodels创建时间序列时发生TypeError

2024-04-18 20:43:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力理解如何在statsmodels中准确地使用ARIMA。你知道吗

我试图将ARIMA模型与我拥有的一组数据相匹配,并且使用与this question的答案相同的想法。你知道吗

但是,我不知道我的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)

Tags: 数据noneargsorderslicepricegridfit
1条回答
网友
1楼 · 发布于 2024-04-18 20:43:06

以下可能是解决方案。您应该包含足够的代码,以便可以复制并运行它来重现问题。

在对brute的调用中,将args=(opening_price)更改为args=(opening_price,)。您没有说明opening_price是什么,但我假设它是一个序列,当您编写args=(opening_price)(相当于args=opening_price)时,opening_price的元素在传递给objfunc时会展开成独立的参数。正确的形式args=(opening_price,)确保args是包含单个元素opening_price的元组。你知道吗

相关问题 更多 >