11 Ocak 2016 Pazartesi

R ile Degisen Varyans Testleri

R Studio ile Degisen Varyans Testleri

Veri Setinin Okutulmasi

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

#Degiskenlerin zaman serisi olarak tanitilmasi
ip=ts(ip,start(1959,1),frequency=12)
n=ts(n,start(1959,1),frequency=12)
p=ts(p,start(1959,1),frequency=12)
q=ts(q,start(1959,1),frequency=12)

#Degiskenlerin matris olarak ifade edilmesi
X=as.matrix(cbind(1,n,p,q))#bagimsiz degiskenler
Y=matrix(ip,ncol=1)#bagimli degisken
N=nrow(Y)#N gozlem sayisi
K=ncol(X)#K degisken sayisi

Sira Korelasyonu Testi

Tum degiskenler icin uygulanmasi gerekir.

Sabit varyans varsayimi saglaniyor diyebilmek icin sabit varyans varsayiminin tum degiskenler icin saglanmasi gerekir.

#n degiskeni icin sira korelasyonu testi
model=lm(ip~n)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency = 12)
kal=abs(kal)

#Siralama islemi

#kal ve n degiskenlerine sira numarasi verilir. 
#bu siralama islemi degildir, her gozleme karsilik gelen siranin, gozlemin karsisina yazilarak ranklanmasi islemidir. 

#Diger bir ifade ile, degiskenler kucukten buyuge ya da herhangi bir sekilde siralanmiyor sadece gozlemlerin karsisina eger siralansalardi kacinci sirada olacaklari yaziliyor.
kalrank=rank(kal, ties.method= "first")
nrank=rank(n, ties.method= "first")

#Sira korelasyonu katsayisi rs'nin hesaplanmasi
D=kalrank-nrank
dkare=D^2
sum(dkare)
rs=(1-(6*sum(dkare)/(N*(N^2-1))))
rs
#N>30 oldugu icin test istatistigi z'dir.
zh=(rs*sqrt(N-2))/(sqrt(1-rs^2))
zh
#mutlak zh = 7.26 > zt = 1.9 oldugundan "H0:Sabit Varyans Varsayimi Gecerlidir" hipotezi red edilir. Sabit varyans varsayimi gecerli degildir.

#Bu islem tum degiskenler icin yapilabilir ama zaten bir degisken icin varsayimin saglanmamasi model icin genel olarak degisen varyans problemi oldugu manasina gelir.

White Testi

En sik kullanilan testlerden birisidir. Normalllik varsayi gerektirmez.

Bagimli degisken: Orjinal modelin kalinti karesi.

Bagimsiz degiskenler:Bagimsiz degiskenler,bagimsiz degiskenlerin kareleri,bagimsiz degiskenlerin birbirleri ile carpimlari

Bu yeni model tahmin edilerek yeni R^2 degeri bulunur ve N ile carpilarak white test istatistigi elde edilir.

model=lm(ip~n+p+q)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency=12)
kal2=kal^2
n2=n^2
p2=p^2
q2=q^2
model=lm(kal2~n+p+q+ n2 + p2 + q2 + n*p + n*q + p*q)
summary(model)
rkare=summary(model)$r.squared
rkare
wh=N*rkare
wh

#wh = 423.87 > Kikare = 16.91 oldugundan "H0:Sabit varyans varsayimi gecerlidir" hipotezi reddedilir.Degisen varyans durumu soz konusudur.

Ramsey Reset Testi

Bagimli degisken:Orjinal model kalintilari

Bagimli degiskenin tahmini degeri ysapkanin karesi, kupu ve dorduncu kuvveti

Yardımci regresyon tahmin edilerek katsayilar t testi ile sinanir. Yani her bir katsayi icin H0 sinanir.

model=lm(ip~n+p+q)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency=12)

ysapka=model$fitted.value
ysapka2=ysapka^2
ysapka3=ysapka^3
ysapka4=ysapka^4

model=lm(kal~ysapka2 + ysapka3 + ysapka4)
summary(model)

#ysapka2 katsayisi anlamliligi
katsayi=model$coefficients[2]
sh=sqrt(vcov(model)[2,2])
th=katsayi/sh
th
#th= 22.56  > ttablo = 1.98  oldugundan H0 REDDEDILIR.
#Degisen varyans varsayimi gecerli degildir.

#ysapka3 katsayisi anlamliligi
katsayi=model$coefficients[3]
sh=sqrt(vcov(model)[3,3])
th=katsayi/sh
th
#|th|=21.87 > ttablo = 1.98 oldugundan H0 REDDEDILIR.
#Degisen varyans varsayimi gecerli degildir.

