R

R:增強型迪基富勒 (ADF) 測試

  • August 22, 2015

我對 R 中的單位根檢驗的 Dickey-Fuller p 值和檢驗統計量有疑問。我嘗試使用函數:

urca::ur.df()
fUnitRoots::adfTest()
tseries::adf.test()

與 gretl 輸出相比,它們都顯示了相同測試設置(滯後、類型)的不同結果。

例如:

set.seed(1)
x <- rnorm(50, 0, 3)
schwert.param <- trunc(12 * (length(na.omit(x)) / 100) ^ (1 / 4))
adfTest(x = na.omit(x), lags = schwert.param, type = "nc", title = NULL, description = NULL)

# Title:
# Augmented Dickey-Fuller Test
# 
# Test Results:
# PARAMETER:
# Lag Order: 10
# STATISTIC:
# Dickey-Fuller: -2.4362
# P VALUE: 0.01749 

對於 gretl 中的相同向量 x 我得到:

>     Test statistic: tau_nc(1) = -4.03652 
>     Asymptotic p-value = 5.57e-005

兩種測試設置都沒有常數和趨勢,滯後 = 10。所以,為什麼我會為相同的數據輸入得到不同的結果。我知道,Dickey-Fuller 測試使用蒙特卡洛來獲得測試統計的 p 值,但是它們是否會有很大差異,或者我在 R 中對那個函數做錯了什麼?


@ChristophHanck @GraemeWalsh:好吧,我可能發現這裡發生了什麼。首先,我將 gretl 語言從波蘭語更改為英語,我發現在 ADF 測試窗口中默認檢查了一個選項 - “從最大滯後順序測試”使用 Akaike 信息標準。如果我取消選中該選項,我將獲得與 R 中相同的結果。現在我想知道如何在 R 中使用該選項。有人知道該怎麼做嗎?

我沒有嘗試用 gretl 複製問題,但至少你提到的 R 包似乎都同意,如果指定了確定性(趨勢與常數,也就是漂移與無)和滯後(固定、信息標準、啟發式)以同樣的方式。p 值的計算方式存在差異,但對於x您生成的數據,它們非常相似。

我為我的學生寫了下面的概述,如果有人覺得它有用,我可以在這里分享。就個人而言,我主要使用tseriesand CADFtest

  • adf.test()tseries.

確定性:僅線性趨勢。

滯後:默認情況下是啟發式的,但可以由用戶選擇。

P 值:來自臨界值表。

  • CADFtest()CADFtest.

確定性:默認趨勢、常數(又名漂移)或不支持。

滯後:默認值為 1,但可以通過信息標准或由用戶選擇。

P 值:基於 Costantini 等人的計算。(2007 年)。另見 Lupi (2009)。使用 R. 統計軟件雜誌進行單位根 CADF 測試,32 (2), 1-19。http://www.jstatsoft.org/v32/i02/

評論:可以將其他回歸量(及其滯後)添加到輔助回歸中。

  • ur.df()urca.

確定性:默認情況下無,也支持常量和趨勢。

滯後:默認為 1,但可以通過信息標准或由用戶選擇。

P 值:無,但summary()報告臨界值表(1%、5%、10%)。

  • adfTest()fUnitRoots.

確定性:默認情況下無,也支持常量和趨勢。

滯後:默認為 1,但可由用戶選擇。

P 值:來自臨界值表。

評論:基於adf.test()fromtseries但由其他確定性擴展。

對於您生成的數據:

set.seed(1)
x <- rnorm(50, 0, 3)

讓我們看一下趨勢測試的不同結果(因為所有函數都支持)和 10 個滯後(如您上面的啟發式所建議的)。檢驗統計量始終完全相同,並且 p 值接近。

tseries::adf.test(x, k = 10)
## 增強的 Dickey-Fuller 測試
##
## 數據:x
## Dickey-Fuller = -1.6757,滯後階數 = 10,p 值 = 0.7044
##備擇假設:平穩

圖書館(“CADFtest”)
CADFtest(x, max.lag.y = 10, type = "趨勢")
## ADF 測試
##
## 數據:x
## ADF(10) = -1.6757,p 值 = 0.743
##備擇假設:真實的delta小於0
## 樣本估計:
## 增量
## -1.751283

urca::ur.df(x, lags = 10, type = "趨勢")
## ################################################ ###############
## # 增強的 Dickey-Fuller 檢驗單位根 / 協整檢驗 #
## ################################################ ###############
##
##檢驗統計量的值為:-1.6757 1.3699 2.0189

fUnitRoots::adfTest(x, lags = 10, type = "ct")
## 標題:
## 增強的 Dickey-Fuller 測試
##
## 檢測結果:
## 範圍:
## 滯後階數:10
## 統計:
## 迪基-富勒:-1.6757
## P 值:
## 0.7044
##
## 描述:
## 2015 年 8 月 22 日星期六 20:19:18 用戶:zeileis

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

comments powered by Disqus