Kesişme / sürüklenme ve doğrusal eğilim ile modellenmiş bir zaman serisi için hangi Dickey-Fuller testi?


17

Kısa versiyon:

Durağanlık için test ettiğim bir dizi iklim verim var. Önceki araştırmalara dayanarak, verilerin altında yatan modelin (ya da tabiri caizse, sözde) bir kesişim terimi ve pozitif bir doğrusal zaman eğilimine sahip olmasını bekliyorum. Bu verileri durağanlık açısından test etmek için, kesişim ve zaman eğilimi, yani denklem # 3 içeren Dickey-Fuller testini kullanmalı mıyım?

yt=α0+α1t+δyt1+ut

Yoksa, sadece bir kesişim içeren DF testini kullanmalıyım, çünkü modelin altında yatan inancımın ilk farkının sadece bir kesişimi var mı?

Uzun versiyon:

Yukarıda belirtildiği gibi, durağanlık için test ettiğim bir dizi iklim verim var. Önceki araştırmalara dayanarak, verilerin altında yatan modelin bir kesme terimi, pozitif bir doğrusal zaman eğilimi ve bazı normal olarak dağıtılan hata terimi olmasını bekliyorum. Başka bir deyişle, altta yatan modelin şöyle görünmesini bekliyorum:

yt=a0+a1t+βyt1+ut

burada , normal olarak dağıtılır. Altta yatan modelin hem bir kesişim hem de doğrusal bir zaman eğilimine sahip olduğunu varsaydığım için , gösterildiği gibi basit Dickey-Fuller testinin 3 numaralı denklemine sahip bir birim kökü test ettim :ut

yt=α0+α1t+δyt1+ut

Bu test, sıfır hipotezini reddetmeme ve temeldeki modelin durağan olmadığı sonucuna varmamı sağlayacak kritik bir değer döndürüyor. Bununla birlikte, bunu doğru bir şekilde uygulayıp uygulamadığımı soruyorum, çünkü altta yatan modelin bir kesişme ve zaman eğilimi olduğu varsayılsa da, bu ilk farkın olacağı anlamına gelmez . Aslında, tam tersi, eğer benim matematik doğru ise.yt

Birinci temel modelin denklemine göre ilk farkın hesaplanması şunları verir: yt=ytyt1=[a0+a1t+βyt1+ut][a0+a1(t1)+βyt2+ut1]

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

yt=a1+βyt1+utut1

Bu nedenle, ilk fark bir zaman eğilimi değil, sadece kesiştiği görülmektedir.yt

Benim soru benzer olduğunu düşünüyorum bu bir , emin benim soruya cevabını nasıl uygulanacağını değilim hariç.

Örnek veri:

İşte birlikte çalıştığım bazı örnek sıcaklık verileri.

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
Bu bağlantıda ne olduğunu bilmiyorum ( tamino.wordpress.com/2010/03/11/not-a-random-walk ) sorunuzu cevaplıyor, ancak yine de ilginizi çekeceğini düşündüm.
Matt Albrecht

@MattAlbrecht Bu çok ilginç bir bağlantı. Hala orijinal zaman serilerime Dickey-Fuller testini nasıl uygulamam gerektiği konusunda kafam karıştı. Son düzenlememe daha alakalı bilgiler eklemeye çalıştım.
Ricardo Altamirano

Üzgünüm, size daha iyi bir cevap veremem - zaman serisi analizimin üstünde değilim. Ancak, son zamanlarda sorduğum bu soru da ilginizi çekebilir ( stats.stackexchange.com/questions/27748 ), aynı zamanda iklim zaman serilerinde ve bir zaman serisi pro'dan sıcaklık ve CO2 hakkında güzel bir ayrıntılı analiz yapıyor. Gönderebileceğiniz bazı verileriniz varsa başkalarına da yardımcı olabilir mi?
Matt Albrecht

@MattAlbrecht Bazı örnek veriler ekledim. Benim ekleyebileceğim daha iyi bir biçim var mı?
Ricardo Altamirano

Yanıtlar:


20

Artırılmış Dickey-Fuller regresyonunda zaman serisinin ilk farklılıkları olan deterministik terimleri belirlemek için zaman serisinin seviyelerindeki sapma ve (parametrik / doğrusal) eğilimi göz önünde bulundurmanız gerekir . Karışıklık, ilk farklılıklar denklemini yaptığınız şekilde elde etmekten kaynaklanır.

(Artırılmış) Dickey-Fuller regresyon modeli

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

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

Yt1

ΔYt=β0,l+β1,lt+(β2,l1)Yt1+εtβ0,d+β1,dt+β2,dYt1+εt
H0:β2,d=0β2,d

