全文链接:http://tecdat.cn/?p=12272

最近咱们被客户要求撰写对于ARIMA的钻研报告,包含一些图形和统计输入。

应用ARIMA模型,您能够应用序列过来的值预测工夫序列

  • 在本文中,咱们从头开始构建了一个最佳ARIMA模型,并将其扩大到Seasonal ARIMA(SARIMA)和SARIMAX模型。

工夫序列预测简介

工夫序列是在定期工夫距离内记录度量的序列。

依据频率,工夫序列能够是每年(例如:年度预算),每季度(例如:收入),每周(例如:销售数量),每天(例如天气),每小时(例如:股票价格),分钟(例如:复电提醒中的呼入电话),甚至是几秒钟(例如:网络流量)。

为什么要预测?

因为预测工夫序列(如需要和销售)通常具备微小的商业价值。

在大多数制作公司中,它驱动根本的业务打算,洽购和生产流动。预测中的任何谬误都会扩散到整个供应链或与此相关的任何业务环境中。因而,精确地进行预测很重要,以节省成本,这对于胜利至关重要。

不仅在制造业中,工夫序列预测背地的技术和概念还实用于任何业务。

当初,预测工夫序列能够大抵分为两种类型。

如果仅应用工夫序列的先前值来预测其将来值,则称为  单变量工夫序列预测。

如果您应用序列以外的其余预测变量(也称为外生变量)进行预测,则称为  多变量工夫序列预测。

这篇文章重点介绍一种称为ARIMA  建模的非凡类型的预测办法  。

ARIMA是一种预测算法,其基于以下思维:工夫序列的过来值中的信息能够独自用于预测将来值。

  1. ARIMA模型简介

那么ARIMA模型到底是什么?

ARIMA是一类模型,能够依据本身的过来值(即本身的滞后和滞后的预测误差)“解释”给定的工夫序列,因而能够应用方程式预测将来价值。

任何具备模式且不是随机白噪声的“非季节性”工夫序列都能够应用ARIMA模型进行建模。

ARIMA模型的特色在于3个项:p,d,q

p是AR项

q是MA项

d是使工夫序列安稳所需的差分阶数

如果工夫序列具备季节性模式,则须要增加季节性条件,该工夫序列将变成SARIMA(“季节性ARIMA”的缩写)。一旦实现ARIMA。

那么,“AR项的阶数”到底意味着什么?咱们先来看一下“ d”。

  1. ARIMA模型中的p,d和q是什么意思

建设ARIMA模型的第一步是  使工夫序列安稳。

为什么?

因为ARIMA中的“自回归”一词意味着它是一个  线性回归模型  ,应用本人的滞后作为预测因子。如您所知,线性回归模型在预测变量不相干且彼此独立时最无效。

那么如何使一序列安稳呢?

最常见的办法是加以差分。即,从以后值中减去先前的值。

因而,d的值是使序列安稳所需的最小差分阶数。如果工夫序列曾经安稳,则d = 0。

接下来,什么是“ p”和“ q”?

“ p”是“自回归”(AR)项的阶数。它指的是要用作预测变量的Y的滞后阶数。而“ q”是“挪动均匀”(MA)项的阶数。它是指应输出ARIMA模型的滞后预测误差的数量。

什么是AR和MA模型

那么什么是AR和MA模型?AR和MA模型的理论数学公式是什么?

AR模型是Yt仅取决于其本身滞后的模型。也就是说,Yt是“ Yt滞后”的函数。

同样,纯  挪动平均线(仅MA)模型  是Yt仅取决于滞后预测误差的模型。

误差项是各个滞后的自回归模型的误差。误差Et和E(t-1)是来自以下方程式的误差:

那别离是AR和MA模型。

那么ARIMA模型的方程是什么样的呢?

ARIMA模型是这样的模型,其中工夫序列至多差分一次以使其安稳,而后将AR和MA项组合在一起。因而,等式变为:

因而,目标是辨认p,d和q的值。

如何在ARIMA模型中找到差分阶数(d)

进行差分的目标是使工夫序列安稳。

然而您须要留神不要使序列过分差分。因为,超差分序列可能依然是安稳的,这反过来将影响模型参数。

