学习笔记
参考书籍:《计量经济学》
趋势平稳与差分平稳
趋势平稳与差分平稳随机过程
- 虚假回归
一些非平稳的经济时间序列往往表现出共同的变化趋势,而这些序列间本身不一定有直接的关联关系,这时对这些数据进行回归,尽管有较高的,但其结果是没有任何实际意义的,这种现象我们称之为虚假回归。
为了避免这种虚假回归的产生,通常的做法是引入作为趋势变量的时间,这样包含有时间趋势变量的回归,可以消除这种趋势性的影响。然而这种做法,只有当趋势性变量是确定性的而不是随机性的,才会是有效的。换言之,一个包含有某种确定性趋势的非平稳时间序列,可以通过引入趋势变量,而将确定性趋势分离出来。
- 随机性趋势与确定性趋势
考虑如下的含有1阶自回归的随机过程:
其中为白噪声,为一个时间趋势。
如果,则(1)式为一个带位移的随机游走过程。根据的正负,表现出明显的上升或下降趋势,这种趋势称为随机性趋势。
如果,则(1)式为一个带时间趋势的随机变化过程,根据的正负,表现出明显的上升或下降趋势,这种趋势称为确定性趋势。
如果,则包含确定性与随机性两种趋势。
判断一个非平稳的时间序列,它的趋势是随机性的还是确定性的,可通过ADF检验中所用的第3个模型:
如果检验结果表明所给时间序列有单位根,且时间变量前的参数显著为零,则该序列显示出随机性趋势。如果没有单位根,且时间变量前的参数显著地异于零,则该序列显示出确定性趋势。
- 差分平稳过程与趋势平稳过程
随机性趋势可通过差分的方法消除,比如一个带位移的随机游走过程,就可以通过差分的方法使其平稳:
该时间序列称为差分平稳过程。
然而确定性趋势无法通过差分的方法消除,只能通过除去趋势项消除,如比如一个带时间趋势的随机变化过程,可以通过去除时间变量,使其平稳:
该时间序列称为趋势平稳过程。趋势平稳过程代表了一个时间序列长期稳定的变化过程,因而用于进行长期预测更为可靠。
R语言实现
下面将模拟2个时间序列,通过ADF检验,判断序列具有哪种趋势(随机性or确定性)
模拟序列(随机游走):
#模拟随机游走
set.seed(1238)
n <- 1000
y <- vector(length = n)
y[1] = 0
for (i in 2:n){
y[i] = y[i-1] + rnorm(1, 0, 1/n)
}
#利用ADF检验中的模型3,获取时间变量tt的显著性检验结果
x <- y
k <- 1
x <- as.vector(x, mode = "double")
x_1 <- diff(x)
n <- length(x_1)
z <- embed(x_1, k)
yt <- z[, 1]
xt1 <- x[k:n]
tt <- k:n
res <- lm(yt ~ xt1 + 1 + tt)
summary(res)$coefficients
#ADF检验结果
adf.test(y)$p.value
控制台输出结果:
> summary(res)$coefficients
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.512132e-05 6.686299e-05 -0.5252729 0.59951037
xt1 -4.570506e-03 3.345454e-03 -1.3661843 0.17218951
tt 2.859225e-07 1.665257e-07 1.7169867 0.08629248
> adf.test(y)$p.value
[1] 0.8823519
由结果可知,时间变量tt的回归系数,在大于0.05的显著性水平,不能拒绝回归系数为0的假设,说明没有确定性趋势,而ADF单位根检验结果说明了,该序列存在单位根,则存在随机性趋势。
模拟序列:
n <- 100
x <- c(1:n)
z <- rnorm(n, 0, 1/n)
y <- 2*x + 3 + z
#利用ADF检验中的模型3,获取时间变量tt的显著性检验结果
x <- y
k <- 1
x <- as.vector(x, mode = "double")
x_1 <- diff(x)
n <- length(x_1)
z <- embed(x_1, k)
yt <- z[, 1]
xt1 <- x[k:n]
tt <- k:n
res <- lm(yt ~ xt1 + 1 + tt)
summary(res)$coefficients
#ADF检验结果
adf.test(y)$p.value
控制台输出结果:
> summary(res)$coefficients
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7066541 0.3032464 15.520891 6.454279e-28
xt1 -0.9024946 0.1010956 -8.927142 2.998167e-14
tt 1.8050169 0.2021935 8.927177 2.997647e-14
> adf.test(y)$p.value
[1] 0.01
由结果可知,时间变量tt的回归系数,在小于0.05的显著性水平,拒绝回归系数为0的假设,说明存在确定性趋势,而ADF单位根检验结果说明了,该序列不存在单位根,则没有随机性趋势。