Dikkat edilmesi gereken ek bir nokta, zaman serisinin seviyelerinde doğrusal eğilimin varlığından emin değilseniz, doğrusal eğilim ve birim kökü, yani için birlikte test edebilirsiniz.H0:[β2,d,β1,l]=[0,0] , uygun kritik değerlere sahip bir F testi kullanılarak test edilebilir. Bu testler ve kritik değerler R fonksiyonu tarafından üretilmektedir ur.dfiçinde urcapaket.

Bazı örnekleri ayrıntılı olarak ele alalım.

Örnekler

1. ABD yatırım serilerini kullanma

İlk örnek Lutkepohl ve Kratzig'de tartışılan ABD yatırım serilerini kullanmaktadır (2005, s. 9) . Serinin çizimi ve ilk farkı aşağıda verilmiştir.

resim açıklamasını buraya girin

ΔYt=β0,d+β2,dYt1+j=13γjΔYtj+εt
Farklılıklarda regresyon denklemini belirtmek için seviyelere baktığım kilit noktaya dikkat edin.

Bunu yapmak için R kodu aşağıda verilmiştir:

    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:[β2,d,β0,l]=[0,0] ), dizide birim kök olduğu yönündeki sıfır hipotezini de reddeder.

2. Alman (log) tüketim serilerini kullanma

İkinci örnek, mevsimsellikten arındırılmış Alman Alman zaman çizelgesi (log) tüketiminin kullanılmasıdır. Serinin çizimi ve farklılıkları aşağıda verilmiştir.

resim açıklamasını buraya girin

ΔYt=β0,d+β1,dt+β2,dYt1+j=14γjΔYtj+εt

Bunu yapmak için R kodu

# 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:[β2,d,β1,l]'=[0,0]'

3. Verilen sıcaklık verilerini kullanma

Şimdi verilerinizin özelliklerini değerlendirebiliriz. Düzeyler ve ilk farklılıklardaki olağan grafikler aşağıda verilmiştir.

resim açıklamasını buraya girin

Bunlar, verilerinizde bir kesinti ve eğilim olduğunu gösterir, bu nedenle aşağıdaki R kodunu kullanarak ADF testini (gecikmeli ilk fark terimleri olmadan) gerçekleştiririz

# 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)

Hem t-testi hem de F-testi için sonuçlar, sıcaklık serileri için durağanlık sıfırının reddedilebileceğini gösterir. Umarım bu konuya biraz açıklık getirir.


5
Bu, Stack Exchange ağında aldığım en açık ve en yararlı cevaplardan biridir ve gerçekten DF testleri hakkındaki karışıklığımı düzeltir. Teşekkür ederim.
Ricardo Altamirano

@RicardoAltamirano Hoşgeldiniz. Yardımcı olduğuma sevindim.
tchakravarty

2
Katılıyorum bu çok iyi bir cevap.
RAH

0

Dickey-Fuller testindeki sıfır hipotezi, bir süreçte birim kök bulunmasıdır. Dolayısıyla null değerini reddettiğinizde, işleminizin durağan olduğunu görürsünüz (her zamanki hipotez testlerinin uyarıları ile).

Matematiğinizle ilgili olarak, ifade

yt=α0+α1t+δyt-1+ut

bu anlamda değil ytbir eğilimi vardır. Sürecin bir eğilimi olduğunu söylemek için, tanımı sadece o süreci içermelidir. Önceki denklemdeyt bir tarafta ve yt-1diğer. İfade ettiğiniz zamanyt-1 açısından yt-1 ilk süreç sabitse, farklı süreçte herhangi bir eğilim olmadığı sonucuna varırsınız.


0

Önceki cevaplar mükemmeldi.

Genellikle, hangi testin uygulanacağına karara göre karar verirsiniz. Bu durumda, verilerin bir kesişme ve eğilim olduğu görülmektedir.

Düzeylerde Birim Kök testi yaparsanız, kesişme ve trend modeli kullanırsınız. Testi farklılıklar halinde çalıştırırsanız, sadece bir kesişim modeli kullanırsınız.

Bu soruyu yeni yanıtladım çünkü bu veriler üzerinde mevsimsel testler kullanmanızı tavsiye etmeliyim. Bu testler gerçekten karmaşıktır (mevsimsellik ile çalışmak kolay değildir). Bununla birlikte, verilerin doğası (sıcaklık) ve arsada bazı mevsimsel davranışları gözlemleyebilirsiniz. Ardından, tahminlerinizin sağlam olmasını istiyorsanız HEGY testini araştırmalı ve uygulamalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.