那么如何确定正确的差分阶数呢?

正确的差分阶数是取得近似安稳序列的最小差分,该序列围绕定义的平均值稳定,并且ACF曲线相当快地达到零。

如果自相干对于许多阶数之后(10个或更多)为正,则该序列须要进一步求差。

在这种状况下,你不能真正确定两个差分阶数之间的差,而后抉择在差分序列中给出最小标准偏差的阶数。

让咱们来看一个例子。

首先,我将应用Augmented Dickey Fuller测试()查看该序列是否安稳。

为什么?

因为,仅当序列非安稳时才须要进行差分。否则,不须要差分,即d = 0。

ADF测验的零假如是工夫序列是非安稳的。因而,如果测验的p值小于显着性程度(0.05),则回绝原假如,并推断工夫序列的确是安稳的。

因而,在咱们的状况下,如果P值> 0.05,咱们将持续寻找差分的阶数。

from statsmodels.tsa.stattools import adfullerfrom numpy import logresult = adfuller(df.value.dropna())print('ADF Statistic: %f' % result[0])print('p-value: %f' % result[1])
ADF Statistic: -2.464240p-value: 0.124419

因为P值大于显着性程度,因而让咱们对序列进行差分,看看自相干图的样子。

import numpy as np, pandas as pdfrom statsmodels.graphics.tsaplots import plot_acf, plot_pacfimport matplotlib.pyplot as pltplt.rcParams.update({'figure.figsize':(9,7), 'figure.dpi':120})# 导入数据df = pd.read_csv('wwwusage.csv', names=['value'], header=0)# 原始数据fig, axes = plt.subplots(3, 2, sharex=True)axes[0, 0].plot(df.value); axes[0, 0].set_title('Original Series')plot_acf(df.value, ax=axes[0, 1])# 一阶差分axes[1, 0].plot(df.value.diff()); axes[1, 0].set_title('1st Order Differencing')plot_acf(df.value.diff().dropna(), ax=axes[1, 1])# 二阶差分axes[2, 0].plot(df.value.diff().diff()); axes[2, 0].set_title('2nd Order Differencing')plot_acf(df.value.diff().diff().dropna(), ax=axes[2, 1])plt.show()


点击题目查阅往期内容

Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数工夫序列预测

左右滑动查看更多

01

02

03

04

差分

对于以上序列,工夫序列达到安稳,具备两个不同的阶数。然而,在查看第二次差分的自相干图时,滞后会很快进入负值区域,这表明该序列可能曾经过差分。

因而,即便该序列不是齐全安稳的(平稳性较弱),我也将临时将差分的阶数设置为1。

 ## Adf 测验ndiffs(y, test='adf')  # 2# KPSS 测验ndiffs(y, test='kpss')  # 0# PP 测验:ndiffs(y, test='pp')  # 2
2 0 2

如何找到AR项的阶数(p)

下一步是确定模型是否须要AR。您能够通过查看偏自相干(PACF)图来找出所需的AR阶数。

然而什么是PACF?

排除局部滞后的影响后,能够将偏自相干设想为序列与其滞后之间的相关性。因而,PACF的传递传播了滞后与序列之间的纯相关性。这样,您将晓得在AR中是否须要该滞后。

如何找到AR项的阶数?

安稳序列中的任何自相干都能够通过增加足够的AR项进行校对。因而,咱们最后将AR项的阶数等于超过PACF图中显着性区间的滞后阶数。

# 一阶差分的偏自相关系数图plt.show()

AR阶数

能够察看到,PACF滞后1阶十分重要,因为它远高于显着性线。滞后2阶也很重要,略微超过了显着性区间(蓝色区域)。

如何找到MA项的阶数(q)

就像咱们在PACF图上查看AR项的阶数一样,您也能够在ACF图上查看MA项的阶数。MA从技术上讲是滞后预测的误差。

ACF批示要打消安稳序列中的自相干须要多少个MA项。

让咱们看一下差分序列的自相干图。

 fig, axes = plt.subplots(1, 2, sharex=True)axes[0].plot(df.value.diff()); axes[0].set_title('1st Differencing')axes[1].set(ylim=(0,1.2))plot_acf(df.value.diff().dropna(), ax=axes[1])plt.show()

