R语言单位根检验详细版

一、数据

1978-2002年中国农村居民家庭人均纯收入对数序列{}和生活消费支出对数序列{}的相对变化关系如下表所示。

yearxylnxlny
1978133.6116.14.894854.754452
1979160.7134.55.0795394.901564
1980191.3162.25.2538435.08883
1981223.4190.85.4089645.251226
1982270.1220.25.5987925.394536
1983309.8248.35.7359275.514638
1984355.3273.85.8729635.612398
1985397.6317.45.9854465.760163
1986423.83576.0492625.877736
1987462.6398.36.1368635.987205
1988544.9476.76.3006026.166887
1989601.5535.46.3994276.283014
1990686.3584.66.5313156.370928
1991708.6619.86.5632916.429397
1992784659.86.6644096.491937
1993921.6769.76.8261116.646001
199412211016.87.1074256.924416
19951577.71310.47.3637237.178088
19961926.11572.17.5632537.360168
19972090.11617.27.6449677.388452
199821621590.37.6787897.371678
19992210.31577.47.7008847.363533
20002253.41670.17.7201957.420639
20012366.417417.7691257.462215
2002247618347.81447.514255

二、画时序图

```{r}
library(readxl)
b<-read_excel("C:/Users/Lenovo/Desktop/A1_27.xlsx")
x<-ts(b$lnx,start = 1978)   #人均纯收入对数序列
y<-ts(b$lny,start = 1978)   #消费支出对数序列
c1<-min(x,y)
c2<-max(x,y)
plot(x,ylim=c(c1,c2),col=1,ylab="x,y")
lines(y,lty=2,col=2)
legend("topleft",legend=c("居民家庭人均纯收入对数序列","居民生活消费支出对数序列"),col=c(1,2),lty=c(1,2),bty="n");
```

三、检验是否平稳

       对序列的平稳性检验主要分为两种检验方法:一种根据时序图和自相关图的特征做出判断的图检验方法;另一种是构造检验统计量进行假设检验的方法。本文主要以第二种检验方式为主进行介绍,第一种方法较简单且具有主观性。

单位根检验

常用的单位根检验包括DF检验、ADF检验、PP检验、KPSS检验

1.DF检验
ADF检验原假设和备择假设
情形原假设备择假设
I含单位根的非平稳时间序列零均值平稳时间序列
II含单位根的非平稳时间序列非零均值平稳时间序列
III含单位根的非平稳时间序列趋势平稳序列

(1)当序列基本走势呈现无规则上升或下降并反复时,将其归于为无漂移项自回归模型

(2)当序列基本走势呈现明显的随时间递增或递减且趋势不太陡峭时,将其归为带漂移项自回归模型

(3)当序列基本走势随时间快速递增时,则将其归为带趋势项回归过程

```{r}
library(fBasics)
library(fUnitRoots)
adfTest(x,lag=1,type="nc")  #无漂移项
adfTest(x,lag=1,type="c")   #带漂移项
adfTest(x,lag=1,type="ct")  #带漂移项和趋势项
```

 

p值>\alpha,接受原假设,该序列不平稳。

2.ADF检验

       在R语言中,fUnitRoots程序包中的函数adfTest( )、urca程序包中的函数ur.df( )、aTSA程序包中的函数adf.test( )以及tseries程序包中的函数adf.test( )均可进行ADF检验。具体函数命令格式可以在rstudio中通过(?程序命令)进行查找与学习。由于ADF检验有一个基本假定Var(\varepsilon _t)=\sigma ^2,这导致ADF检验主要适用于方差齐性,对异方差序列的平稳性检验效果不佳。

ADF检验原假设和备择假设
情形原假设备择假设
I含单位根的非平稳时间序列零均值平稳时间序列
II含单位根的非平稳时间序列非零均值平稳时间序列
III含单位根的非平稳时间序列趋势平稳序列

p值<\alpha,拒绝原假设,p值>\alpha,接受原假设,\alpha一般取0.05

```{r}
library(aTSA)
adf.test(x)  #x表示居民人均收入对数序列
```

       上述Type1,Type2,Type3对应上述三种情形,由上述结果可以看出所有p值都>\alpha,所以不平稳。

如果p值均小于\alpha,则选取p值最小的那种类型,p值越小越有把握拒绝原假设

```{r}
library(fBasics)
library(fUnitRoots)
adfTest(x,lag=1,type="nc")   #nc表示无漂移项(没有常数项)第一种类型
adfTest(x,lag=1,type="c")    #c表示有漂移项(常数项)第二种类型
adfTest(x,lag=1,type="ct")   #ct表示带趋势项第三种类型
```

在显著性水平取0.05时,可以认为中国农村居民家庭人均纯收入为非平稳序列。

3.PP检验
原假设备择假设
\rho=0,序列不平稳序列平稳

PP检验量可适用于异方差场合的平稳性检验,R软件中可使用urca程序包中的ur.pp( )函数

命令格式如下:adf.test(x,type=,model=,lags=,use.lag=)

该函数的参数说明:

-x:需要进行PP单位根检验的序列名

-type:检验统计量类型。type可以取"Z-alpha"和"Z-tau"两个值

-model:回归模型的类型。model通常可取两个值,model="constant"意味着模型中含有漂移项,而无时间趋势。model=“trend”意味着模型中不含漂移项,而含时间趋势

```{r}
library(urca)
pp.x <- ur.pp(x, type="Z-tau", model="constant", lags="short")
summary(pp.x)
pp.x <- ur.pp(x, type="Z-tau", model="trend", lags="short")
summary(pp.x)
```

       由上图可以看出对应的检验统计量为-1.6632,1%显著性水平下的临界值为-3.73424;5%显著性水平下的临界值为-2.990697;10%显著性水平的临界值为-2.634794,-1.6632>-2.634794,故在10%的显著性水平下可接受原假设,认为该序列不平稳。

4.KPSS检验

       上述检验的缺陷在于它们的原假设为"有单位根",这是因为在数据量不够或者缺乏足够证据时,往往无法拒绝原假设,这时,一些人就觉得应该得到"有单位根"(不平稳)的结论。实际上,只能得到“没有足够证据说明没有单位根”(没有足够证据说平稳)的结论,而不能得到“有证据说不平稳”的结论。KPSS检验最大的特点是它的原假设是序列平稳或趋势平稳,备择假设是序列有单位根。

KPSS检验的原假设和备择假设
原假设备择假设
序列平稳或趋势平稳不平稳

在R语言中,urca程序包中的函数ur.kpss( )或程序包tseries中的函数kpss.test( )可进行KPSS检验.函数ur.kpss( )的命令格式如下:

命令格式如下:

ur.kpss(x,type=,lags=,use.lag=)

-x:需要进行PP单位根检验的序列名

-type:检验模型的类型。type可以取"mu"和"tau"两个值.type="mu"意味着检验模型中含有常数项;type="tau"意味着检验模型中含有常数项和时间趋势项

-lags:滞后阶数,可取三个值:lags="short"或"long",表示两个特定阶数。lags="nil"表示无误差修正

-use.lag:使用者自己指定的阶数

```{r}
library(tseries)
kpss.test(x, null = "Level", lshort = TRUE)
kpss.test(x, null = "Trend", lshort = TRUE)
```

p=0.01<\alpha=0.05,拒绝原假设,该序列不平稳。

p=0.1>\alpha=0.05,接受原假设即平稳,这个是趋势平稳也就是说提取趋势后序列平稳,所以和上述结果没有冲突本质上也是不平稳,并且告诉了我们需要提取趋势后平稳。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值