11 Ocak 2016 Pazartesi

R ile Otokorelasyon Testleri

R ile Otokorelasyon Testleri

Veri Seti Okutulmasi

getwd()
setwd("C:/Users/Sigirnita/Desktop/MarEko/RileEko")
library(foreign)
veri=read.dta("tbill2.dta")
attach(veri)

#Degiskenleri Zaman Serisine Donusturme
ip=ts(ip,start(1959,1),frequency=12)
pw=ts(pw,start(1959,1),frequency=12)
r=ts(r,start(1959,1),frequency=12)
m2=ts(m2,start(1959,1),frequency=12)


#Bagimli ve Bagimsiz Degiskenlerin Matrislerini Olusturma
X=as.matrix(cbind(1,pw,r,m2)) #bagimsiz degiskenler
Y=matrix(ip,ncol=1) #bagimli degisken
N=nrow(Y) #N gozlem sayisi
K=ncol(X)#K degisken sayisi

Durbin Watson-D Testi

Sabit parametresi olan modellerde 1.dereceden otokorelasyonun varligini test etmek icin kullanilir.

Durbin Tablo Degeri:
alfa=0.05, k’ = bagimsiz degisken sayisi, n=gozlem sayisi degeleri ile tablodan dU ve dL degerleri bulunur.
dU < dw < 4-dU => Otokorelasyon Yok
dw < dL => Pozitif Otokorelasyon
dw > 4-dL => Negatif Otokorelasyon
4-dU < dw < 4-dL => Kararsiz Bolge
model=lm(ip~pw+r+m2)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency = 12)
gkal=lag(kal,-1)
pay=kal-gkal
paykare=pay^2
paykaretoplam=sum(paykare)
payda=sum(kal^2)
dwd=paykaretoplam/payda
dwd
#dwd=0.048 cikmistir. tablo degerleri n=448 k'=3 ile incelendiginde dwd<dl oldugundan pozitif otokorelasyon vardir.

#Paket yardimiyla
library(lmtest);
dwtest(ip~pw+r+m2,data=list(veri))

Durbin Watson-H Testi

Sabit parametresi olan modellerde 1.dereceden otokorelasyonun varligini test etmek icin, bagimli degiskenin bir donem gecikmeli olarak modelde aciklayici degisken olarak yer aldigi durumlarda kullanilir.

#Gecikmeli tahminler soz konusu oldugunda dynlm paketi kullanilir.
install.packages("dynlm")
library(dynlm)

gip=lag(ip,-1) #gecikmeli bagimli degisken
model=dynlm(ip~pw+r+m2+gip)

#gip degiskeninin varyansi
a=(vcov(model)) #modelin varyans kovaryans matrisi
dim(a) #boyuta bakarak gipin varyansinin nerede olduguna bakilir
gipvaryans=a[5,5] #gip degiskeninin varyansi

#ro'nun hesaplanmasi

#pay 
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency=12)
gkal=lag(kal,-1)
carpim=kal*gkal
pay=sum(carpim)
#payda
payda=sum(gkal^2)
#ro
ro=pay/payda
ro
#durbin-h test istatistigi
N=nrow(Y) # formul icin gerekli olan n
dwh=ro*sqrt(N/(1-N*gipvaryans))
dwh
#dwh = 6.82 > Zt=1.96 oldugu icin "H0:sabit varyans varsayimi gecerlidir" hipotezi red edilir. Pozitif otokorelasyon vardir.
#h < -z olsaydi negatif otokorelasyon oldugunu soyleyecektik.

Durbin Alternatif Testi

Sabit parametresi olan modellerde 1.dereceden otokorelasyonun varligini test etmek icin, Durbin-h istatistiginde paydanin negatif ciktigi durumda kullanilir.

Bagimli degisken:Orjinal modelin kalintilari

Bagimsiz degiskenler:Bagimsiz degiskenler, gecikmeli bagimli degisken ve kalintinin bir donem gecikmelisi

model=dynlm(ip~pw+r+m2+gip)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency = 12)
gkal=lag(kal,-1)
damodel=dynlm(kal~pw+r+m2+gip+gkal)
summary(damodel)
#Test istatistigi: Bir donem gecikmeli kalintinin katsayisi, standart hatasina bolunup, t tablo degeri ile karsilastirilir.
vc=vcov(damodel)
varyans=vc[6,6]
katsayi=damodel$coefficients[6]
sh=sqrt(varyans)
th=(katsayi/sh)
th
#th= 7.17 > ttablo = 1.98 oldugundan HO red edilir. Birinci mertebeden otokorelasyon vardir. 

Wallis Testi