MA阶数

几个滞后远高于界线。因而,让咱们临时将q固定为2。

如何解决工夫序列差分值过低或过高

该如何解决?

如果您的序列差分值过低,通常增加一个或多个其余AR项即可。同样,如果差分值过高,请尝试增加其余MA项。

如何建设ARIMA模型

当初,曾经确定了p,d和q的值,曾经具备了拟合ARIMA模型的所有条件。

 ARIMA Model Results==============================================================================Dep. Variable:                D.value   No. Observations:                   99Model:                 ARIMA(1, 1, 2)   Log Likelihood                -253.790Method:                       css-mle   S.D. of innovations              3.119Date:                Wed, 06 Feb 2019   AIC                            517.579Time:                        23:32:56   BIC                            530.555Sample:                             1   HQIC                           522.829=================================================================================                    coef    std err          z      P>|z|      [0.025      0.975]---------------------------------------------------------------------------------const             1.1202      1.290      0.868      0.387      -1.409       3.649ar.L1.D.value     0.6351      0.257      2.469      0.015       0.131       1.139ma.L1.D.value     0.5287      0.355      1.489      0.140      -0.167       1.224ma.L2.D.value    -0.0010      0.321     -0.003      0.998      -0.631       0.629                                    Roots=============================================================================                  Real          Imaginary           Modulus         Frequency-----------------------------------------------------------------------------AR.1            1.5746           +0.0000j            1.5746            0.0000MA.1           -1.8850           +0.0000j            1.8850            0.5000MA.2          545.3515           +0.0000j          545.3515            0.0000-----------------------------------------------------------------------------

该模型摘要揭示了很多信息。两头的表是系数表,其中“ coef”下的值是相应项的权重。

请留神,这里的MA2项的系数靠近零 。现实状况下,各个X的值应小于0.05。

因而,让咱们在没有MA2的状况下重建模型。

 ARIMA Model Results==============================================================================Dep. Variable:                D.value   No. Observations:                   99Model:                 ARIMA(1, 1, 1)   Log Likelihood                -253.790Method:                       css-mle   S.D. of innovations              3.119Date:                Sat, 09 Feb 2019   AIC                            515.579Time:                        12:16:06   BIC                            525.960Sample:                             1   HQIC                           519.779=================================================================================                    coef    std err          z      P>|z|      [0.025      0.975]---------------------------------------------------------------------------------const             1.1205      1.286      0.871      0.386      -1.400       3.641ar.L1.D.value     0.6344      0.087      7.317      0.000       0.464       0.804ma.L1.D.value     0.5297      0.089      5.932      0.000       0.355       0.705                                    Roots=============================================================================                  Real          Imaginary           Modulus         Frequency-----------------------------------------------------------------------------AR.1            1.5764           +0.0000j            1.5764            0.0000MA.1           -1.8879           +0.0000j            1.8879            0.5000-----------------------------------------------------------------------------

AIC模型已缩小,这很好。AR1和MA1项的P值已进步并且十分显着(<< 0.05)。

让咱们绘制残差 。

残差密度

残差仿佛很好,均值靠近零且方差平均。让咱们应用绘制理论值和拟合值 。

理论vs拟合

设置  dynamic=False 样本内时,滞后值用于预测。

也就是说,模型被训练到上一个值进行下一个预测。

因而,咱们仿佛有一个不错的ARIMA模型。然而那是最好的吗?

目前不能这么说,因为咱们还没有真正预测将来数据,而是将预测与理论数据进行了比拟。

因而, 当初须要穿插验证。

如何应用穿插验证手动找到最佳ARIMA模型

在“穿插验证”中,能够预测未来的数据。而后,您将预测值与理论值进行比拟。

要进行穿插验证,您须要创立训练和测试数据集,办法是将工夫序列按大概75:25的比例或基于序列工夫频率的正当比例分成两个间断的局部。

为什么不随机采样训练数据?

这是因为工夫序列的序列应完整无缺,以便用于预测。

