python - 使用 Statsmodels 创建时间序列时出现 TypeError

标签 python scipy

我正在努力了解如何在 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)

最佳答案

以下可能是一个解决方案。您确实应该包含足够的代码,以便可以复制和运行以重现问题。

brute 的调用中,将 args=(opening_price) 更改为 args=(opening_price,)。你没有显示 opening_price 是什么,但我假设它是一个序列,当你写 args=(opening_price) (相当于 args= opening_price),当传递给 objfunc 时,opening_price 的元素被扩展为单独的 参数。正确的形式 args=(opening_price,) 确保 args 是一个包含单个元素 opening_price 的元组。

关于python - 使用 Statsmodels 创建时间序列时出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326035/

相关文章:

python - 智能地打开 Windows 上已安装的应用程序

python - 如何摆脱 NameError 和 TypeError

Python time.strptime() 给出了错误的结果?

python - numpy 矩阵棋盘图案变化

python - 如何替换不在列表中的 Pandas Dataframe 中的所有值?

python - “numpy.float64”对于 scipy 函数质心不可迭代

python - 如何在一维数组中找到槽

python - 如何在 Python 中计算自协方差

python - 为什么 Sonic Visualizer 和我的 Python 脚本之间的频谱分析存在 dB 差异?

numpy - 与 scipy 的累积辛普森集成