#ysapka4 katsayisi anlamliligi
katsayi=model$coefficients[4]
sh=sqrt(vcov(model)[4,4])
th=katsayi/sh
th
#|th|=21.09 > ttablo = 1.98 oldugundan H0 REDDEDILIR.
#Degisen varyans varsayimi gecerli degildir.
#Degiskenlerin hic birisi icin varsayim saglanmamistir.

Park Testi

Basit ve coklu regresyon icin kullanilabilir. Coklu regresyonda her degisken icin ayri ayri hesaplamak gerekir

Tum degiskenleri ayri ayri hesaplamaya alternatif olarak ysapka degerleri uzerinden tek bir degisken olusturulup ysapka degerinin katsayisi sinanarak hesaplama yapilabilir

Bagimli degisken: ln(kalintilarin karesi)

Bagimsiz degisken: Coklu regresyon durumunda tahmin edilen ysapka degerlerinin ln’i alinarak bagimsiz degisken olarak alinip bu test uygulanabilir.

lnysapka degiskeninin katsayisi t testi ile test edilerek sabit varyans incelenir.

model=lm(ip~n+p+q)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency=12)

#Kalinti karesinin bagimli degisken ysapka nin bagimsiz degisken oldugu model olusturulur
kal2=kal^2
lnkal2=log(kal2)

ysapka=model$fitted.value
lnysapka=log(ysapka)

model2=lm(lnkal2~lnysapka)
summary(model2)
#Tek degisken oldugu icin t ya da F testi icin verilen p degerlerinden herhangi birisine bakilabilir.
#p degeri > 0.05 oldugu icin "H0:Sabit varyans varsayimi gecerlidir" hipotezi REDDEDILEMEZ.
#Park testinin sonucuna gore degisen varyans sorunu yoktur.

Breusch-Pagan Testi

Bagimli degisken:Orjinal model artiklarinin kareleri

Bagimsiz degiskenler:Degisen varyansa sebep oldugu dusunulen degiskenler.

model1=lm(ip~n+p+q)
kal=residuals(model1)
kal=ts(kal,start(1959,1),frequency=12)
kalkare=kal^2

kalkareortalama=mean(kalkare)
var=sum(kalkare)/N

model2=lm(kalkare~n+p+q)
sapkakal=model2$fitted.value
ssr=sum((sapkakal-kalkareortalama)^2)
lambda=ssr/(2*(var^2))
lambda
#Lambda= 6.99 < kikare = 7.81 (sd=3 0.05 ) oldugundan "H0:Sabit Varyans Varsayimi Saglanmaktadir" hipotezi REDDEDILEMEZ.
#Sabit varyans varsayimi saglanmaktadir.
#Park testi gibi Breusch-Pagan testi de degisen varyans sorunu olmadigi sonucunu veriyor.

Glejser Testi

Glejser testinde bagimsiz degiskenlerin cesitli formlarini deneyerek hangi fonksiyonel seklin degisen varyansa sebep oldugu arastirilir.

Bagimli degisken: Mutlak kalintilar

Bagimsiz degisken: degisen varyansa sebep oldugu dusunulen formda bagimsiz degisken

model=lm(ip~n+p+q)
kal=residuals(model)
kal=ts(kal,start(1959,1),frequency=12)
kal=abs(kal)

#Bagimsiz degiskenlerin karekok formlarini inceleyelim
kn=sqrt(n)
kp=sqrt(p)
kq=sqrt(q)

#Degisen varyans coklu sekilde incelirse:
model=lm(kal~kn+kp+kq)
summary(model)
#"H0:Sabit varyans varsayimi gecerlidir" hipotezi reddedilir.Degisen varyans problemi vardir.

#Degiskenler tek tek incelenirse
#kp degiskeni icin:
model=lm(kal~kp)
summary(model)
#H0 reddedilemez varsayim gecerli

#kq degiskeni icin:
model=lm(kal~kq)
summary(model)
#H0 reddedilemez varsayim gecerli

#kn degiskeni icin:
model=lm(kal~kn)
summary(model)
#H0 red varsayim gecerli degil.

#Degiskenler tek tek incelendiginde sadece kn degiskeninin varsayimi saglamadigi goruluyor.


#Degiskenlerin 1/sqrt(x) formu incelenirse
tkn=1/sqrt(n)
tkp=1/sqrt(p)
tkq=1/sqrt(q)

#Coklu regresyonda degisen varyans incelenmesi
model=lm(kal~tkn+tkp+tkq)
summary(model)
#H0 reddedilir sabit varyans varsayimi gecerli degildir.

#Degiskenler tek tek incelenirse
#tkp degiskeni icin:
model=lm(kal~tkp)
summary(model)
#H0 reddedilemez varsayim gecerli

#tkq degiskeni icin:
model=lm(kal~tkq)
summary(model)
#H0 reddedilemez varsayim gecerli

