Python中的statmodels包-检索ARIMA模型的样本外预测的问题



我正在尝试检索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.DataFramepd.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根据你的startend参数,如果它是按月计算的。参考这个答案

最新更新