statsmodels.tsa.arima_model:TypeError:'Series'对象不可调用

时间:2015-11-18 09:18:00

标签: python exception statsmodels

使用statsmodels.tsa.arima_model.ARMA构建ARMA模型后,我想使用类.resid()的{​​{1}}方法来模拟模型的错误。但是,在执行期间,我收到了一个错误:

ARMAResult

实际上,statsmodels.tsa.arima_model.ARMAResults.resid()的源代码如下:

Traceback (most recent call last):
  File "smtest.py", line 161, in <module>
    arma(df, 'input')
  File "smtest.py", line 81, in arma
    print arma11.resid()
TypeError: 'Series' object is not callable

我的部分代码:

@cache_readonly
def resid(self):
    return self.model.geterrors(self.params)

有人可以告诉我该怎么做才能解决问题?感谢。

1 个答案:

答案 0 :(得分:3)

使用arma11.resid而不加括号()

说明:

模型中的许多结果都是懒惰计算的,也就是说,它们只是按需计算,然后存储以供进一步使用。这意味着这些结果基本上是缓存的属性,通过装饰器实现。

statsmodels的文档在这方面有点令人困惑,因为sphinx将这些缓存的属性呈现为方法并包括括号,即使我们使用它而没有括号。

常规Python提示:如果错误消息显示对象不可调用,那么我们可以在不调用它的情况下尝试,即不使用()。 (在我看来,我不记得哪个是属性,哪个是方法或可调用。)