当初,您能够在训练数据集上构建ARIMA模型,对其进行预测和绘制。

# 绘图plt.figure(figsize=(12,5), dpi=100)plt.plot(train, label='training')plt.plot(test, label='actual')plt.plot(fc_series, label='forecast')plt.fill_between(lower_series.index, lower_series, upper_series,                  color='k', alpha=.15)plt.title('Forecast vs Actuals')plt.legend(loc='upper left', fontsize=8)plt.show()

预测与理论

从图表中,ARIMA(1,1,1)模型仿佛给出了方向正确的预测。理论察看值在95%置信区间内。

然而每个预测的预测始终低于理论。这意味着,通过在咱们的预测中增加一个小的常数,精度肯定会进步。因而,必定有改良的余地。

所以,我要做的是将差分的阶数减少到2,即进行设置,  d=2 而后将p迭代地减少到5,而后将q减少到5,以查看哪个模型给出的AIC最小,同时还要寻找一个给出更靠近理论状况和预测。

在执行此操作时,我会关注模型摘要中AR和MA项的P值。它们应尽可能靠近零,现实状况下应小于0.05。

 ARIMA Model Results==============================================================================Dep. Variable:               D2.value   No. Observations:                   83Model:                 ARIMA(3, 2, 1)   Log Likelihood                -214.248Method:                       css-mle   S.D. of innovations              3.153Date:                Sat, 09 Feb 2019   AIC                            440.497Time:                        12:49:01   BIC                            455.010Sample:                             2   HQIC                           446.327==================================================================================                     coef    std err          z      P>|z|      [0.025      0.975]----------------------------------------------------------------------------------const              0.0483      0.084      0.577      0.565      -0.116       0.212ar.L1.D2.value     1.1386      0.109     10.399      0.000       0.924       1.353ar.L2.D2.value    -0.5923      0.155     -3.827      0.000      -0.896      -0.289ar.L3.D2.value     0.3079      0.111      2.778      0.007       0.091       0.525ma.L1.D2.value    -1.0000      0.035    -28.799      0.000      -1.068      -0.932                                    Roots=============================================================================                  Real          Imaginary           Modulus         Frequency-----------------------------------------------------------------------------AR.1            1.1557           -0.0000j            1.1557           -0.0000AR.2            0.3839           -1.6318j            1.6763           -0.2132AR.3            0.3839           +1.6318j            1.6763            0.2132MA.1            1.0000           +0.0000j            1.0000            0.0000-----------------------------------------------------------------------------

订正后的预测与理论值

AIC已从515缩小到440。X项的P值小于<0.05,这很好。

所以总的来说要好得多。

现实状况下,应该返回多个工夫点,例如返回1、2、3和4个季度,并查看一年中各个工夫点的预测成果如何。

工夫序列预测的准确性指标

用来判断预测的罕用准确性指标是:

  1. 均匀相对百分比误差(MAPE)
  2. 平均误差(ME)
  3. 均匀绝对误差(MAE)
  4. 均匀百分比误差(MPE)
  5. 均方根误差(RMSE)
  6. 滞后1自相干误差(ACF1)
  7. 理论与预测之间的相关性(corr)
  8. 最小最大误差(minmax)

通常,如果要比拟两个不同序列的预测,则能够应用MAPE,Correlation和Min-Max Error。

为什么不应用其余指标?

因为只有上述三个是百分比误差,所以误差在0到1之间变动。因而,无论序列的规模如何,您都能够判断预测的品质如何。

其余误差度量是数量。这意味着,平均值为1000的序列的RMSE为100,平均值为10的序列的RMSE为5。因而,不能真正应用它们来比拟两个不同比例工夫序列的预测。

forecast_accuracy(fc, test.values)#> {'mape': 0.02250131357314834,#>  'me': 3.230783108990054,#>  'mae': 4.548322194530069,#>  'mpe': 0.016421001932706705,#>  'rmse': 6.373238534601827,#>  'acf1': 0.5105506325288692,#>  'corr': 0.9674576513924394,#>  'minmax': 0.02163154777672227}

大概2.2%的MAPE示意该模型在预测接下来的15个观测值时的准确性约为97.8%。

