时间序列ar模型_时间序列 | ARMA模型“高级”应用

前面写了一大堆关于ARMA模型的概念性的东西,今天就来写写应用吧。(才不是被催的,口亨。)说到应用,最重要的当然是挑选一款合适的软件了,毕竟手算真的可能天荒地老的,说不定还得被Rebellion喷,相当不划算。时间序列模型最常用的软件是EViews。毫不夸张地说,EViews就是设计来解这类模型的。当然你喜欢用Stata, Matlab甚至Python也没人拦着你,但是对于硕士及以下的学生来说,就是可以但没必要。

笔者使用的软件是EViews 9.0(经管之家版,划掉),其高端大气上档次的图形操作界面简直是人类(莘莘学子)的福音。本文全文采用美国1948年1月至2020年2月月度失业率数据作为例子(数据来源:美联储圣路易斯分行),大家可以下载同样的数据跟我左手右手一个慢动作。

以下部分多图预警,建议充够钱之后打开。


本节写EViews基本操作,已经熟悉的读者可以直接跳到下一节。

首先我们打开EViews,选择新建一个工作表(workfile)。选择数据频率为月度,并输入起止年份方便接下来系统自动补全。基本配置如下图所示。

fbe33f585e73ac6eaee3ca104b06e1be.png

接下来我们可以看到下面的界面,这是一个EViews工作表的基本界面。其中显示了工作表的数据范围、一个序列resid、一个数值c。现在序列和数值的取值均为0,它们的作用是在估计完方程之后储存残差序列和截距项的值。上面有一排操作按钮对应各种功能。各位如果有兴趣(xiandedanteng)可以一个个点开看看是啥。

08766ca5c5e702267a60c9dd90ec574e.png

右键新建(New Object),在下表中选择序列(Series)并命名。

84bcafb0849ef460b0fca7025dac8dc2.png

上级打开un序列,运用人类的本质(划掉)复制粘贴大法,我们可以把美国的失业率数据复制上来。当然用其他数据也可以,多试几个练习一下总没有错。

e83b849b8ff81dc75e69e36180393940.png

基本操作到此结束,接下来是重头戏。

一般来说,拿到一个序列之后第一件事情就是单位根检验。如果序列存在单位根,那么ARMA模型基本就毫无用武之地,因为存在伪回归问题。(不熟悉的孩子请翻到前两章复习一下)单位根检验的方法很多,有DF、ADF、PP、KPSS等一大堆不同的检验。检验的具体内容比较复杂,大家知道怎么应用就好。

先说ADF(Augmented Dickey-Fuller)和DF(Dickey-Fuller)。ADF检验本质上来说就是DF的升级版,它能够控制序列自相关问题。因此通常来说大家做到的都会是ADF(p)检验,p是我们选取的滞后阶数。ADF(0)检验就是DF检验。那么问题来了,这个p哪里能买到呢?如下图右侧区域所示,我们一般有两种方法——用SIC等信息准则自动选择,或是自己手动设定。自动选择不用说了,如果我们要手动设定的话,月度数据可以选择12的倍数,季度数据的话可以选择4的倍数。下图的界面可以在序列的View/Unit Root Test选项中打开。

f7588c5e84bc55abe01a60a2b69c5eef.png

ADF/DF检验的原假设是序列存在单位根(不平稳),所以我们的目标当然是拒绝原假设啦。

再说PP(Phillips-Perron)检验。这个检验其实和ADF没有什么本质性的区别,(所以那些分别用ADF和PP检验来讨论稳健性的神棍……嗯……)最大的区别在于PP不需要自己选择滞后阶数,仅此而已。它们的原假设是一样的,得到的结果也基本上是一致的。

然后是神奇的KPSS检验(Kwiatkowski-Phillips-Schmidt-Shin,这里的Phillips和PP的是同一个人,老板啊……)。这个检验和前面三个差了十万八千里,而且可靠性(power)也高了不少,它能够分辨AR系数到底是0.99还是1这个哲学问题。简单来讲,它的原假设是序列平稳,这和前面三个是完全相反的,因此我们希望不拒绝原假设。它还会针对不同情况用到不同的核(kernel,可简单理解为长期方差),这里就不具体展开了。

