python - 预测 statsmodel 参数错误

标签 python statsmodels

我正在尝试预测数组的样本外值。 Python代码:

import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA

    dates = pd.date_range('2012-07-09','2012-07-30')
    series = [43.,32.,63.,98.,65.,78.,23.,35.,78.,56.,45.,45.,56.,6.,63.,45.,64.,34.,76.,34.,14.,54.]
    res = pd.Series(series, index=dates)
    r = ARIMA(res,(1,2,0))
    pred = r.predict(start='2012-07-31', end='2012-08-31')

我收到此错误。我看到我给出了两个参数,但编译器返回我给出了 3 个。

Traceback (most recent call last):
  File "XXXXXXXXX/testfile.py", line 12, in <module>
    pred = r.predict(start='2012-07-31', end='2012-08-31')
TypeError: predict() takes at least 2 arguments (3 given)

请帮忙

最佳答案

ARIMA.predict 的调用签名是

predict(self, params, start=None, end=None, exog=None, dynamic=False)

因此,当您调用 r.predict(start='2012-07-31', end='2012-08-31') 时,self 会被绑定(bind)到 r,并且值绑定(bind)到 startend 但所需的位置参数 params 没有绑定(bind)。这就是你得到错误的原因

TypeError: predict() takes at least 2 arguments (3 given)

不幸的是,错误信息具有误导性。 “3 给定”指的是rstartend。 “2 个参数”指的是两个必需的参数,selfparams。 问题是 必需的 位置参数 params 没有给出。

要解决这个问题,您需要参数。通常你通过拟合找到那些参数:

r = r.fit()

调用之前

pred = r.predict(start='2012-07-31', end='2012-08-31')

r.fit() 返回一个 statsmodels.tsa.arima_model.ARIMAResultsWrapper 其中 “内置”参数,因此调用 ARIMAResultWrapper.fit 不需要传递 params


import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA

dates = pd.date_range('2012-07-09','2012-07-30')
series = [43.,32.,63.,98.,65.,78.,23.,35.,78.,56.,45.,45.,56.,6.,63.,45.,64.,34.,76.,34.,14.,54.]
res = pd.Series(series, index=dates)
r = ARIMA(res,(1,2,0))
r = r.fit()
pred = r.predict(start='2012-07-31', end='2012-08-31')
print(pred)

产量

2012-07-31   -39.067222
2012-08-01    26.902571
2012-08-02   -17.027333
...
2012-08-29     0.532946
2012-08-30     0.532447
2012-08-31     0.532780
Freq: D, dtype: float64

关于python - 预测 statsmodel 参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36717603/

相关文章:

Python statsmodel 稳健线性回归 (RLM) 异常值选择

python - 为什么 statsmodels 的 OLS 中的四次线性回归与 LibreOffice Calc 不匹配?

python - statsmodels:使用 patsy 指定非线性回归模型

python - 使用 conv1D 时输入数据和训练数据之间的维度不匹配

python查找JSON中所有出现的键并修改值

python - 在 Pandas 中按升序和降序有条件地对单个列进行排序

python - 字符串中包含换行符(\n),如何用正则表达式将\n替换为\n?

javascript - Python生成的动态刷新页面

python - 使用相同的容器在 Python 中获取可变大小的 numpy 数组的 CDF?

python - 从 python 的 statsmodels 添加图例到马赛克图