单位根检验

---
title: "单位根检验"
author: "xueflang"
date: "2016年4月5日"
output: html_document
---
常用的判断时间序列平稳性的方法有两个:图示法和单位根检验法。
图示法,顾名思义,就是画出时间序列的时序图,来目测时间序列是否平稳。如果画出的时间序列不存在明显的趋势,那么时间序列可能是平稳的。这个方法比较随意和主观,因此,只能作为辅助判断的手段。
单位根检验法是一个理论基础扎实的判断手段,单位根检验的方法非常多,一般常用的有DF检验(Dickey-Fuller Test),ADF检验(Augmented Dickey-Fuller Test)和PP检验(Phillips-Perron Test)。

```{r}
set.seed(123)
x=rnorm(500); #没有单位根
y=cumsum(x); #有单位根
```

绘制时序图
```{r}
plot.ts(x);
plot.ts(y);
```

ADF.test检验
```{r}
#null hypothesis is that x has a unit root
library(tseries)
adf.test(x)
```
P值等于0.01,拒绝x是原假设(注:原假设为非平稳),即可以认为x是平稳的。

```{r}
adf.test(y)
```
P值大于0.05,因此y是非平稳的。

```{r}
#fUnitRoots包和adfTest结果和adf.test类似
library(fUnitRoots)
adfTest(x)
adfTest(y)
```

单位根检验
```{r}
#fUnitRoots包unitrootTest基于McKinnons’s test statistics检验
unitrootTest(x)
unitrootTest(y)
```

原假设含有单位根(非平稳),p值较小,则平稳。

PP检验
```{r}
pp.test(x)
```
P值等于0.01,原假设含单位根(非平稳),拒绝x为非平稳序列的假设。

```{r}
pp.test(y)
```
P值大于0.05,因此y是非平稳的。

DF检验、ADF检验、DFGLS检验、PP检验、KPSS检验、ERS检验和NP检验
ADF检验和PP检验方法出现的比较早,在实际应用中较为常见,但是,由于这2种方法均需要对被检验序列作可能包含常数项和趋势变量项的假设,因此,应用起来带有一定的不便;其它几种方法克服了前2种方法带来的不便,在剔除原序列趋势的基础上,构造统计量检验序列是否存在单位根,应用起来较为方便。

fUnitRoots包提供urca包接口,urdfTest等同于urca包summary(ur.ers(x))

Kwiatkowski-Phillips-Schmidt-Shin (KPSS)检验
```{r}
#参考执行KPSS单位根检验的零假设是平稳的
kpss.test(x)
#P值大于0.05,因此x是平稳的。
kpss.test(y)
#P值小于0.05,因此y是非平稳的。
```

ADF检验 Augmented Dickey--Fuller test for unit roots
增广的DF检验,原假设含单位根(非平稳)
```{r}
library(fUnitRoots)
urdfTest(x)
```
1%:严格拒绝原假设;5%:拒绝原假设,10%类推。这三个水平值是软件设定的,它表示拒绝原假设的不同程度。

ADF检验的原假设是存在单位根,输出的是ADF检验的统计值,只要这个统计值是小于1%水平下的数字就可以极显著的拒绝原假设,认为数据平稳。注意,ADF值一般是负的,也有正的,但是它只有小于1%水平下的才能认为是及其显著的拒绝原假设 。
一般在原序列条件下,如果存在非平稳状态,按以下步骤进行:
一阶差分是否具有单位根,就是比较一阶差分的ADF检验值与5%临界值的大小,否则再看二阶差分。

-17.1208 远小于1pct -2.58 可以认为是平稳的(原假设非平稳)。

ERS检验 Elliott--Rothenberg--Stock test for unit roots
原假设序列有一个单位根
```{r}
urersTest(x)
```

KPSS检验 KPSS unit root test for stationarity原假设是(趋势)平稳序列。备择假设是单位根序列
```{r}
urkpssTest(x)
```

PP检验 Phillips--Perron test for unit roots
```{r}
urppTest(x)
```

Schmidt--Phillips test for unit roots
```{r}
urspTest(x)
```

Zivot--Andrews test for unit roots
```{r}
urzaTest(x)
```

检验方法:
     方法有①ADF② DFGLS ③ PP与  ④ KPSS ⑤ ERS⑥ NP
     前三种有有关常数与趋势项假设,应用不方便,建议少用
     后三种是软件 是去除原序列趋势后进行检验,应用方便
原假设:6种方法中除KPSS外是:不稳定(存在单位根)
判定规则
            P规则:小于临界值则接受H1
           临界值法
                      具体:左则单边: ①ADF② DFGLS ③ PP⑥ NP
                                          接受(原假设)域   统计值大于临界值
                                  右则单边: ④ KPSS ⑤ ERS
                                          接受(原假设)域   统计值小于临界值
         备注:只要软件提供了P值就直接按P规则 做判定;除非没有提供的情况下 才动用临界值法
       





评论

此博客中的热门博文

V2ray websocket(ws)+tls+nginx分流

Rstudio 使用代理