#tkn degiskeni icin
model=lm(kal~tkn)
summary(model)
#H0 red varsayim gecerli degil
#Goruldugu gibi her iki formda da n degiskeni degisen varyansa sebep oluyor.

Goldfeld-Quant Testi

Degisen varyansa sebep olan kalibin bir bagimsiz degisken ile iliskili oldugu varsayimina dayanir.

Tum degiskenler icin ayri ayri hesaplanmasi gerekmektedir.

Bagimsiz degisken kucukten buyuge siralanir ve bagimli degiskende ona gore siralanir.

iki grup olusturulur ve ortadan N/5 kadar gozlem, gruplarda esit sayida gozlem olacak sekilde veri setinden atilir.

#Siralam islemleri
nsira=sort(n) #n degiskeninin gozlemleri kucukten buyuge siralandi.
ysira=sort(ip,by=nsira) #bagimli degisken k-b seklinde siralanan bagimsiz degiskene gore siralandi
#114/5 = 22.8 , 22 gozlem cikarilacak ve 46 gozlemli iki grup olusturulacak. 

#Siralamasi yapilan degiskenler ile yeni bir veri seti olusturulmasi
yeniveriseti=data.frame(nsira,ysira)
dim(yeniveriseti)
attach(yeniveriseti)
yeniveriseti

#Olusturulan yeni veri seti ortadan 22 gozlem atilarak iki gruba bolunur.
#toplam 114 gozlem vardi drop ile grup1 icin 1-46 arasi gozlemleri, g2 icin 69:114 arasi gozlemleri aliriz.
#boylece 46'sar gozlemli iki veri setimiz olmus olur. 

g1=drop(yeniveriseti[1:46,1:2])
dim(g1)
g2=drop(yeniveriseti[69:114,1:2])
dim(g2)

#1.grup icin model 
g1model=lm(ysira~nsira,data=g1)
e1=residuals(g1model)
e1kt=sum(e1^2)
n1=46 
sd1=44 #(n1-k)

#2.grup icin model
g2model=lm(ysira~nsira,data=g2)
e2=residuals(g2model)
e2kt=sum(e2^2)
n2=46
sd2=44#(n2-k)

#Test istatistigi
Fh=(e2kt/sd2)/(e1kt/sd1)
Fh
#F tablo degeri sd degeri 44,44 ile 1.69
#Fh=2.92 > Ftablo=1.69 oldugundan "H0:Sabit varyans varsayimi gecerlidir" hipotezi reddedilir.
#Sabit varyans varsayimi saglanmamaktadir.

Degisen Varyans Probleminin Duzeltilmesi

Tartili En Kucuk Kareler Yontemi

Degisen varyansin kalinin bilinmesi durumunda kullanilabilen tekk yontemi degisen varyansa sebep olan ifadenin karekokunun tum terimlere oranlanmasi ile tekrar olusturulacak modelde degisen varyans probleminin ortadan kalmis olmasi beklenir.

#ip'nin degisen varyansa sebep oldugunu dusunelim bu durumda ip degiskeninin karekokunu diger terimlere oranlamamiz gerekir. 
t1=sqrt(ip)
tip=ip/t1
tn=1/t1
tp=p/t1
tq=q/t1
tekkmodel=lm(tip~tn+tp+tq-1)
#ip degiskeni bagimsiz degiskenlerden birisi olmadigi icin modelde sabit katsayi olmacaktir -1 ile cikarilmistir.

#Olusturulan tekk modelinin Park testi ile sabit varyans durumunu inceleyelim.
kal=residuals(tekkmodel)
kal=ts(kal,start(1959,1),frequency=12)

#Kalinti karesinin ln'ninin bagimli degisken, ysapka'nin ln'inin bagimsiz degisken oldugu model olusturulur.
kal2=kal^2
lnkal2=log(kal2)

ysapka=tekkmodel$fitted.value
lnysapka=log(ysapka)

model2=lm(lnkal2~lnysapka)
summary(model2)

#p degeri = 0.053 > 0.05 oldugu icin "H0:Sabit varyans varsayimi gecerlidir" hipotezi REDDEDILEMEZ.
#Sabit varyans varsayimi saglanmaktadir.

1 yorum:

  1. Harrah's Cherokee Casino Resort, Cherokee - Dr.MCD
    Harrah's Cherokee Casino Resort, Cherokee, 통영 출장마사지 NC · The 창원 출장마사지 Great Smoky Mountains 포항 출장샵 of Western North Carolina · Resort fee: $50 per day for rooms, per 안양 출장샵 night · Hotel Room Amenities: Wi-Fi (Room Service) 진주 출장마사지 Rating: 4 · ‎4 reviews

    YanıtlaSil