日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

时间序列与R语言应用(part3)--趋势平稳与差分平稳

發布時間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 时间序列与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=1m?β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)--趋势平稳与差分平稳的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。