时间序列与R语言应用(part3)--趋势平稳与差分平稳
學習筆記
參考書籍:《計量經濟學》
PS:本系列停更1天(0408恢復更新),想先更新隔壁的Xpath和離群點檢測
趨勢平穩與差分平穩
趨勢平穩與差分平穩隨機過程
- 虛假回歸
一些非平穩的經濟時間序列往往表現出共同的變化趨勢,而這些序列間本身不一定有直接的關聯關系,這時對這些數據進行回歸,盡管有較高的R2R^2R2,但其結果是沒有任何實際意義的,這種現象我們稱之為虛假回歸。
為了避免這種虛假回歸的產生,通常的做法是引入作為趨勢變量的時間ttt,這樣包含有時間趨勢變量的回歸,可以消除這種趨勢性的影響。然而這種做法,只有當趨勢性變量是確定性的而不是隨機性的,才會是有效的。換言之,一個包含有某種確定性趨勢的非平穩時間序列,可以通過引入趨勢變量,而將確定性趨勢分離出來。
- 隨機性趨勢與確定性趨勢
考慮如下的含有1階自回歸的隨機過程:
Xt=α+βt+ρXt?1+μt(1)X_t=\alpha + \beta t + \rho X_{t-1} + \mu_t\tag{1} Xt?=α+βt+ρXt?1?+μt?(1)
其中μt\mu_tμt?為白噪聲,ttt為一個時間趨勢。
如果ρ=1,β=0\rho=1, \beta =0ρ=1,β=0,則(1)式為一個帶位移的隨機游走過程。根據α\alphaα的正負,XtX_tXt?表現出明顯的上升或下降趨勢,這種趨勢稱為隨機性趨勢。
如果ρ=0,β≠0\rho=0, \beta \neq0ρ=0,β?=0,則(1)式為一個帶時間趨勢的隨機變化過程,根據β\betaβ的正負,XtX_tXt?表現出明顯的上升或下降趨勢,這種趨勢稱為確定性趨勢。
如果ρ=1,β≠0\rho=1, \beta \neq0ρ=1,β?=0,則XtX_tXt?包含確定性與隨機性兩種趨勢。
判斷一個非平穩的時間序列,它的趨勢是隨機性的還是確定性的,可通過ADF檢驗中所用的第3個模型:
ΔXt=α+βt+δXt?1+∑i=1mβiΔXt?i+?t(2)\Delta X_t= \alpha+ \beta t+ \delta X_{t-1}+\sum_{i=1}^m\beta_i \Delta X_{t-i}+\epsilon_t\tag{2} ΔXt?=α+βt+δXt?1?+i=1∑m?βi?ΔXt?i?+?t?(2)
如果檢驗結果表明所給時間序列有單位根,且時間變量ttt前的參數顯著為零,則該序列顯示出隨機性趨勢。如果沒有單位根,且時間變量ttt前的參數顯著地異于零,則該序列顯示出確定性趨勢。
- 差分平穩過程與趨勢平穩過程
隨機性趨勢可通過差分的方法消除,比如一個帶位移的隨機游走過程,就可以通過差分的方法使其平穩:
Xt=α+Xt?1+μt?ΔXt=α+μt(3)X_t=\alpha + X_{t-1} + \mu_t \Rightarrow \Delta X_t=\alpha + \mu_t\tag{3} Xt?=α+Xt?1?+μt??ΔXt?=α+μt?(3)
該時間序列XtX_tXt?稱為差分平穩過程。
然而確定性趨勢無法通過差分的方法消除,只能通過除去趨勢項消除,如比如一個帶時間趨勢的隨機變化過程,可以通過去除時間變量ttt,使其平穩:
Xt=α+βt+μt?Xt?βt=α+μt(4)X_t=\alpha + \beta t + \mu_t \Rightarrow X_t - \beta t=\alpha + \mu_t\tag{4} Xt?=α+βt+μt??Xt??βt=α+μt?(4)
該時間序列XtX_tXt?稱為趨勢平穩過程。趨勢平穩過程代表了一個時間序列長期穩定的變化過程,因而用于進行長期預測更為可靠。
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)$coefficientsEstimate 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)$coefficientsEstimate 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單位根檢驗結果說明了,該序列不存在單位根,則沒有隨機性趨勢。
總結
以上是生活随笔為你收集整理的时间序列与R语言应用(part3)--趋势平稳与差分平稳的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奶块有领地怎么偷坐骑
- 下一篇: R语言之离群点检验(part3)--利用