3’er aylik verilerde 4.dereceden otokorelasyon varligini test etmek icin kullanilir.

Durbin Watson testinin, 4.dereceden otokorelasyon varligini test etmek icin duzenlenmis halidir.

wm=lm(ip~pw+r+m2)
kal=residuals(wm)
kal=ts(kal,start(1959,1),frequency = 4) #frekans 4 yapildi.
gkal4=lag(kal,-4)
pay=sum(5:N,(kal-gkal4)^2) # t=5 ten N'e kadar.
payda=sum(kal^2)
w=pay/payda
w
#w=7.26 
#dL=1.61 , dU=1.74 
#dU=1.74 , 4-dU=2.26  
#dL=1.61
#4-dL=2.39
#w=7.26 > 2.29 = 4-dL oldugu icin "H0:Sabit Varyans Varsayimi Gecerlidir" hipotezi reddedilir. Negatif otokorelasyon vardir.

King Testi

Aylik verilerde SAR(12) surecinin sinanmasi icin kullanilir.

km=lm(ip~pw+r+m2)
kal=residuals(km)
kal=ts(kal,start(1959,1),frequency = 12)
gkal12=lag(kal,-12)
pay=sum(13:N,(kal-gkal12)^2)
payda=sum(kal^2)
k=pay/payda
k
#test istatistigi durbin tablosu ile karsilastirilir
#k=7.43 
#dL=1.61 , dU=1.74 
#dU=1.74 , 4-dU=2.26  
#dL=1.61
#4-dL=2.39
#w=7.43 > 2.29 = 4-dL oldugu icin "H0:Sabit Varyans Varsayimi Gecerlidir" hipotezi reddedilir. Negatif otokorelasyon vardir.

Berenblut-Web Testi

Sabit terimi olmayan veya ilk fark alma islemi sonrasinda sabit terimi ortadan kalkan modellerde 1. dereceden otokorelasyonun varligini incelemek icin kullanilir.

Test istatistigi:Farki alinmis modelin kalintisi ile orjinal model kalintilari kullanilarak test istatistigi hesaplanir.

Fark alma yontemi, degiskenlerin degerlerinden bir donem onceki degerlerinin farkinin alinmasi seklinde kullanilir.

#Orjinal Model 
bm=lm(ip~pw+r+m2) 
kal1=residuals(bm)
kal1=ts(kal1,start(1959,1),frequency = 12)

#Degiskenlerin bir donem gecikmeleri
gip=lag(ip,-1)
gpw=lag(pw,-1)
gr=lag(r,-1)
gm2=lag(m2,-1)

#Degiskenlerin degerlerinden bir donem onceki degerlerinin cikarilmasi
dip=ip-gip
dpw=pw-gpw
dr=r-gr
dm2=m2-gm2

#ilk Fark Modeli
farkmodel=dynlm(dip~gpw+dr+dm2-1) 
kal2=residuals(farkmodel)
kal2=ts(kal2,start(1959,1),frequency = 12)

#Test istatistigi:
pay=sum(2:N,kal2^2)
payda=sum(kal1^2)
bw=pay/payda
bw

#bw=7.08  
#dU=1.74 , 4-dU=2.26
#dL=1.61 , 4-dL=2.39
#bw=7.07 > 4-dL = 2.39 oldugu icin "H0:Sabit varyans varsayimi gecerlidir" hipotezi reddedilir. Negatif otokorelasyon vardir.

Breusch-Godfrey Testi (LM Testi)

Yuksek dereceden otokorelasyonun varliginin test edilmesi icin kullanilir.

Orjinal denklemde bagimli degiskenin gecikmeli halinin bagimsiz degiskenler arasinda yer almasi durumunda da kullanilir.

Bagimli degisken: Orjinal model kalintilari

Bagimsiz degiskenler: Orjinal modelin aciklayici degiskenleri ve incelenen otokorelasyonun derecesi sayisinda gecikme katsayisi modelde yer alir.

Ornegin 2.dereceden otokorelasyonun varligi arastiriliyorsa, orjinal modelin bagimsiz degiskenleri ve ut-1, ut-2 katsayilari yeni modelde bagimsiz degiskenler arasinda yer alir.

Test istatistigi:n*R2 Yeni modelin rkaresi hesaplanir, n ile carpilarak test istatistigi elde edilir.

#2.dereceden Otokorelasyonun Varligini inceleyelim
library(dynlm)
bg=lm(ip~pw+r+m2) 
kal=residuals(bg)
kal=ts(kal,start(1959,1),frequency = 12)
gkal=lag(kal,-1)
gkal2=lag(kal,-2)