然而在工业利用状况下,将给您提供很多工夫序列来进行预测,并且定期反复进行预测。

因而,咱们须要一种使最佳模型抉择过程自动化的办法。

如何在Python中进行主动Arima预测

应用逐渐办法来搜寻p,d,q参数的多个组合,并抉择具备最小AIC的最佳模型。

print(model.summary())#> Fit ARIMA: order=(1, 2, 1); AIC=525.586, BIC=535.926, Fit time=0.060 seconds#> Fit ARIMA: order=(0, 2, 0); AIC=533.474, BIC=538.644, Fit time=0.005 seconds#> Fit ARIMA: order=(1, 2, 0); AIC=532.437, BIC=540.192, Fit time=0.035 seconds#> Fit ARIMA: order=(0, 2, 1); AIC=525.893, BIC=533.648, Fit time=0.040 seconds#> Fit ARIMA: order=(2, 2, 1); AIC=515.248, BIC=528.173, Fit time=0.105 seconds#> Fit ARIMA: order=(2, 2, 0); AIC=513.459, BIC=523.798, Fit time=0.063 seconds#> Fit ARIMA: order=(3, 2, 1); AIC=512.552, BIC=528.062, Fit time=0.272 seconds#> Fit ARIMA: order=(3, 2, 0); AIC=515.284, BIC=528.209, Fit time=0.042 seconds#> Fit ARIMA: order=(3, 2, 2); AIC=514.514, BIC=532.609, Fit time=0.234 seconds#> Total fit time: 0.865 seconds#>                              ARIMA Model Results#> ==============================================================================#> Dep. Variable:                   D2.y   No. Observations:                   98#> Model:                 ARIMA(3, 2, 1)   Log Likelihood                -250.276#> Method:                       css-mle   S.D. of innovations              3.069#> Date:                Sat, 09 Feb 2019   AIC                            512.552#> Time:                        12:57:22   BIC                            528.062#> Sample:                             2   HQIC                           518.825#> #> ==============================================================================#>                  coef    std err          z      P>|z|      [0.025      0.975]#> ------------------------------------------------------------------------------#> const          0.0234      0.058      0.404      0.687      -0.090       0.137#> ar.L1.D2.y     1.1586      0.097     11.965      0.000       0.969       1.348#> ar.L2.D2.y    -0.6640      0.136     -4.890      0.000      -0.930      -0.398#> ar.L3.D2.y     0.3453      0.096      3.588      0.001       0.157       0.534#> ma.L1.D2.y    -1.0000      0.028    -36.302      0.000      -1.054      -0.946#>                                     Roots#> =============================================================================#>                   Real          Imaginary           Modulus         Frequency#> -----------------------------------------------------------------------------#> AR.1            1.1703           -0.0000j            1.1703           -0.0000#> AR.2            0.3763           -1.5274j            1.5731           -0.2116#> AR.3            0.3763           +1.5274j            1.5731            0.2116#> MA.1            1.0000           +0.0000j            1.0000            0.0000#> -----------------------------------------------------------------------------

如何解释ARIMA模型中的残差图

让咱们查看残差图。

残差图

那么如何解释?

左上方:  残余误差仿佛在零均值左近稳定,并且具备平均的方差。

右上方:  密度图倡议均值为零的正态分布。

左下:  所有圆点应与红线完全一致。任何显著的偏差都意味着散布偏斜。

右下:  Correlogram(又名ACF)图显示残差误差不是自相干的。任何自相干都将暗示残差中存在某种模式,该模式未在模型中进行解释。因而,您将须要为模型寻找更多的X(预测变量)。

总体而言,模型很适合。让咱们预测一下。

如何在python中主动构建SARIMA模型

一般ARIMA模型的问题在于它不反对季节性。

如果您的工夫序列定义了季节性,那么,请应用季节性差分的SARIMA。

季节性差分与惯例差分类似,然而您能够从上一节令中减去该值,而不是减去间断项。

因而,该模型将示意为SARIMA(p,d,q)x(P,D,Q),其中P,D和Q别离是SAR,季节性差分的阶数和SMA项,并且  'x' 是工夫的频率序列。

