Time-Series

對於使用截距/漂移和線性趨勢建模的時間序列,哪個 Dickey-Fuller 檢驗?

  • November 28, 2012

簡潔版本:

我有一個時間序列的氣候數據,我正在測試它的平穩性。根據之前的研究,我預計數據基礎(或“生成”,可以這麼說)數據的模型具有截距項和正的線性時間趨勢。為了測試這些數據的平穩性,我應該使用包含截距和時間趨勢的 Dickey-Fuller 檢驗,即等式 #3嗎?

$ \nabla y_t = \alpha_0+\alpha_1t+\delta y_{t-1}+u_t $

或者,我是否應該使用僅包含截距的 DF 檢驗,因為我認為方程的第一個差異是模型只有截距的基礎?

長版:

如上所述,我有一個時間序列的氣候數據,我正在測試其平穩性。根據之前的研究,我預計數據背後的模型具有截距項、正線性時間趨勢和一些正態分佈的誤差項。換句話說,我希望底層模型看起來像這樣:

$ y_t = a_0 + a_1t + \beta y_{t-1} + u_t $

在哪裡 $ u_t $ 是正態分佈的。由於我假設基礎模型同時具有截距和線性時間趨勢,因此我使用簡單的 Dickey-Fuller 測試的方程 #3測試了單位根,如下所示:

$ \nabla y_t = \alpha_0+\alpha_1t+\delta y_{t-1}+u_t $

該測試返回一個臨界值,這將導致我拒絕原假設並得出基礎模型是非平穩的結論。但是,我質疑我是否正確應用了這一點,因為即使假設基礎模型具有截距和時間趨勢,但這並不意味著第一個區別 $ \nabla y_t $ 也會。恰恰相反,事實上,如果我的數學是正確的。

根據假設的基礎模型的方程計算一階差分給出: $ \nabla y_t = y_t - y_{t-1} = [a_0 + a_1t + \beta y_{t-1} + u_t] - [a_0 + a_1(t-1) + \beta y_{t-2} + u_{t-1}] $

$ \nabla y_t = [a_0 - a_0] + [a_1t - a_t(t-1)] + \beta[y_{t-1} - y_{t-2}] + [u_t - u_{t-1}] $

$ \nabla y_t = a_1 + \beta \cdot \nabla y_{t-1} + u_t - u_{t-1} $

因此,第一個區別 $ \nabla y_t $ 似乎只有截距,沒有時間趨勢。

我認為我的問題與這個問題相似,但我不確定如何將該答案應用於我的問題。

樣本數據:

這是我正在使用的一些示例溫度數據。

64.19749  
65.19011  
64.03281  
64.99111  
65.43837  
65.51817  
65.22061  
65.43191  
65.0221  
65.44038  
64.41756  
64.65764  
64.7486  
65.11544  
64.12437  
64.49148  
64.89215  
64.72688  
64.97553  
64.6361  
64.29038  
65.31076  
64.2114  
65.37864  
65.49637  
65.3289  
65.38394  
65.39384  
65.0984  
65.32695  
65.28  
64.31041  
65.20193  
65.78063  
65.17604  
66.16412  
65.85091  
65.46718  
65.75551  
65.39994  
66.36175  
65.37125  
65.77763  
65.48623  
64.62135  
65.77237  
65.84289  
65.80289  
66.78865  
65.56931  
65.29913  
64.85516  
65.56866  
64.75768  
65.95956  
65.64745  
64.77283  
65.64165  
66.64309  
65.84163  
66.2946  
66.10482  
65.72736  
65.56701  
65.11096  
66.0006  
66.71783  
65.35595  
66.44798  
65.74924  
65.4501  
65.97633  
65.32825  
65.7741  
65.76783  
65.88689  
65.88939  
65.16927  
64.95984  
66.02226  
66.79225  
66.75573  
65.74074  
66.14969  
66.15687  
65.81199  
66.13094  
66.13194  
65.82172  
66.14661  
65.32756  
66.3979  
65.84383  
65.55329  
65.68398  
66.42857  
65.82402  
66.01003  
66.25157  
65.82142  
66.08791  
65.78863  
66.2764  
66.00948  
66.26236  
65.40246  
65.40166  
65.37064  
65.73147  
65.32708  
65.84894  
65.82043  
64.91447  
65.81062  
66.42228  
66.0316  
65.35361  
66.46407  
66.41045  
65.81548  
65.06059  
66.25414  
65.69747  
65.15275  
65.50985  
66.66216  
66.88095  
65.81281  
66.15546  
66.40939  
65.94115  
65.98144  
66.13243  
66.89761  
66.95423  
65.63435  
66.05837  
66.71114 

您需要考慮時間序列水平的漂移和(參數/線性)趨勢,以便根據時間序列的一階差分來指定增強的 Dickey-Fuller 回歸中的確定性項。混淆正是由於以您所做的方式推導一階差分方程。

(增強)Dickey-Fuller 回歸模型

假設序列的水平包括漂移和趨勢項

在這種情況下,非平穩性的原假設是. 此數據生成過程 [DGP] 暗示的第一個差異的一個方程式是您得出的方程式

但是,這不是測試中使用的(增強的)Dickey Fuller 回歸。 相反,正確的版本可以通過減去從第一個方程的兩邊得到

是(增強的)Dickey-Fuller 回歸,非平穩性原假設的等效版本是檢驗這只是使用 OLS 估計的 t 檢驗在上面的回歸中。請注意,本規範中的漂移和趨勢保持不變。 另外需要注意的一點是,如果不確定時間序列的各個層次是否存在線性趨勢,那麼可以聯合檢驗線性趨勢和單位根,即,可以使用具有適當臨界值的 F 檢驗進行檢驗。ur.df這些測試和臨界值由包中的 R 函數生成urca