yenimodel=dynlm(kal~pw+r+m2+gkal+gkal2)
R2=summary(yenimodel)$r.squared
X=as.matrix(cbind(1,pw,r,m2))
Y=matrix(ip,ncol=1)
N=nrow(Y)
K=ncol(X)
NR2=(N-2)*R2
NR2
#NR2 = 425.943 > Kikare = 5.9 oldugu icin "H0:Sabit varyans varsayimi gecerlidir" hipotezi reddedilir.
#Sabit varyans varsayimi gecerli degildir.
#(sd=kacinci derece otokorelasyona bakiliyorsa, alfa=0.05)
#Fark alma isleminden sonra yok olmasini bekledigimiz otokorelasyon yok olmamisti. 2.dereceden otokorelasyon olmasi bu durumu aciklar.

Farebrother Testi

Modelde sabit katsayi olmamasi durumunda 1.dereceden otokorelasyonun varligini test etmek icin kullanilir.

Test istatistigi: Durbin-Watson ile aynidir, tablo degeri icin farebrother tablosuna bakilir.

DW’den farki alt sinir biraz daha daralmistir.

model=dynlm(dip~dpw+dr+dm2-1)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency = 12)
gkal=lag(kal,-1)
pay=kal-gkal
paykare=pay^2
paykaretoplam=sum(paykare)
payda=sum(kal^2)
farebro=paykaretoplam/payda
farebro
#fh = 1.41 
#dL=1.59 , dU=1.74 "H0:Sabit Varyans Varsayimi Gecerlidir" hipotezi reddedilir. Pozitif otokorelasyon vardir.

OTOKORELASYONUN DUZELTILMESI

Ilk Farklar Yontemi

Fark alma yontemi, degiskenlerin degerlerinden bir donem onceki degerlerinin farkinin alinmasi seklinde kullanilir.

Genellestirilmis Farklar Yontemi

Bu yontemde degiskenlerin degerlerinden, bir onceki devre degerleri, ro ile carpilarak cikarilir.Elde edilen denklem genellestirilmis fark denklemidir.

Bu yontemde otokorelasyon katsayisi ro dan yararlanildigi icin ro nun bilinmesi gerekmektedir.

Bilinmedigi durumlarda ro tahmin edilir.

Otokorelasyonun sonuclarindan birisi olarak ekk artiklari ile tahmin edilecek ro sapmalidir, bu sebeple ro farkli yontemlerle tahmin edilmelidir.

Durbin’in iki Asamali Yontemi

Bu yontemde ro genellestirilmis fark denklemi yardimiyla tahmin edilir, denklemin sol tarafindaki -royt-1 ifadesi sag tarafa alinarak, ro bagimsiz degisken katsayisi gibi kabul edilir ve tahmin edilir.

ikinci olarak ro, toplamut*ut-1/toplamutkare ile de hesaplanabilir.

#Artiklar arasinda pozitif otokorelasyon vardi. Bunu gfd yontemi ile kaldirmayi deneyelim.

#Birinci asama ro'nun tahmini
model=lm(ip~pw+r+m2)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency = 12)
gkal=lag(kal,-1)
pay=sum(kal*gkal)
payda=sum(kal^2)
ro=pay/payda

#ikinci asama:Tahmin edilen ro degeri genellestirilmis fark denkleminde yerine koyulur.
gip=lag(ip,-1)
gpw=lag(pw,-1)
gr=lag(r,-1)
gm2=lag(m2,-1)

dip=ip-ro*gip
dpw=pw-ro*gpw
dr=r-ro*gr
dm2=m2-ro*gm2

gfd=lm(dip~dpw+dr+dm2-1)

#ro yerine konularak olusturulan yeni modelin otokorelasyonu incelenecek olursa
kal=residuals(gfd)
kal=ts(kal,start(1959,1),frequency = 12)
gkal=lag(kal,-1)
pay=kal-gkal
paykare=pay^2
paykaretoplam=sum(paykare)
payda=sum(kal^2)
farebro=paykaretoplam/payda
farebro 
#0.96 Test istatistigi ile farebro tablosu karsilastirildiginda pozitif otokorelasyonun hala devam ettigini soyleyebliriz. 1.72

Cochrane Orcutt Yontemi

library(orcutt)
model=lm(ip~pw+r+m2)
cochrane.orcutt(model)
#cochrane yontemi 2485 iterasyondan sonra ro yu 0.9999 seklinde bulmustur. ro=1 kabul edilerek tekrar gfd denklemine yerlestirilip tekrar gfd'nin otokorelasyonu incelendiginde hala pozitif otokorelasyon devam etmektedir.

M.Vahit KESKIN

Hiç yorum yok:

Yorum Gönder