针对截距/漂移和线性趋势建模的时间序列的哪个Dickey-Fuller测试?


17

精简版:

我有一个正在测试平稳性的时间序列气候数据。根据先前的研究,我希望数据的基础模型(或可以说是“生成”)具有截距项和正线性时间趋势。为了测试这些数据的平稳性,我是否应该使用包含截距和时间趋势(即等式#3)的Dickey-Fuller检验?

ÿŤ=α0+α1个Ť+δÿŤ-1个+üŤ

还是我应该使用仅包含截距的DF检验,因为我认为该模型所基于的方程的第一个差异只有截距?

长版:

如上所述,我有一个时间序列的气候数据正在测试平稳性。根据先前的研究,我希望数据基础模型具有拦截项,正线性时间趋势和一些正态分布的误差项。换句话说,我希望基础模型看起来像这样:

ÿŤ=一种0+一种1个Ť+βÿŤ-1个+üŤ

其中üŤ是正态分布。因为我假设基础模型具有截距和线性时间趋势,所以我使用简单的Dickey-Fuller检验的方程式#3测试了单位根,如下所示:

yt=α0+α1t+δyt1+uŤ

该测试返回了一个临界值,该临界值将导致我拒绝原假设,并得出基本模型非平稳的结论。但是,如果我正确运用这一点,因为即使我的问题底层模型假设有一个截距和时间趋势,这并不意味着第一个区别yt的意志为好。相反,实际上,如果我的数学正确的话。

计算基于所述方程的第一差假定的主要模型给出: yt=ytyt1=[a0+a1t+βÿŤ-1个+üŤ]-[一种0+一种1个Ť-1个+βÿŤ-2+üŤ-1个]

yt=[a0a0]+[a1tat(t1)]+β[yt1yt2]+[utut1]

yt=a1+βyt1+utut1

因此,第一差yŤ似乎仅具有一个截距,而不是一个时间的趋势。

我认为我的问题与这一问题类似,但我不确定如何将该答案应用于我的问题。

样本数据:

这是我正在使用的一些示例温度数据。

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 

1
我不知道此链接(tamino.wordpress.com/2010/03/11/not-a-random-walk)中包含的内容是否回答了您的问题,但我想您仍然可能对此感兴趣。
马特·阿尔布雷希特

@MattAlbrecht这是一个非常有趣的链接。我仍然对应该如何对原始时间序列应用Dickey-Fuller检验感到困惑。我试图在最近的编辑中添加更多相关信息。
里卡多·阿尔塔米拉诺

抱歉,我无法为您提供更好的答案-在时间序列分析之外,我还没有得到这个答案。但是,您可能也对我最近问过的这个问题(stats.stackexchange.com/questions/27748)感兴趣,该问题也与气候时间序列有关,并且对时间序列亲中的温度与CO2进行了详细的分析。如果您还可以发布一些数据,可能会对其他人有所帮助?
马特·阿尔布雷希特

@MattAlbrecht我添加了一些示例数据。我有更好的格式可以包含吗?
里卡多·阿尔塔米拉诺

Answers:


20

您需要考虑时间序列的水平上的漂移和(参数/线性)趋势,以便在增强的Dickey-Fuller回归中指定确定性术语,该确定性术语是基于时间序列的第一个差异。困惑完全是由您以完成的方式推导一阶微分方程引起的。

(增强)Dickey-Fuller回归模型

假设该系列的水平包括的漂移和趋势术语 非平稳性在这种情况下,零假设将ħ 0

Yt=β0,l+β1,lt+β2,lYt1+εt
H0:β2,l=1

由该数据生成处理[DGP]隐含的第一差异之一方程,是一个已导出 然而,这是而不是测试中使用的(增强的)Dickey Fuller回归。

ΔYt=β1,l+β2,lΔYt1+Δεt

相反,正确的版本可以通过减去可以了从导致第一等式两边 Δ ÿ Yt1是(增强)迪基-富勒回归和非平稳的零假设的等效版本是测试ħ0

ΔYt=β0,l+β1,lt+(β2,l1)Yt1+εtβ0,d+β1,dt+β2,dYt1+εt
这仅仅是一个t检验使用OLS估计的 β 2 d在上面的消退。请注意,漂移和趋势在到达此规格之前保持不变。H0:β2,d=0β2,d

需要注意的另一点是,如果不确定时间序列的水平中是否存在线性趋势,则可以共同测试线性趋势和单位根,即,其可以使用F-检验用适当的临界值进行测试。这些测试和临界值是由R函数产生的包。H0:[β2,d,β1,l]=[0,0]ur.dfurca

让我们详细考虑一些示例。

例子

1.使用美国投资系列

第一个示例使用在Lutkepohl和Kratzig(2005,第9页)中讨论的美国投资系列。该系列的图及其第一个差异如下所示。

在此处输入图片说明

ΔYt=β0,d+β2,dYt1+j=13γjΔYtj+εt
请注意,我已经看过要点以指定差异中的回归方程式的关键点。

下面是执行此操作的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)

H[β2dβ0]=[00]

2.使用德语(对数)消费系列

第二个示例是使用德国按季度调整的(对数)消费时间序列。该系列的图及其差异如下。

在此处输入图片说明

ΔÿŤ=β0d+β1个dŤ+β2dÿŤ-1个+Ĵ=1个4γĴΔÿŤ-Ĵ+εŤ

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)

H[β2dβ1个]=[00])还表示不能拒绝非平稳性。

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检验的结果均表明,对于温度序列,可以拒绝非平稳性的零点。我希望这可以澄清一些问题。


5
这是我在Stack Exchange网络上收到的最清晰,最有用的答案之一,这确实使我对DF测试的困惑更加明显。谢谢。
里卡多·阿尔塔米拉诺

@RicardoAltamirano不客气。很高兴我能帮助你。
tchakravarty

2
同意这是一个很好的答案。
RAH 2013年

0

Dickey-Fuller检验中的零假设是过程中存在单位根。因此,当您拒绝空值时,您会发现您的过程是平稳的(假设检验通常会引起警告)。

关于数学,表达式

ÿŤ=α0+α1个Ť+δÿŤ-1个+üŤ

并不意味着 ÿŤ有趋势。要说该过程具有趋势,则其定义必须仅包括该过程。在前面的方程式中ÿŤ 一方面, ÿŤ-1个在其他。当你表达ÿŤ-1个 就......而言 ÿŤ-1个 您可以正确地得出以下结论:如果初始过程是固定的,则差异过程没有趋势。


0

先前的答案非常好。

通常,您会根据绘图来决定要实施的测试。在这种情况下,数据似乎具有截距和趋势。

如果在级别中测试单位根,则将使用截距和趋势模型。如果以差异方式运行测试,则将仅使用拦截模型。

我刚刚回答了这个问题,因为我必须建议您对这些数据使用季节性测试。这些测试确实很复杂(按季节进行工作并不容易)。但是,数据的性质(温度)以及由于在图中您可以观察到一些季节性行为。然后,如果您希望估算结果可靠,则应研究HEGY测试并实施它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.