EViews教程



季节性

抽样频率为季或月的经济、金融时间序列,有一些会呈现出明显的季节性,预测这样的时间序列,我们可以使用季节ARIMA(也记作SARIMA, Seasonal ARIMA)模型。季节ARIMA模型是加了特定结构的ARIMA模型,利用滞后算子\(L \),它可以表达为:$$\Phi_P(L^s)B_p(L)[(1-L^s)^D(1-L)^d y_t – \mu]= \Psi_Q(L^s)R_q(L)e_t $$ $$B_p(L) = 1 – \beta_1 L – \cdots – \beta_p L^p$$ $$R_q(L) = 1 + \gamma_1 L + \cdots + \gamma_q L^q$$ $$\Phi_P(L^s) = 1 – \phi_1 L^s – \phi_1 L^{2s} – \cdots – \phi_P L^{Ps}$$ $$\Psi_Q(L^s) = 1 + \psi_1 L^s + \psi_2 L^{2s}+ \cdots + \psi_Q L^{Qs}$$其中,\(e_t\)是一个零期望的白噪声。这个模型可记为ARIMA(p,d,q)×(P,D,Q)s。😰

ARIMA(p,d,q)×(P,D,Q)s模型在ARIMA(p,d,q)模型的基础上加了三个滞后算子多项式。\(\Phi_P(L^s)\)是季节AR多项式,其中,s是反映季节性的频率参数,对季度数据,s取4,对月度数据,s取12。\(\Psi_Q(L^s)\)是季节MA多项式。\((1-L^s)^D\)是季节差分多项式,其中,\(1-L^s\)被称为季节差分算子,\((1-L^s)y_t\)被称为\(y_t\)的季节差分。在实际应用中,一般有D+d≤1,P≤1和Q≤1,所以,这个看上去很复杂的模型,简化后其实没那么可怕。

Talk is cheap. Show me the code.

— Linus Torvalds

在EViews中,季节ARIMA模型的估计和预测和前面讲的ARMA模型差别不大,下面我以EViews安装目录下的Example Files\EV13 Manual Data\Chapter 11 – Series\hs.wf1为例进行展示。在这个wf1文件中,hs是一个有季节性的月度时间序列,如下图所示:

smpl @all
graph g1.line hs
show g1

这个序列没有呈现出很规整的季节形态,这是正常的。事实上,时序图能在多大程度上呈现出季节性,完全取决于数据中季节因素与非季节因素的相对强弱。如果季节因素非常强,我们就会看到一幅非常“有规律”的时序图,如果非季节因素占主导,在时序图上我们可能连一点季节性的蛛丝都找不到,即使它确实存在。

要检查一条时间序列是否有季节性,除了看时序图,也可以看相关图。把序列先通过差分做到近似平稳的状态(如果序列本身就平稳就不需此步),然后检查它的自相关函数和偏自相关函数,如果序列有季节性,对季度数据,每隔4期会出现一次强的自相关或偏自相关,对月度数据,每隔12期会出现一次强的自相关或偏自相关。你可以用下面的代码看看hs的相关图,它的季节性一目了然。

hs.correl(36)

对hs进行传统的单位根检验(见[分析预备]一讲)会发现它是一个单位根过程,因此,可以尝试用差分或季节差分后的序列建模,这意味着至少有两种季节ARIMA模型可以考虑,它们分别设D=1和d=1,例如,ARIMA(2,0,0)×(1,1,1)和ARIMA(0,1,1)×(1,0,1):$$(1 – \phi_1 L^{12})(1 – \beta_1 L-\beta_2 L^2)[(1-L^{12}) hs_t – \mu]= (1 + \psi_1 L^{12})e_t $$ $$(1 – \phi_1 L^{12})[(1-L) hs_t – \mu]= (1+\gamma_1 L)(1 + \psi_1 L^{12})e_t $$

