Python统计数据模型:使用时间序列的ARIMA模型的帮
本文介绍了Python统计数据模型:使用时间序列的ARIMA模型的帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
统计模型公司的ARIMA对我的输出给出了不准确的答案。我想知道是否有人可以帮助我了解我的代码出了什么问题。
这是一个示例:
其余代码建立ARIMA模型。
如您所见,数据只是在1
附近保持不变,而不是增加。我在这里做错了什么?
(顺便提一句,由于某些原因,我不能将"2001-11-21"
这样的字符串日期传递到预测函数中。如果能知道原因会很有帮助。)
推荐答案
TL;DR
您使用predict
的方式返回线性预测
差异内生变量不是对原始内生变量水平的预测。
您必须向predict
方法提供typ='levels'
才能更改此行为:
详情请参见ARIMAResults.predict
文档。
分步
数据集
我们加载您在MCVE中提供的数据:
正如我们可能预期的那样,数据是自相关的:
模型与培训
我们为给定的设置(P,D,Q)
创建ARIMA
Model对象,并使用fit
方法训练它:
它返回感兴趣的ARIMAResults
对象。我们可以检查我们模型的质量:
我们可以粗略估计残差是如何分布的:
预测
如果我们对我们的模型满意,那么我们可以预测一些样本内或样本外的数据。
这可以使用predict
方法完成,该方法默认返回差异内生变量,而不是内生变量本身。若要更改此行为,必须指定typ='levels'
:
那么我们的预测与我们的训练数据具有相同的级别:
此外,如果我们还想要有置信度区间,则可以使用forecast
方法。
字符串参数
也可以向predict
提供字符串(如果希望避免麻烦,请始终使用ISO-8601格式)或datetime
对象:
在StatsModels 0.9.0上按预期工作:
这篇关于Python统计数据模型:使用时间序列的ARIMA模型的帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!