Stata+R:时间序列单位根检验
1、知识点回顾
单位根检验是序列的平稳性检验,如果不检验序列的平稳性直接OLS容易导致伪回归。
当检验的数据是平稳的(即不存在单位根),即意思是单位根检验的原假设是存在单位根,存在单位根,则不平稳,等价关系!要想进一步考察变量的因果联系,可以采用格兰杰因果检验。
平稳性检验有3个作用:1)检验平稳性,若平稳,做格兰杰检验,非平稳,作协正检验。2)协整检验中要用到每个序列的单整阶数。
当检验的数据是非平稳(即存在单位根),并且各个序列是同阶单整(协整检验的前提),想进一步确定变量之间是否存在协整关系,可以进行协整检验,协整检验主要有EG两步法和JJ检验 (1)、EG两步法是基于回归残差的检验,可以通过建立OLS模型检验其残差平稳性 (2)、JJ检验是基于回归系数的检验。
2、单位根检验方法步骤
在eviews中,ADF检验的方法:1 view---unit roottest,出现对话框,默认的选项为变量的原阶序列检验平稳性,确认后,若ADF检验的P值小于0.5,拒绝原假设,说明序列是平稳的,若P值大于0.5,接受原假设,说明序列是非平稳的;2 重复刚才的步骤,view---unit root test,出现对话框,选择1stdifference,即对变量的一阶差分序列做平稳性检验,和第一步中的检验标准相同,若P值小于0.5,说明是一阶平稳,若P值大于0.5,则继续进行二阶差分序列的平稳性检验。
虽然定义经过d阶差分后是平稳的,但是软件只提供到2阶差分,若是原始数据没有经过差分就平稳,则说明那是零阶单整,记为I(0)的过程。
3、导入数据
数据为
year chic egg
1930 468491 3581
1931 449743 3532
1932 436815 3327
1933 444523 3255
1934 433937 3156
1935 389958 3081
1936 403446 3166
1937 423921 3443
1938 389624 3424
1939 418591 3561
1940 438288 3640
1941 422841 3840
1942 476935 4456
1943 542047 5000
1944 582197 5366
1945 516497 5154
1946 523227 5130
1947 467217 5077
1948 499644 5032
1949 430876 5148
1950 456549 5404
1951 430988 5322
1952 426555 5323
1953 398156 5307
1954 396776 5402
1955 390708 5407
1956 383690 5500
1957 391363 5442
1958 374281 5442
1959 387002 5542
1960 369484 5339
1961 366082 5358
1962 377392 5403
1963 375575 5345
1964 382262 5435
1965 394118 5474
1966 393019 5540
1967 428746 5836
1968 425158 5777
1969 422096 5629
1970 433280 5704
1971 421763 5806
1972 404191 5742
1973 408769 5502
1974 394101 5461
1975 379754 5382
1976 378361 5377
1977 386518 5408
1978 396933 5608
1979 400585 5777
1980 392110 5825
1981 384838 5625
1982 378609 5800
1983 364584 5656
1984 374000 5683
1985 370000 5700
1986 373000 5758
1987 380000 5867
1988 356000 5808
1989 356000 5600
1990 353000 5675
1991 363000 5750
1992 371000 5892
1993 380000 5992
1994 386000 6158
1995 388000 6233
1996 393000 6367
1997 410000 6458
1998 425000 6650
1999 437000 6908
2000 437000 7058
2001 444000 7175
2002 444000 7275
2003 450000 7292
2004 454000 7425
2005 453000 7500
2006 453000 7575
在R中插入数据:
接下来,需要使用以下命令将数据集导入到R中:
Thurman<-read.table("C:/eggs1.txt", header=T)
year<-Thurman$year
egg<-Thurman$egg
chic<-Thurman$chic
调用时间序列包,并将chickens and eggs声明为时间序列是很有用的:
library(ts)
year<-ts(year)
chic<-ts(chic)
egg<-ts(egg)
在Stata中插入数据:
在Stata中,你可以输入:
infile year chic egg using"C:/eggs1.txt"
您将看到,因为我在文件egg1.txt的第一行中包含了变量名,所以Stata将数据集的第一行读取为缺失的值。您应该在Stata数据编辑器窗口中删除这一行(仅限!)接下来你需要将你的数据声明为时间序列:
tsset year
4、单位根检验Unit Root: Augmented Dickey-Fuller Test
4.1 R单位根检验
首先,重要的是你要概述ADF检验,解释NULL和ALTERNATIVE假设。
R中的ADF Test:我建议你使用R代码adf.R。由Koenker教授提供,可在http://www.econ.uiuc.edu/~econ472/routines.html:下载
#Copy from this point:
"adf"<-
function(x, L = 2, int = T, trend = T)
{
#Construct Data for Augmented Dickey Fuller Model with L lags.
#This is a modified version for R, in which the command rts was substituted by ts.
x <- ts(x)
D <- diff(x)
if(L > 0) {
for(i in 1:L)
D <- ts.intersect(D, lag(diff(x), - i))
}
D <- ts.intersect(lag(x, -1), D)
if(trend == T)
D <- ts.intersect(D, time(x))
y <- D[, 2]
x <- D[, -2]
if(int == T)
summary(lm(y ~ x))
else summary(lm(y ~ x - 1))
}
#To this point.
生成一个adf函数 然后对变量chic进行单位根检验
Example 1:
#ADF for Chickens
#Model with 1 lag, constant and trend:
adf(chic, L=1, int=T, trend=T)
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-52300 -11906 -2140 9191 77420
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.360e+04 4.277e+04 1.955 0.0564 .
xD.lag(x, -1) -1.821e-01 9.112e-02 -1.998 0.0514 .
xD.D.lag(diff(x), -i) -8.620e-02 1.435e-01 -0.601 0.5510
xtime(x) -3.156e+02 2.670e+02 -1.182 0.2429
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Residual standard error: 25030 on 48 degrees of freedom
Multiple R-Squared: 0.1067, Adjusted R-squared: 0.05085
F-statistic: 1.911 on 3 and 48 DF, p-value: 0.1404
Example 2:
#Model with 1 lag and constant, but not trend:
adf(chic, L=1, int=T, trend=F)
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-52968 -10923 -4082 9118 80473
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.198e+04 3.351e+04 1.551 0.127
xlag(x, -1) -1.283e-01 7.926e-02 -1.618 0.112
xD.lag(diff(x), -i) -1.142e-01 1.421e-01 -0.803 0.426
Residual standard error: 25130 on 49 degrees of freedom
Multiple R-Squared: 0.08067, Adjusted R-squared: 0.04314
F-statistic: 2.15 on 2 and 49 DF, p-value: 0.1274
Example 3:
#Model with 1 lag, but no constant nor trend:
adf(chic, L=1, int=F, trend=F)
Call:
lm(formula = y ~ x - 1)
Residuals:
Min 1Q Median 3Q Max
-60086 -11783 -1693 12188 77467
Coefficients:
Estimate Std. Error t value Pr(>|t|)
xlag(x, -1) -0.005967 0.008378 -0.712 0.48
xD.lag(diff(x), -i) -0.175791 0.138382 -1.270 0.21
Residual standard error: 25480 on 50 degrees of freedom
Multiple R-Squared: 0.03949, Adjusted R-squared: 0.001073
F-statistic: 1.028 on 2 and 50 DF, p-value: 0.3652
4.2 Stata ADF检验
Stata中的ADF测试:再次,我建议你明确地显示这个测试的NULL和ALTERNATIVE假设,以及你将要运行的回归方程。然后,使用STATA,你使用命令dfuller
我建议你考虑三种不同的测试方法:
(a)具有截距和趋势的模型;
(b)有截距但无趋势的模型;
(c)没有截距和趋势的模型。
一个简单的例子:Stata中的ADF:
a)包括常数和趋势的模型:例如,在鸡肉系列中使用1个滞后,你将得到以下结果
dfuller chic, regress trend lags(1)
Augmented Dickey-Fuller test for unit root Number of obs = 52
---------- Interpolated Dickey-Fuller ---------
Test 1% Critical 5% Critical 10% Critical
Statistic Value Value Value
------------------------------------------------------------------------------
Z(t) -1.998 -4.146 -3.498 -3.179
------------------------------------------------------------------------------
* MacKinnon approximate p-value for Z(t) = 0.6030
------------------------------------------------------------------------------
D.chic | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+--------------------------------------------------------------------
chic |
L1 | -.1820551 .0911164 -1.998 0.051 -.365257 .0011467
LD | -.0861985 .1435294 -0.601 0.551 -.3747837 .2023867
_trend | -315.6405 266.9686 -1.182 0.243 -852.4168 221.1358
_cons | 83287.07 42600.86 1.955 0.056 -2367.711 168941.8
------------------------------------------------------------------------------
这里零假设是存在单位根。因此,增强的Dickey-Fuller统计值为-1.998,并且位于接受范围内,分别为1%、5%和10%。因此,我们不能拒绝单位根的存在。
b)包含常数但无趋势的模型:原理相同,但将命令调整为:
dfuller chic, regress lags(1)
Augmented Dickey-Fuller test for unit root Number of obs = 52
---------- Interpolated Dickey-Fuller ---------
Test 1% Critical 5% Critical 10% Critical
Statistic Value Value Value
------------------------------------------------------------------------------
Z(t) -1.618 -3.577 -2.928 -2.599
------------------------------------------------------------------------------
* MacKinnon approximate p-value for Z(t) = 0.4737
------------------------------------------------------------------------------
D.chic | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+--------------------------------------------------------------------
chic |
L1 | -.1282545 .0792599 -1.618 0.112 -.2875333 .0310243
LD | -.1141494 .1421427 -0.803 0.426 -.3997958 .1714969
_cons | 51982.91 33508.86 1.551 0.127 -15355.67 119321.5
------------------------------------------------------------------------------
c)不包括常数和趋势的模型:Idem,但将命令调整为:
dfuller chic, noconstant regress lags(1)
Augmented Dickey-Fuller test for unit root Number of obs = 52
---------- Interpolated Dickey-Fuller ---------
Test 1% Critical 5% Critical 10% Critical
Statistic Value Value Value
------------------------------------------------------------------------------
Z(t) -0.712 -2.619 -1.950 -1.610
------------------------------------------------------------------------------
D.chic | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+--------------------------------------------------------------------
chic |
L1 | -.0059671 .0083782 -0.712 0.480 -.0227951 .010861
LD | -.1757909 .1383822 -1.270 0.210 -.4537398 .102158
------------------------------------------------------------------------------
展示ADF结果:
想象你正在写一篇学术论文。不要在中间结果上花费太多空间;相反,要集中于您的最终结论,当您经历不同的测试步骤时,这可能是矛盾的。在一天结束的时候,你需要用表格总结你的主要结果,然后写一段话,对你可以得到的不同结果进行评论,包括/排除鸡和蛋系列的趋势/常数/滞后。
对单位根检验的建议:
1:单位根检验对包括滞后和/或常数和趋势的数量非常敏感。这就是我们要求你在上表中显示所有ADF统计数据的原因。很有可能的是,有些结果表明存在单位根,而有些则不存在。
2:有这么多的模型,如何对测试结果做出一个普遍的结论?例如,Johnston和DiNardo(1997,第226页)提到,包含滞后的目标之一是实现白噪声残差。其他作者建议在模型选择中使用AIC或SIC。
3:ADF检验中计算信息标准非常简单。“dfuller”的每个输出对应于序列的滞后、常数和/或趋势的线性回归(对于时间趋势,您可以使用从1到54的向量来“近似”回归系数,而不是使用年)。从OLS回归中,您可以恢复样本大小、RSS和计算SIC或AIC所需的参数的数量,以及原始的ADF统计量。但记住要用Dickey-Fuller 临界值。