如果您的模型具备明确定义的季节性模式,则对给定的频率“ x”强制执行D = 1。

这是无关构建SARIMA模型的一些实用倡议:

通常,将模型参数设置为D不得超过1。并且总的分'd + D'不超过2。如果模型具备季节性成分,请尝试仅保留SAR或SMA项。

咱们在药物销售数据集上建设一个SARIMA模型 。

季节性差分

在利用通常的差分(滞后1)之后,季节性峰值是残缺的。鉴于此,应在季节性差分后进行纠正。

让咱们建设应用SARIMA模型。为此,您须要设置  seasonal=True,设置m=12 按月序列的频率  并强制执行  D=1

Fit ARIMA: order=(1, 0, 1) seasonal_order=(0, 1, 1, 12); AIC=534.818, BIC=551.105, Fit time=1.742 secondsFit ARIMA: order=(0, 0, 0) seasonal_order=(0, 1, 0, 12); AIC=624.061, BIC=630.576, Fit time=0.028 secondsFit ARIMA: order=(1, 0, 0) seasonal_order=(1, 1, 0, 12); AIC=596.004, BIC=609.034, Fit time=0.683 secondsFit ARIMA: order=(0, 0, 1) seasonal_order=(0, 1, 1, 12); AIC=611.475, BIC=624.505, Fit time=0.709 secondsFit ARIMA: order=(1, 0, 1) seasonal_order=(1, 1, 1, 12); AIC=557.501, BIC=577.046, Fit time=3.687 seconds(...TRUNCATED...)Fit ARIMA: order=(3, 0, 0) seasonal_order=(1, 1, 1, 12); AIC=554.570, BIC=577.372, Fit time=2.431 secondsFit ARIMA: order=(3, 0, 0) seasonal_order=(0, 1, 0, 12); AIC=554.094, BIC=570.381, Fit time=0.220 secondsFit ARIMA: order=(3, 0, 0) seasonal_order=(0, 1, 2, 12); AIC=529.502, BIC=552.305, Fit time=2.120 secondsFit ARIMA: order=(3, 0, 0) seasonal_order=(1, 1, 2, 12); AIC=nan, BIC=nan, Fit time=nan secondsTotal fit time: 31.613 seconds

该模型预计了AIC,系数的P值看起来很重要。让咱们看一下残差的诊断图。

最佳模型  SARIMAX(3, 0, 0)x(0, 1, 1, 12) 的AIC为528.6,P值很重要。

让咱们预测将来的24个月。

SARIMA –最终预测

如何用外生变量建设SARIMAX模型

咱们构建的SARIMA模型很好。

然而为了残缺起见,让咱们尝试将内部预测变量(也称为“外生变量”)加到模型中。该模型称为SARIMAX模型。

应用外生变量的惟一要求是您还须要在预测期内晓得变量的值。

为了演示,我将对最近36个月的数据应用经典季节性合成中的季节性指数  。

为什么要季节性指数?SARIMA是否曾经在模仿季节性?

你是对的。

而且,我想看看如果咱们将最近的季节性模式强加到训练和预测中,模型将如何显示。

其次,这是一个很好的演示目标变量。因而,你能够将其用作模板,并将任何变量插入代码中。季节性指数是一个很好的外生变量,因为它每个频率周期都会反复一次,在这种状况下为12个月。

因而,你将始终晓得季节性指数将对将来的预测放弃何种价值。

让咱们计算季节性指数,以便能够将其作为SARIMAX模型的(内部)预测变量。

外生变量(节令指数)已准备就绪。让咱们构建SARIMAX模型。