这里我们用ADF对原序列(Level)进行单位根检验,结果简单明了。下图最后一列显示p值相当接近0,因此我们认为序列是平稳的。注意这里SIC选的滞后阶数p是5。下一步,构建模型。

8e1057c2b1239c9dbf8b8349eb3d4f23.png

构建模型同样是一个哲学问题,因为实在是没有一个标准答案。所谓构建模型,其实就是瞎猜数据生成过程(Data Generating Process, DGP)。显然,ARMA是DGP中最受学生欢迎的一种(大概是因为才疏学浅吧),这里我们就盲猜美国失业率符合ARMA模型。[1]

ARMA模型有什么特点呢?如果大家还记得前面的文章写了啥的话,应该能记住有两个很重要的东西,它们叫ACF和PACF。不记得他们是啥了不要紧,会用就好。Eviews就像个电饭煲,自己会下水和米就好,完全不需要想起自己其实不会煲饭这个事实。请大家猛戳“开始煮饭”,啊不,是View/Correlogram...那个键。出来的东西如下图所示。左边那个是ACF,右边的是PACF。

5b86eb13e50e0e91d55199f232d58ae1.png

不知道它们是啥不要紧,会看就行。记住以下规律:AR模型的ACF呈几何递减,阶数为PACF的显著阶数;MA模型的PACF呈几何递减,阶数为ACF的显著阶数;ARMA模型是AR和MA的叠加。看上图,左边的ACF显然是指数递减的,而右边的PACF和指数递减好像没什么关系。盲猜AR。再看PACF的显著阶数。注意到中间实线旁边的那两根虚线了么,它们就是PACF的临界值,那根条条超出临界值就是显著。定睛一看,仿佛6阶显著。于是我们认为美国失业率的数据生成过程是AR(6)。也就是说,半年以前的失业率对现在的失业率有直接影响,听起来好像合情合理。

那么有人会问了,我看13阶和25阶的PACF好像也显著噻,你怎么不考虑一下?这就跟煲饭一样,好不容易等饭煲了一小时,还要保温3小时才吃,何必咧?一句话,大道至简(parsimonious),饭就得饿的时候吃。

接下来就估计AR(6)咯,不难。点主界面上的Quick/Estimate Equation...,把要估计的方程输进去就好。本例中应该在对话框中输入“un ar(1) ar(2) ar(3) ar(4) ar(5) ar(6) c”,最后那个c别忘掉了,那是常数项。结果跑出来,R方0.986,AR(6)系数显著,再好不过啦。接下来就是抄数据水作业时间了嗯……

4c78a3492da5abb1f7d6d2969fa54453.png
注意到那个Inverted AR Roots了么,复习一下它是干啥的?

但这还不算完,我们可以对回归的残差检验一下确定这个DGP确实是AR(6)。怎么搞呢?点View/Residual Diagnostics/Correlogram Q-statistics,就相当于给残差而不是原序列画一个ACF/PACF。如下图所示,哪哪都不显著啦,满分!

70e557167ad7ae7c9fb8141e0629e0bf.png

别急着开心,残差检验的列表好像还不止这一个哦,不如看看别的,比如这个View/Residual Diagnostics/Correlogram Squared Residual。这个相当于画出了残差平方的ACF和PACF。众所周知,残差的平方和方差有关(废话)。那么这个correlogram其实表示的是方差的时变性。用人话来说,方差是会变哒,而它怎么变可以在图上看出。如下图,两条杠说明有喜,AR(6)不够用啦。

9f7192ad0f81d8af257552f4f76e5b3b.png

通常我们解决这个问题的方法是使用广义自回归条件异方差模型(Generalised Autoregressive Conditional Heteroskedasticity, GARCH),这就留待以后再细说吧,今天知道怎么用EViews来瞎猜ARMA模型就可以啦。

参考

  1. ^千万别告诉我的时间序列老师Prof. Andrew Harvey,分分钟被砍死。当然更惨一点的结果是挂科。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值