讓我們詳細考慮一些例子。

例子

1.使用美投系列

第一個示例使用Lutkepohl 和 Kratzig (2005, pg. 9)中討論的美國投資系列。該系列的情節及其第一個區別如下所示。

在此處輸入圖像描述

從該系列的水平來看,它似乎具有非零均值,但似乎沒有線性趨勢。因此,我們繼續進行帶有截距的增強型 Dickey Fuller 回歸,以及因變量的三個滯後來解釋序列相關性,即:

請注意我查看了級別以指定差異中的回歸方程的關鍵點。 執行此操作的 R 代碼如下所示:

   library(urca)
   library(foreign)
   library(zoo)

   tsInv <- as.zoo(ts(as.data.frame(read.table(
     "http://www.jmulti.de/download/datasets/US_investment.dat", skip=8, header=TRUE)), 
                      frequency=4, start=1947+2/4))
   png("USinvPlot.png", width=6,
       height=7, units="in", res=100)
   par(mfrow=c(2, 1))
   plot(tsInv$USinvestment)
   plot(diff(tsInv$USinvestment))
   dev.off()

   # ADF with intercept
   adfIntercept <- ur.df(tsInv$USinvestment, lags = 3, type= 'drift')
   summary(adfIntercept)

結果表明,使用基於估計係數的 t 檢驗可以拒絕該序列的非平穩性原假設。截距和斜率係數的聯合 F 檢驗 () 也拒絕序列中存在單位根的原假設。

2.使用德式(log)消費系列

第二個例子是使用德國季度季節性調整的(對數)消費時間序列。該系列的情節及其差異如下所示。

在此處輸入圖像描述

從序列的水平來看,序列有明顯的趨勢,因此我們將趨勢與一階差分的四個滯後一起包括在增強的迪基-富勒回歸中,以解釋序列相關性,即

執行此操作的 R 代碼是

# using the (log) consumption series
tsConsump <- zoo(read.dta("http://www.stata-press.com/data/r12/lutkepohl2.dta"), frequency=1)
png("logConsPlot.png", width=6,
   height=7, units="in", res=100)
par(mfrow=c(2, 1))
plot(tsConsump$ln_consump)
plot(diff(tsConsump$ln_consump))
dev.off()

# ADF with trend
adfTrend <- ur.df(tsConsump$ln_consump, lags = 4, type = 'trend')
summary(adfTrend)

結果表明,基於估計係數的t檢驗不能拒絕非平穩性的零點。線性趨勢係數和斜率係數的聯合 F 檢驗 () 還表示不能拒絕非平穩性的空值。

3. 使用給定的溫度數據

現在我們可以評估您的數據的屬性。下面給出了通常的水平圖和一階差分。

在此處輸入圖像描述

這些表明您的數據具有截距和趨勢,因此我們使用以下 R 代碼執行 ADF 測試(沒有滯後的一階差分項)

# using the given data
tsTemp <- read.table(textConnection("temp 
64.19749  
65.19011  
64.03281  
64.99111  
65.43837  
65.51817  
65.22061  
65.43191  
65.0221  
65.44038  
64.41756  
64.65764  
64.7486  
65.11544  
64.12437  
64.49148  
64.89215  
64.72688  
64.97553  
64.6361  
64.29038  
65.31076  
64.2114  
65.37864  
65.49637  
65.3289  
65.38394  
65.39384  
65.0984  
65.32695  
65.28  
64.31041  
65.20193  
65.78063  
65.17604  
66.16412  
65.85091  
65.46718  
65.75551  
65.39994  
66.36175  
65.37125  
65.77763  
65.48623  
64.62135  
65.77237  
65.84289  
65.80289  
66.78865  
65.56931  
65.29913  
64.85516  
65.56866  
64.75768  
65.95956  
65.64745  
64.77283  
65.64165  
66.64309  
65.84163  
66.2946  
66.10482  
65.72736  
65.56701  
65.11096  
66.0006  
66.71783  
65.35595  
66.44798  
65.74924  
65.4501  
65.97633  
65.32825  
65.7741  
65.76783  
65.88689  
65.88939  
65.16927  
64.95984  
66.02226  
66.79225  
66.75573  
65.74074  
66.14969  
66.15687  
65.81199  
66.13094  
66.13194  
65.82172  
66.14661  
65.32756  
66.3979  
65.84383  
65.55329  
65.68398  
66.42857  
65.82402  
66.01003  
66.25157  
65.82142  
66.08791  
65.78863  
66.2764  
66.00948  
66.26236  
65.40246  
65.40166  
65.37064  
65.73147  
65.32708  
65.84894  
65.82043  
64.91447  
65.81062  
66.42228  
66.0316  
65.35361  
66.46407  
66.41045  
65.81548  
65.06059  
66.25414  
65.69747  
65.15275  
65.50985  
66.66216  
66.88095  
65.81281  
66.15546  
66.40939  
65.94115  
65.98144  
66.13243  
66.89761  
66.95423  
65.63435  
66.05837  
66.71114"), header=T)
tsTemp <- as.zoo(ts(tsTemp, frequency=1))

png("tempPlot.png", width=6,
   height=7, units="in", res=100)
par(mfrow=c(2, 1))
plot(tsTemp$temp)
plot(diff(tsTemp$temp))
dev.off()

# ADF with trend
adfTrend <- ur.df(tsTemp$temp, type = 'trend')
summary(adfTrend)

t 檢驗和 F 檢驗的結果表明,溫度序列的非平穩性零值可以被拒絕。我希望這能澄清一些事情。

引用自:https://stats.stackexchange.com/questions/44647

comments powered by Disqus