對於使用截距/漂移和線性趨勢建模的時間序列,哪個 Dickey-Fuller 檢驗?
簡潔版本:
我有一個時間序列的氣候數據,我正在測試它的平穩性。根據之前的研究,我預計數據基礎(或“生成”,可以這麼說)數據的模型具有截距項和正的線性時間趨勢。為了測試這些數據的平穩性,我應該使用包含截距和時間趨勢的 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 檢驗的結果表明,溫度序列的非平穩性零值可以被拒絕。我希望這能澄清一些事情。