我正在尝试检索ARIMA模型的样本外预测。然而,我不断收到错误,我不确定我现在应该如何继续:(代码如下:
from statsmodels.tsa.arima_model import ARIMA
fit = ARIMA(endog, (1,1,1)).fit()
params = fit.params
forecast = fit.predict(params.all(), start='2015-9-21', end='2016-9-21', typ='levels')
当我只使用
时,它工作得很好(即给我一个结果,但不是一个样本外的…) forecast = fit.predict(params.all(), typ='levels')
但是当我添加"开始"one_answers"结束"日期(或仅"开始")时,它不想工作,我不断得到错误。在第一个引用的代码块的情况下:"TypeError: predict()获得了关键字参数'start'的多个值"。我也尝试了日期时间类型,它也不起作用。有人能帮我吗?
我得到了一个类似于上面报告的错误:
"AttributeError: 'NoneType' object has no attribute 'get_loc' "
但是我意识到这是因为我正在传递一个没有日期时间索引的数组(或列表),例如,如果您使用pandas数据框架并将其输入为df.values
,那么您将删除时间索引,而ARMA没有日期信息(因此日期为None)这会触发此错误。我建议您在pd.DataFrame
或pd.Series
对象中提供日期时间索引。参见此线程http://pystatsmodels.narkive.com/rhX3T509/arma-predict-throws-attributeerror-with-start-and-end-dates
可以使用
fit.forecast(steps, exog=None, alpha=0.05)
其中steps=365
根据你的start
和end
参数,如果它是按月计算的。参考这个答案