使用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)
有人可以告诉我该怎么做才能解决问题?感谢。
答案 0 :(得分:3)
使用arma11.resid
而不加括号()
。
说明:
模型中的许多结果都是懒惰计算的,也就是说,它们只是按需计算,然后存储以供进一步使用。这意味着这些结果基本上是缓存的属性,通过装饰器实现。
statsmodels的文档在这方面有点令人困惑,因为sphinx
将这些缓存的属性呈现为方法并包括括号,即使我们使用它而没有括号。
常规Python提示:如果错误消息显示对象不可调用,那么我们可以在不调用它的情况下尝试,即不使用()
。
(在我看来,我不记得哪个是属性,哪个是方法或可调用。)