“协整”是计量经济学内里的明星。不相识计量经济学的人更容易被它所覆盖的计量经济学光环给吓到。然而,协整其实是个十分简朴的观念,并不神秘,更非高不行攀。要相识“协整”,首先得提到一个名词——平稳。
1.关于平稳
金融规模有许多种时间序列。凡是为了研究的利便,人们会对这些时间序罗列办分类。好比凭据时间序列时距离断的是非可以简朴的分为高频时间序列和非高频时间序列。那么,凭据时间序列的平稳性,便可以将时间序列分为平稳的时间序列和非平稳的时间序列。
平稳时间序列和非平稳时间的区别在于三个方面:
① 时间序列(随机进程)的均值是否是常数?可能说时间序列(随机进程)的均值是不是跟时间无关?假如不是常数则该时间序列长短平稳的;假如是常数,则该时间序列大概是平稳的,但不必定,须进入第二步。
② 时间序列(随机进程)的方差是否是常数?可能说时间序列(随机进程)的方差是不是跟时间无关?假如不是常数则该时间序列长短平稳的;假如是常数,则该时间序列大概是平稳的,但不必定,须进入第三步。
③ 任意两个时期的时间序列之间的协方差是否仅仅依赖于两个时间序列的时距离断。
假如一个时间序列同时满意①②③,那么该时间序列就是平稳的。
(注:由于均值、方差和协方差可以被统一的成为统计特性,因此也可以说,假如时间序列的统计特性不跟着时间的推移而产生变革,则说明时间序列是平稳的。) 平稳时间序列还可以进一步细分。按照平稳时间序罗列办差分的次数,可以将平稳时间序列分为差异阶的平稳时间序列。假如一个时间序列自己是平稳的,那么该时间序列可被记作I(0),括号内里的0暗示该时间序列没有举办差分。假如一个时间序列一阶差分之后平稳,那么可被记作I(1),以此类推。
2.平稳性的检讨
在应用进程中,时间序列的平稳性的判定要简朴的多。常用的判定时间序列平稳性的要领有两个:图示法和单元根检讨法。
图示法,顾名思义,就是画出时间序列的时序图,来目测时间序列是否平稳。假如画出的时间序列不存在明明的趋势,那么时间序列大概是平稳的。这个要领较量随意和主观,因此,只能作为帮助判定的手段。
单元根检讨法是一个理论基本扎实的判定手段,单元根检讨的要领很是多,一般常用的有DF检讨(Dickey-Fuller Test),ADF检讨(Augmented Dickey-Fuller Test)和PP检讨(Phillips-Perron Test)。这三个检讨的理论基本在这里不讲,因为除却数理统计的专业人员,大部门人都不必深究这些理论,现实中只要分明这些检讨用软件的实现要领就可以了。
下面以R为例:
①生成两个时间序列:
x=rnorm(500); #没有单元根
y=cumsum(x); #有单元根
②绘制时序图
plot.ts(x);
plot.ts(y);
③ADF.test检讨
library(tseries)#载入tseries包
adf.test(x)
Augmented Dickey-Fuller Test
data: x
Dickey-Fuller = -8.6286, Lag order = 7, p-value = 0.01
alternative hypothesis: stationary
Warning message:
In adf.test(x) : p-value smaller than printed p-value
P值便是0.01,拒绝x是原假设(注:原假设为非平稳),即可以认为x是平稳的。
adf.test(y)
Augmented Dickey-Fuller Test
data: y
Dickey-Fuller = -2.6504, Lag order = 7, p-value = 0.303 alternative hypothesis: stationary
P值便是0.303,因此y长短平稳的。
#用urca包中的ur.df()函数来完成上述进程
install.packages(‘urca’)#安装urca包
library(urca)#载入urca包
?ur.df#查察ur.df()函数的辅佐文档
#用uroot包中的ADF.test()函数来完成上述进程
install.packages(‘uroot’)# library(uroot) #载入uroot包,没有安装的话,需要install.packages(uroot)
?ADF.test#查察ADF.test()函数的辅佐文档
④PP检讨
library(tseries)
pp.test(x)
Phillips-Perron Unit Root Test
data: x
Dickey-Fuller Z(alpha) = -529.0583, Truncation lag parameter = 5,p-value = 0.01
alternative hypothesis: stationary
Warning message:
In pp.test(x) : p-value smaller than printed p-value
P值便是0.01,拒绝x为非平稳序列的假设。
pp.test(y)
Phillips-Perron Unit Root Test
data: y Dickey-Fuller = -2.8806, Truncation lag parameter = 5, p-value =0.2056
P值便是0.2056,不能拒绝x长短平稳序列的假设,即x非平稳。
#也可以用stats包中的PP.test()函数来完成PP检讨