Fit ARIMA: order=(1, 0, 1) seasonal_order=(0, 1, 1, 12); AIC=536.818, BIC=556.362, Fit time=2.083 secondsFit ARIMA: order=(0, 0, 0) seasonal_order=(0, 1, 0, 12); AIC=626.061, BIC=635.834, Fit time=0.033 secondsFit ARIMA: order=(1, 0, 0) seasonal_order=(1, 1, 0, 12); AIC=598.004, BIC=614.292, Fit time=0.682 secondsFit ARIMA: order=(0, 0, 1) seasonal_order=(0, 1, 1, 12); AIC=613.475, BIC=629.762, Fit time=0.510 secondsFit ARIMA: order=(1, 0, 1) seasonal_order=(1, 1, 1, 12); AIC=559.530, BIC=582.332, Fit time=3.129 seconds(...Truncated...)Fit ARIMA: order=(3, 0, 0) seasonal_order=(0, 1, 0, 12); AIC=556.094, BIC=575.639, Fit time=0.260 secondsFit ARIMA: order=(3, 0, 0) seasonal_order=(0, 1, 2, 12); AIC=531.502, BIC=557.562, Fit time=2.375 secondsFit ARIMA: order=(3, 0, 0) seasonal_order=(1, 1, 2, 12); AIC=nan, BIC=nan, Fit time=nan secondsTotal fit time: 30.781 seconds

因而,咱们领有带有外生项的模型。然而该系数对于 x1来说很小 ,因而该变量的奉献能够忽略不计。让咱们持续预测吧。

咱们已无效地将模型中最近3年的最新季节性影响强加给模型。

让咱们预测下一个24个月。为此,你须要接下来24个月的季节性指数值。

SARIMAX预测


点击文末 “浏览原文”

获取全文残缺材料。

本文选自《Python中的ARIMA模型、SARIMA模型和SARIMAX模型对工夫序列预测》。

点击题目查阅往期内容

Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数工夫序列预测
数据分享|PYTHON用ARIMA ,ARIMAX预测商店商品销售需要工夫序列数据
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数工夫序列预测
【视频】Python用LSTM长短期记忆神经网络对不稳固降雨量工夫序列进行预测剖析|数据分享
深度学习实现自编码器Autoencoder神经网络异样检测心电图ECG工夫序列spss modeler用决策树神经网络预测ST的股票
Python中TensorFlow的长短期记忆神经网络(LSTM)、指数挪动平均法预测股票市场和可视化
RNN循环神经网络 、LSTM长短期记忆网络实现工夫序列长期利率预测
联合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络工夫序列剖析
深度学习:Keras应用神经网络进行简略文本分类剖析新闻组数据
用PyTorch机器学习神经网络分类预测银行客户散失模型
PYTHON用LSTM长短期记忆神经网络的参数优化办法预测工夫序列洗发水销售数据
Python用Keras神经网络序列模型回归拟合预测、准确度检查和后果可视化
R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与后果评估可视化
深度学习:Keras应用神经网络进行简略文本分类剖析新闻组数据
Python用LSTM长短期记忆神经网络对不稳固降雨量工夫序列进行预测剖析
R语言深度学习Keras循环神经网络(RNN)模型预测多输入变量工夫序列
R语言KERAS用RNN、双向RNNS递归神经网络、LSTM剖析预测温度工夫序列、 IMDB电影评分情感
Python用Keras神经网络序列模型回归拟合预测、准确度检查和后果可视化
Python用LSTM长短期记忆神经网络对不稳固降雨量工夫序列进行预测剖析
R语言中的神经网络预测工夫序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
R语言深度学习:用keras神经网络回归模型预测工夫序列数据
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
R语言KERAS深度学习CNN卷积神经网络分类辨认手写数字图像数据(MNIST)
MATLAB中用BP神经网络预测人体脂肪百分比数据
Python中用PyTorch机器学习神经网络分类预测银行客户散失模型
R语言实现CNN(卷积神经网络)模型进行回归数据分析
SAS应用鸢尾花(iris)数据集训练人工神经网络(ANN)模型
【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析
Python应用神经网络进行简略文本分类
R语言用神经网络改良Nelson-Siegel模型拟合收益率曲线剖析
R语言基于递归神经网络RNN的温度工夫序列预测
R语言神经网络模型预测车辆数量工夫序列
R语言中的BP神经网络模型剖析学生问题
matlab应用长短期记忆(LSTM)神经网络对序列数据进行分类
R语言实现拟合神经网络预测和后果可视化
用R语言实现神经网络预测股票实例
应用PYTHON中KERAS的LSTM递归神经网络进行工夫序列预测
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
用于NLP的Python:应用Keras的多标签文本LSTM神经网络分类