要在建模前区分到底是用差分后的数据建模更合适,还是用季节差分后的数据建模更合适,可以使用EViews里的季节单位根检验(在序列对象窗口选View/Unit Root Tests/Seasonal Unit Root Test),这类单位根检验和传统的单位根检验很不一样,需要具备时间序列频域分析的基础知识才能理解,因此,我不打算在此介绍。其实,由于我们使用季节ARIMA模型的主要目的还是预测,因此,我们可以在估计完模型后,(通过静态预测)比较模型的预测能力,然后来判断哪个模型更合适。

要在EViews中估计上面这两个模型,仍需使用ls命令,在其后,AR和MA项仍用ar和ma表示,季节AR和季节MA项则需用sar和sma表示。请看代码:

smpl @first 1989M12     '设定估计模型的样本期
equation eqa            'ARIMA(2,0,0)×(1,1,1)
eqa.ls(arma=cls,cov=white) d(hs,0,12) c ar(1 to 2) sar(12) sma(12) 
equation eqb            'ARIMA(0,1,1)×(1,0,1)
eqb.ls(arma=cls,cov=white) d(hs) c sar(12) ma(1) sma(12)

上面的eqa利用了hs的季节差分建模,eqb利用了hs的差分建模,这是通过函数d()实现的。d(x,n,s)表示$$ (1-L^s)(1-L)^nx $$其中,n的默认取值是1,s的默认取值是0,所以,d(x)表示x的一阶差分。

EViews报告季节ARIMA模型的估计结果与报告ARMA模型的估计结果差别不大,下面仅展示eqa的估计结果:

在上面的表中,SAR(12)对应季节AR项的系数。注意,eqa的估计代码中有一项sma(12),但是,表中没有SMA(12)啊!?季节MA项去哪了😖?表中有一项MA(12),这是EViews的bug吗?事实上,如果你再仔细看一下eqa这个模型,你应该能发现代码中加sma(12)和加ma(12)是完全等价的。在EViews中,如果命令ls后面只有SMA项而没有MA项,EViews会把SMA项自动转为MA项。同理,如果命令ls后面只有SAR项而没有AR项,EViews会把SAR项自动转为AR项,所以,在eqb的估计结果中,你看不到SAR(12),而只能看到AR(12),你可以试试看是不是这样。

估计完季节ARIMA模型后,进行模型诊断是必不可少的,这个在前面已经介绍过,我就不再赘述了。我想提醒的一点是,在用correl命令对模型的残差实施白噪声检验时,一定要注意残差的高阶自相关系数和偏自相关系数。例如,当你使用的是带有季节性的月度数据时,你可能会看到残差的前十一阶自相关系数和偏自相关系数都是不显著的,因此,前十一阶的Q检验都不能拒绝误差是白噪声的原假设。但是,第十二阶自相关系数或偏自相关系数却可能是非常显著的,如果有这种现象,则说明当前的模型不能很好地刻画数据的季节性,因此需要考虑其他模型。

利用季节ARIMA模型进行动态预测或静态预测和前面介绍过的没什么不同,仍是利用forecast命令或fit命令。只有一点需要注意:当模型是基于季节差分后的序列建立的(类似上面的eqa),如果预测的目标是季节差分后的数据,仍只需对forecast命令或fit命令加上可选参数d。所以,对一个季节ARIMA模型,无论它是基于差分后的序列、还是基于季节差分后的序列建立的,预测对应的差分或季节差分后的数据,加上可选参数d就行了。

命令复习
  • .forecast(d):对差分或季节差分后的序列实施动态预测
  • .fit(d):对差分或季节差分后的序列实施静态预测

[注] ( . )命令表示命令可单独使用,也可跟在对象后使用;.命令表示命令只能跟在对象后使用。

练习
  1. 重复上面的操作,把预测的样本期设为1990M01-1992M04,利用静态预测对比eqa和eqb的预测精度。

读后有收获欢迎打赏站长吃碗兰州拉面😹


点赞    

扫一扫,点右上角⋯分享

ARIMA模型
MIDAS回归模型



   
   
    给站长留言    
😀😂😅😆😊😍😝🤭🌹🤝😵😭😱😳😣😴
昵称*
验证*:8减0 =