产生直线预测的ARIMA模型

2024-09-26 17:40:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习时间序列分析,我在两个数据集上用ARIMA模型做了一些实验

  1. Airline passengers data
  2. 美元对印度卢比数据

我得到了一个正常的锯齿形预测Airline passengers data

ARIMA顺序=(2,1,2)

Model Results

enter image description here

但在USD vs Indian rupee data上,我得到的预测是一条直线

ARIMA顺序=(2,1,2)

Model Results

enter image description here

SARIMAX顺序=(2,1,2),季节性顺序=(0,0,1,30)

Model Results

enter image description here

我尝试了不同的参数,但是对于USD vs Indian rupee data我总是得到一个直线预测。在

还有一个小疑问,我已经读到,ARIMA模型不支持带有季节性成分的时间序列(因为我们有SARIMA)。那么为什么对于航空公司乘客数据ARIMA模型会产生周期性的预测。在

我是时间序列分析的新手,任何评论都会有很大的帮助


Tags: 数据模型datamodel顺序时间序列results
1条回答
网友
1楼 · 发布于 2024-09-26 17:40:56

最近经历过类似的问题,我建议如下:

  1. 可视化数据的季节性分解,以确保数据中存在季节性。请确保数据帧中包含频率分量。您可以使用以下命令在pandas dataframe中强制执行频率:

    dh = df.asfreq('W') #for weekly resampled data and fillnas with appropriate method

下面是一个执行季节分解的示例代码:

import statsmodels.api as sm

decomposition = sm.tsa.seasonal_decompose(dh['value'], model='additive', 
                            extrapolate_trend='freq') #additive or multiplicative is data specific
fig = decomposition.plot()
plt.show()

该图将显示数据中是否存在季节性。请随意浏览这篇关于季节分解的惊人文件。Decomposition

  1. 如果您确定模型的季节性部分是30,那么您应该能够使用pmdarima包获得一个好的结果。该包在为您的模型找到最佳的pdq值方面非常有效。这是它的链接:pmdarimaexample code pmdarima

如果您不确定季节性,请咨询领域专家关于您的数据的季节性影响,或者尝试在您的模型中尝试不同的季节性成分并估计误差。在

在训练模型之前,请确保数据的平稳性通过Dickey-Fuller检验。pmdarima支持使用以下内容查找{}组件:

^{pr2}$

您还可以在我提供的文档的帮助下找到d。如果答案没有帮助,请提供汇率的数据来源。我将尝试用一个示例代码来解释流程。在

相关问题 更多 >

    热门问题