Upload
truongxuyen
View
230
Download
0
Embed Size (px)
Citation preview
Ekonometriye Yeni Baslayanlar icin Kısa bir R
Kılavuzu
YazanMahmood ARAI
Stockholm Universitesi Iktisat Bolumu
Turkcelestiren Emrah ERlowast
Ankara Universitesi SBF Iktisat BolumuIlk Versiyon 11062010
1 Giris
11 R Hakkında
R GPL (GNU Kamu Lisansı) altında yayınlanan ve tum ana platformlarda ca-lıstırılabilen bir programdır R R Anasayfarsquosında su sekilde tanımlanmaktadır
rdquoR istatistiki hesaplama ve grafik icin bir ozgur program orta-mıdır Cok cesitli Unix platformunda Windows ve MacOS altındaharmanlama yapabilmekte ve calısmaktadır Rrsquoı indirmek icin lutfentercih ettiginiz CRAN-mirrorrsquoı secinizrdquo
Kılavuzlar ve farklı dokumanlar icin R Anasayfarsquosını ziyaret ediniz R uzerineyazılmıs cok sayıda kitap mevcuttur R ile iliskili yayınların bir listesi icin R-Project1 web sayfasını ziyaret ediniz Dalgaard [2008] ve Fox [2002] baslangıcduzeyi icin ideal kitaplardır Ileri duzey bir kitap icin ise klasik bir referans olanVenables and Ripley [2002]rsquoyi inceleyiniz Kleiber and Zeileis [2008] ozel olarakekonometri konularını ele almaktadır Ayrıca CRAN Konu Goruntuleme SayısalEkonometri sayfasını inceleyiniz
R ve LATEXrsquoi dokumak icin Sweaversquoe2 bakınız R kullanarak yeniden turetilebilirarastırmalar icin Koenker and Zeileis [2007]rsquoye bakınız Rrsquoa atıf yapmak icin iseR Development Core Team [2008]rsquoe basvurulabilir
lowastBu ceviri benim R ile ilgili olarak gerceklestirdigim ilk calısma oldugundan bazı cevirihataları icerebilir Hataları bana bildirirseniz sevinirim
1 httpwwwR-projectorgdocbibRbib2 httpwwwstatuni-muenchende~leischSweave
1
12 Bu sayfalar hakkında
Bu ekonometriye yeni baslayanlar icin bir el kılavuzudur Bu kılavuz MahmoodArai tarafından hazırlanan kılavuz kullanılarak olusturulmustur3 semboluyorumlar icin kullanılmıstır Dolayısıyla bir satırda ardından gelen tumyazılar yorumdur gt isaretini takip eden yazılar ise R-komutlarıdır Ornegin
gt ornegim lt- ornek
gt ornegim
[1] ornek
Kod yorumlarını da iceren ve calıstırılmayan R-kodları asagıdaki bicimde pa-ragraflandırılmıstır
ornegim lt- ornek ltornegimgt adlı bir nesne yaratır
ornegim
lt gt arasında yer alan karakterler dosyaların fonksiyonların vs isimleridirltverimgtltnesnemgt gibi ltbenimbirseyimgt seklindeki isimler genel bir veriyenesneye vsye atıfta bulunmak icin kullanılmaktadır
13 Nesneler ve dosyalar
R nesneler gibi seylere onem vermektedir Bir veri seti vektor matris regresyonsonucu cizim vs hepsi nesnelerdir Bir dosya icerisine bir veya daha fazla nesnekaydedilebilir R-verisi iceren bir dosya bir nesne degildir fakat bir nesnelerkumesidir
Temel olarak kullanılan tum komutlar fonksiyonlardır birsey(nesne) seklindekibir komut nesne uzerinde islem gerceklestirir Bu ise bircok parantez yazacagınızanlamına gelmektedir Parantezlerin olup olmadıgını ayrıca dogru yerde olupolmadıklarını kontrol edin
2 Ilk birkac sey
21 Kurulum
R bircok farklı platform altında calısabilmektedir ve [CRAN-mirror]rsquodan indi-rilebilir
3 httppeoplesuse~maR_introR_intropdf
2
22 R ile calısma
Bir proje icin bir klasor olusturma ve Rrsquoı bu klasor altında calıstırmak iyi birfikirdir Bu calısmanızı kaydetmenizde ve daha sonraki oturumlarda tekrar bul-manızda kolaylık saglar
Rrsquoın MS-Windowsrsquota belirli bir dizinde baslamasını istiyorsanız ltstart in di-
rectorygt dizinini calısma dizini olarak tanımlamanız gerekmektedir Bu islemR-ikonu uzerinde farenin sag tusuna tıklanıp ltpropertiesgt kısmına gidilerekdegistirilebilir
R icerisinde calısma dizinini goruntuleme
gt getwd()
[1] Gr_giris
Calısma dizinini var olan baska bir dizin olan lteer_ekongt ile degistirmek icin
setwd(eer_ekon)
23 Rrsquoda isimlendirme
Bir nesneyi ltbenim_nesnemgt veya ltbenim-nesnemgt seklinde isimlendirmeyinbunun yerine ltbenimnesnemgt kullanınRrsquoda ltbenimnesnemgt ve ltBenimnesnemgt isimlerinin iki farklı isim oldugunadikkat edin Sayı ile baslayan adlandırmalar (lt1agt gibi) Rrsquoda kabul edilmemek-tedir Bunun yerine lta1gt kullanabilirsiniz
Bir veri setinde degisken isimlerini nesne isimleri olarak kullanmamanız gerekirEger kullanırsanız nesne degiskeni benzer isimdeki baska bir nesne ile gol-gelendirecektir Bu durumda degiskeni cagırdıgınızda nesnenin goruntulenmesiproblemi ortaya cıkacaktır
Bu sorundan kacınmak icin
1 Bir nesneye veri setinizdeki bir degisken ile aynı ismi vermeyin
2 Eger bu kuralı takip edemiyorsanız degiskenlere degiskenleri iceren veriseti ve degisken adıyla basvurun Ornegin ltdf1gt veri setindeki ltucretgtdegiskenine
df1$ucret
komutu ile basvurulabilir
3
ldquoGolgelendirmerdquoproblemi aynı zamanda R fonksiyonları ile de iliskilidir R fonk-siyonları ile benzer isimlere sahip nesne isimleri kullanmayınltconflicts(detail=TRUE)gt komutu yarattıgınız bir nesnenin R paketlerindeyer alan baska bir nesne ile cakısıp cakısmadıgını kontrol eder ve listeler Yal-nızca ltGlobalEnvgt ndashcalısma alanınızndash altında listelenen cakısmalara dikkatetmelisiniz ltGlobalEnvgt altında listelenen tum nesneler R paketlerindeki nes-neleri golgelendirmektedir Nesnelerin R paketlerinde kullanılması icin golgelen-dirmeye neden olan nesnelerin kaldırılması gerekmektedir
Asagıdaki ornek ltTgt nesnesini yaratmakta ndashbundan kacınılmalıdır cunku ltTgtltTRUEgt anlamına gelmektedirndash ve cakısmaları kontrol edip ltTgtrsquoyi kaldırarakcakısma sorununu cozmektedir
T lt- zaman
conflicts(detail=TRUE)
rm(T)
conflicts(detail=TRUE)
ltcCDFIqtTgt gibi tek-harflik kelimelerin de isim olarak kullanımındanda kacınmalısınız Bunların hepsinin Rrsquoda ozel anlamları vardır
Dosya uzantıları
R-kodu iceren dosyalarınızın uzantısında ltRgt kullanmak iyidir ltlab1Rgt sek-lindeki bir dosya R-kodlarını iceren bir metin dosyası olacaktır
ltrdagt uzantısı calısma goruntuleri (yani ltsave()gt ile yaratılan dosyalar) icinidealdir ltlab1rdagt seklindeki bir dosya R-nesnelerini icerecektir
Kaydedilmis calısma goruntusu icin varsayılan isim ltRDatagtrsquodır ltRDatagtrsquoyıdosya uzantısı olarak kullandıgınızda bir dosyayı ltRDatagt olarak adlandırma-dıgınıza dikkat edin
24 Calısma alanı nesnelerini ve goruntulerini kaydetme
ltDataWageMacrordagt dosyasını indirin4
ltlnugt ve ltmacrogt veri setlerini iceren ltDataWageMacrordagt dosyasını
load(DataWageMacrorda)
ls() nesneleri listeler
komutu ile okuyabilirsiniz
Asagıdaki komut ltlnugt nesnesini ltverimrdagt dosyasına kaydeder
save(lnu file=verimrda)
4httppeoplesuse~maR_introdata
4
Rrsquoı tekrar aynı dizinde baslattıgınızda otomatik olarak yuklenecek olan calısmaalanının bir goruntusunu kaydetmek icin
saveimage()
komutunu kullanın
Calısma alanınızın goruntusunu Rrsquodan cıkarken karsınıza gelen ltSave works-
pace image [ync]gt sorusuna ltyesgt cevabını vererek de kaydedebilirsiniz
Bu sekilde calısma alanınızın goruntusu ltRDatagt gizli dosyasına kaydedilecek-tir
Cari calısma alanınızın goruntusunu kaydedebilir ve ltgoruntumrdagt adını ve-rebilirsiniz
saveimage(goruntumrda)
25 Genel secenekler
ltoptions()gt komutu hesaplamaların ve sonucları goruntulemenin farklı ozellik-lerini ele alan bir dizi secenegin duzenlenmesinde kullanılabilir
Simdi birkac faydalı secenege bakalım Satır uzunlugunu 60 karaktere sınırlaya-rak baslıyoruz
gt options(width=60)
options(prompt= Rgt ) promptu Rgt olarak degistirir
options(scipen=3) R version 18den Bu secenek
Ra sayiları ustel format
yerine sabit formatta
gostermesini soyler Ornegin
ltexp(28)gtin sonucu olarak
lt1446257e+12gt yerine
lt1446257064291gt
options() secenekleri goruntuler
26 Yardım alma
helpstart() yardım sayfalarını acar
help(lm) ltlmgt dogrusal model
(linear model)
ile ilgili yardım
lm yukarıdaki ile aynı
5
3 Temel komutlar
ls() tum nesneleri listeler
lsstr() tum nesnelerin detaylarını listeler
str(nesnem) ltnesnemgtin detaylarını listeler
listfiles() dizindeki tum dosyaları listeler
dir() dizindeki tum dosyaları listeler
nesnem basit olarak nesneyi goruntuler
rm(nesnem) ltnesnemgt nesnesini kaldırır
rm(list=ls()) calısma alanındaki tum nesneleri
kaldırır
save(nesnem
file=nesnemrda) ltnesnemgt nesnesini ltnesnemrdagt
dosyasına kaydeder
load(calismamrda) calismamrdayı hafızaya yukler
summary(verim) ltverimgt icin basit istatistikleri
goruntuler
hist(xfreq=TRUE) ltxgt nesnesine ait histogramı
goruntuler
ltfreq=TRUEgt frekansı gosterir ve
ltfreq=FALSEgt olasılıkları gosterir
q() Rdan cıkar
Bir komutun cıktısı dogrudan lt lt- gt kullanılarak bir nesneye atanabilir ki budurumda nesneye bir deger atanmıs olur Asagıda yer alan kodun ilk satırı 12ve 3 degerlerini iceren ltVVgt isimli bir nesne yaratır Ikinci satır ise ltVVgt isimlibir nesne yaratır ve ltVVgt nesnesinin icerigini goruntuler
gt VV lt- c(123)
gt (VV lt- 12)
[1] 1 2
4 Veri duzenleme
41 Duz metin formatında veriyi okuma
Sutunlarda veri
Bu ornekteki veri seti bir metin dosyasındandır lttmptxtgt dosyası ilk satırında
6
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
12 Bu sayfalar hakkında
Bu ekonometriye yeni baslayanlar icin bir el kılavuzudur Bu kılavuz MahmoodArai tarafından hazırlanan kılavuz kullanılarak olusturulmustur3 semboluyorumlar icin kullanılmıstır Dolayısıyla bir satırda ardından gelen tumyazılar yorumdur gt isaretini takip eden yazılar ise R-komutlarıdır Ornegin
gt ornegim lt- ornek
gt ornegim
[1] ornek
Kod yorumlarını da iceren ve calıstırılmayan R-kodları asagıdaki bicimde pa-ragraflandırılmıstır
ornegim lt- ornek ltornegimgt adlı bir nesne yaratır
ornegim
lt gt arasında yer alan karakterler dosyaların fonksiyonların vs isimleridirltverimgtltnesnemgt gibi ltbenimbirseyimgt seklindeki isimler genel bir veriyenesneye vsye atıfta bulunmak icin kullanılmaktadır
13 Nesneler ve dosyalar
R nesneler gibi seylere onem vermektedir Bir veri seti vektor matris regresyonsonucu cizim vs hepsi nesnelerdir Bir dosya icerisine bir veya daha fazla nesnekaydedilebilir R-verisi iceren bir dosya bir nesne degildir fakat bir nesnelerkumesidir
Temel olarak kullanılan tum komutlar fonksiyonlardır birsey(nesne) seklindekibir komut nesne uzerinde islem gerceklestirir Bu ise bircok parantez yazacagınızanlamına gelmektedir Parantezlerin olup olmadıgını ayrıca dogru yerde olupolmadıklarını kontrol edin
2 Ilk birkac sey
21 Kurulum
R bircok farklı platform altında calısabilmektedir ve [CRAN-mirror]rsquodan indi-rilebilir
3 httppeoplesuse~maR_introR_intropdf
2
22 R ile calısma
Bir proje icin bir klasor olusturma ve Rrsquoı bu klasor altında calıstırmak iyi birfikirdir Bu calısmanızı kaydetmenizde ve daha sonraki oturumlarda tekrar bul-manızda kolaylık saglar
Rrsquoın MS-Windowsrsquota belirli bir dizinde baslamasını istiyorsanız ltstart in di-
rectorygt dizinini calısma dizini olarak tanımlamanız gerekmektedir Bu islemR-ikonu uzerinde farenin sag tusuna tıklanıp ltpropertiesgt kısmına gidilerekdegistirilebilir
R icerisinde calısma dizinini goruntuleme
gt getwd()
[1] Gr_giris
Calısma dizinini var olan baska bir dizin olan lteer_ekongt ile degistirmek icin
setwd(eer_ekon)
23 Rrsquoda isimlendirme
Bir nesneyi ltbenim_nesnemgt veya ltbenim-nesnemgt seklinde isimlendirmeyinbunun yerine ltbenimnesnemgt kullanınRrsquoda ltbenimnesnemgt ve ltBenimnesnemgt isimlerinin iki farklı isim oldugunadikkat edin Sayı ile baslayan adlandırmalar (lt1agt gibi) Rrsquoda kabul edilmemek-tedir Bunun yerine lta1gt kullanabilirsiniz
Bir veri setinde degisken isimlerini nesne isimleri olarak kullanmamanız gerekirEger kullanırsanız nesne degiskeni benzer isimdeki baska bir nesne ile gol-gelendirecektir Bu durumda degiskeni cagırdıgınızda nesnenin goruntulenmesiproblemi ortaya cıkacaktır
Bu sorundan kacınmak icin
1 Bir nesneye veri setinizdeki bir degisken ile aynı ismi vermeyin
2 Eger bu kuralı takip edemiyorsanız degiskenlere degiskenleri iceren veriseti ve degisken adıyla basvurun Ornegin ltdf1gt veri setindeki ltucretgtdegiskenine
df1$ucret
komutu ile basvurulabilir
3
ldquoGolgelendirmerdquoproblemi aynı zamanda R fonksiyonları ile de iliskilidir R fonk-siyonları ile benzer isimlere sahip nesne isimleri kullanmayınltconflicts(detail=TRUE)gt komutu yarattıgınız bir nesnenin R paketlerindeyer alan baska bir nesne ile cakısıp cakısmadıgını kontrol eder ve listeler Yal-nızca ltGlobalEnvgt ndashcalısma alanınızndash altında listelenen cakısmalara dikkatetmelisiniz ltGlobalEnvgt altında listelenen tum nesneler R paketlerindeki nes-neleri golgelendirmektedir Nesnelerin R paketlerinde kullanılması icin golgelen-dirmeye neden olan nesnelerin kaldırılması gerekmektedir
Asagıdaki ornek ltTgt nesnesini yaratmakta ndashbundan kacınılmalıdır cunku ltTgtltTRUEgt anlamına gelmektedirndash ve cakısmaları kontrol edip ltTgtrsquoyi kaldırarakcakısma sorununu cozmektedir
T lt- zaman
conflicts(detail=TRUE)
rm(T)
conflicts(detail=TRUE)
ltcCDFIqtTgt gibi tek-harflik kelimelerin de isim olarak kullanımındanda kacınmalısınız Bunların hepsinin Rrsquoda ozel anlamları vardır
Dosya uzantıları
R-kodu iceren dosyalarınızın uzantısında ltRgt kullanmak iyidir ltlab1Rgt sek-lindeki bir dosya R-kodlarını iceren bir metin dosyası olacaktır
ltrdagt uzantısı calısma goruntuleri (yani ltsave()gt ile yaratılan dosyalar) icinidealdir ltlab1rdagt seklindeki bir dosya R-nesnelerini icerecektir
Kaydedilmis calısma goruntusu icin varsayılan isim ltRDatagtrsquodır ltRDatagtrsquoyıdosya uzantısı olarak kullandıgınızda bir dosyayı ltRDatagt olarak adlandırma-dıgınıza dikkat edin
24 Calısma alanı nesnelerini ve goruntulerini kaydetme
ltDataWageMacrordagt dosyasını indirin4
ltlnugt ve ltmacrogt veri setlerini iceren ltDataWageMacrordagt dosyasını
load(DataWageMacrorda)
ls() nesneleri listeler
komutu ile okuyabilirsiniz
Asagıdaki komut ltlnugt nesnesini ltverimrdagt dosyasına kaydeder
save(lnu file=verimrda)
4httppeoplesuse~maR_introdata
4
Rrsquoı tekrar aynı dizinde baslattıgınızda otomatik olarak yuklenecek olan calısmaalanının bir goruntusunu kaydetmek icin
saveimage()
komutunu kullanın
Calısma alanınızın goruntusunu Rrsquodan cıkarken karsınıza gelen ltSave works-
pace image [ync]gt sorusuna ltyesgt cevabını vererek de kaydedebilirsiniz
Bu sekilde calısma alanınızın goruntusu ltRDatagt gizli dosyasına kaydedilecek-tir
Cari calısma alanınızın goruntusunu kaydedebilir ve ltgoruntumrdagt adını ve-rebilirsiniz
saveimage(goruntumrda)
25 Genel secenekler
ltoptions()gt komutu hesaplamaların ve sonucları goruntulemenin farklı ozellik-lerini ele alan bir dizi secenegin duzenlenmesinde kullanılabilir
Simdi birkac faydalı secenege bakalım Satır uzunlugunu 60 karaktere sınırlaya-rak baslıyoruz
gt options(width=60)
options(prompt= Rgt ) promptu Rgt olarak degistirir
options(scipen=3) R version 18den Bu secenek
Ra sayiları ustel format
yerine sabit formatta
gostermesini soyler Ornegin
ltexp(28)gtin sonucu olarak
lt1446257e+12gt yerine
lt1446257064291gt
options() secenekleri goruntuler
26 Yardım alma
helpstart() yardım sayfalarını acar
help(lm) ltlmgt dogrusal model
(linear model)
ile ilgili yardım
lm yukarıdaki ile aynı
5
3 Temel komutlar
ls() tum nesneleri listeler
lsstr() tum nesnelerin detaylarını listeler
str(nesnem) ltnesnemgtin detaylarını listeler
listfiles() dizindeki tum dosyaları listeler
dir() dizindeki tum dosyaları listeler
nesnem basit olarak nesneyi goruntuler
rm(nesnem) ltnesnemgt nesnesini kaldırır
rm(list=ls()) calısma alanındaki tum nesneleri
kaldırır
save(nesnem
file=nesnemrda) ltnesnemgt nesnesini ltnesnemrdagt
dosyasına kaydeder
load(calismamrda) calismamrdayı hafızaya yukler
summary(verim) ltverimgt icin basit istatistikleri
goruntuler
hist(xfreq=TRUE) ltxgt nesnesine ait histogramı
goruntuler
ltfreq=TRUEgt frekansı gosterir ve
ltfreq=FALSEgt olasılıkları gosterir
q() Rdan cıkar
Bir komutun cıktısı dogrudan lt lt- gt kullanılarak bir nesneye atanabilir ki budurumda nesneye bir deger atanmıs olur Asagıda yer alan kodun ilk satırı 12ve 3 degerlerini iceren ltVVgt isimli bir nesne yaratır Ikinci satır ise ltVVgt isimlibir nesne yaratır ve ltVVgt nesnesinin icerigini goruntuler
gt VV lt- c(123)
gt (VV lt- 12)
[1] 1 2
4 Veri duzenleme
41 Duz metin formatında veriyi okuma
Sutunlarda veri
Bu ornekteki veri seti bir metin dosyasındandır lttmptxtgt dosyası ilk satırında
6
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
22 R ile calısma
Bir proje icin bir klasor olusturma ve Rrsquoı bu klasor altında calıstırmak iyi birfikirdir Bu calısmanızı kaydetmenizde ve daha sonraki oturumlarda tekrar bul-manızda kolaylık saglar
Rrsquoın MS-Windowsrsquota belirli bir dizinde baslamasını istiyorsanız ltstart in di-
rectorygt dizinini calısma dizini olarak tanımlamanız gerekmektedir Bu islemR-ikonu uzerinde farenin sag tusuna tıklanıp ltpropertiesgt kısmına gidilerekdegistirilebilir
R icerisinde calısma dizinini goruntuleme
gt getwd()
[1] Gr_giris
Calısma dizinini var olan baska bir dizin olan lteer_ekongt ile degistirmek icin
setwd(eer_ekon)
23 Rrsquoda isimlendirme
Bir nesneyi ltbenim_nesnemgt veya ltbenim-nesnemgt seklinde isimlendirmeyinbunun yerine ltbenimnesnemgt kullanınRrsquoda ltbenimnesnemgt ve ltBenimnesnemgt isimlerinin iki farklı isim oldugunadikkat edin Sayı ile baslayan adlandırmalar (lt1agt gibi) Rrsquoda kabul edilmemek-tedir Bunun yerine lta1gt kullanabilirsiniz
Bir veri setinde degisken isimlerini nesne isimleri olarak kullanmamanız gerekirEger kullanırsanız nesne degiskeni benzer isimdeki baska bir nesne ile gol-gelendirecektir Bu durumda degiskeni cagırdıgınızda nesnenin goruntulenmesiproblemi ortaya cıkacaktır
Bu sorundan kacınmak icin
1 Bir nesneye veri setinizdeki bir degisken ile aynı ismi vermeyin
2 Eger bu kuralı takip edemiyorsanız degiskenlere degiskenleri iceren veriseti ve degisken adıyla basvurun Ornegin ltdf1gt veri setindeki ltucretgtdegiskenine
df1$ucret
komutu ile basvurulabilir
3
ldquoGolgelendirmerdquoproblemi aynı zamanda R fonksiyonları ile de iliskilidir R fonk-siyonları ile benzer isimlere sahip nesne isimleri kullanmayınltconflicts(detail=TRUE)gt komutu yarattıgınız bir nesnenin R paketlerindeyer alan baska bir nesne ile cakısıp cakısmadıgını kontrol eder ve listeler Yal-nızca ltGlobalEnvgt ndashcalısma alanınızndash altında listelenen cakısmalara dikkatetmelisiniz ltGlobalEnvgt altında listelenen tum nesneler R paketlerindeki nes-neleri golgelendirmektedir Nesnelerin R paketlerinde kullanılması icin golgelen-dirmeye neden olan nesnelerin kaldırılması gerekmektedir
Asagıdaki ornek ltTgt nesnesini yaratmakta ndashbundan kacınılmalıdır cunku ltTgtltTRUEgt anlamına gelmektedirndash ve cakısmaları kontrol edip ltTgtrsquoyi kaldırarakcakısma sorununu cozmektedir
T lt- zaman
conflicts(detail=TRUE)
rm(T)
conflicts(detail=TRUE)
ltcCDFIqtTgt gibi tek-harflik kelimelerin de isim olarak kullanımındanda kacınmalısınız Bunların hepsinin Rrsquoda ozel anlamları vardır
Dosya uzantıları
R-kodu iceren dosyalarınızın uzantısında ltRgt kullanmak iyidir ltlab1Rgt sek-lindeki bir dosya R-kodlarını iceren bir metin dosyası olacaktır
ltrdagt uzantısı calısma goruntuleri (yani ltsave()gt ile yaratılan dosyalar) icinidealdir ltlab1rdagt seklindeki bir dosya R-nesnelerini icerecektir
Kaydedilmis calısma goruntusu icin varsayılan isim ltRDatagtrsquodır ltRDatagtrsquoyıdosya uzantısı olarak kullandıgınızda bir dosyayı ltRDatagt olarak adlandırma-dıgınıza dikkat edin
24 Calısma alanı nesnelerini ve goruntulerini kaydetme
ltDataWageMacrordagt dosyasını indirin4
ltlnugt ve ltmacrogt veri setlerini iceren ltDataWageMacrordagt dosyasını
load(DataWageMacrorda)
ls() nesneleri listeler
komutu ile okuyabilirsiniz
Asagıdaki komut ltlnugt nesnesini ltverimrdagt dosyasına kaydeder
save(lnu file=verimrda)
4httppeoplesuse~maR_introdata
4
Rrsquoı tekrar aynı dizinde baslattıgınızda otomatik olarak yuklenecek olan calısmaalanının bir goruntusunu kaydetmek icin
saveimage()
komutunu kullanın
Calısma alanınızın goruntusunu Rrsquodan cıkarken karsınıza gelen ltSave works-
pace image [ync]gt sorusuna ltyesgt cevabını vererek de kaydedebilirsiniz
Bu sekilde calısma alanınızın goruntusu ltRDatagt gizli dosyasına kaydedilecek-tir
Cari calısma alanınızın goruntusunu kaydedebilir ve ltgoruntumrdagt adını ve-rebilirsiniz
saveimage(goruntumrda)
25 Genel secenekler
ltoptions()gt komutu hesaplamaların ve sonucları goruntulemenin farklı ozellik-lerini ele alan bir dizi secenegin duzenlenmesinde kullanılabilir
Simdi birkac faydalı secenege bakalım Satır uzunlugunu 60 karaktere sınırlaya-rak baslıyoruz
gt options(width=60)
options(prompt= Rgt ) promptu Rgt olarak degistirir
options(scipen=3) R version 18den Bu secenek
Ra sayiları ustel format
yerine sabit formatta
gostermesini soyler Ornegin
ltexp(28)gtin sonucu olarak
lt1446257e+12gt yerine
lt1446257064291gt
options() secenekleri goruntuler
26 Yardım alma
helpstart() yardım sayfalarını acar
help(lm) ltlmgt dogrusal model
(linear model)
ile ilgili yardım
lm yukarıdaki ile aynı
5
3 Temel komutlar
ls() tum nesneleri listeler
lsstr() tum nesnelerin detaylarını listeler
str(nesnem) ltnesnemgtin detaylarını listeler
listfiles() dizindeki tum dosyaları listeler
dir() dizindeki tum dosyaları listeler
nesnem basit olarak nesneyi goruntuler
rm(nesnem) ltnesnemgt nesnesini kaldırır
rm(list=ls()) calısma alanındaki tum nesneleri
kaldırır
save(nesnem
file=nesnemrda) ltnesnemgt nesnesini ltnesnemrdagt
dosyasına kaydeder
load(calismamrda) calismamrdayı hafızaya yukler
summary(verim) ltverimgt icin basit istatistikleri
goruntuler
hist(xfreq=TRUE) ltxgt nesnesine ait histogramı
goruntuler
ltfreq=TRUEgt frekansı gosterir ve
ltfreq=FALSEgt olasılıkları gosterir
q() Rdan cıkar
Bir komutun cıktısı dogrudan lt lt- gt kullanılarak bir nesneye atanabilir ki budurumda nesneye bir deger atanmıs olur Asagıda yer alan kodun ilk satırı 12ve 3 degerlerini iceren ltVVgt isimli bir nesne yaratır Ikinci satır ise ltVVgt isimlibir nesne yaratır ve ltVVgt nesnesinin icerigini goruntuler
gt VV lt- c(123)
gt (VV lt- 12)
[1] 1 2
4 Veri duzenleme
41 Duz metin formatında veriyi okuma
Sutunlarda veri
Bu ornekteki veri seti bir metin dosyasındandır lttmptxtgt dosyası ilk satırında
6
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
ldquoGolgelendirmerdquoproblemi aynı zamanda R fonksiyonları ile de iliskilidir R fonk-siyonları ile benzer isimlere sahip nesne isimleri kullanmayınltconflicts(detail=TRUE)gt komutu yarattıgınız bir nesnenin R paketlerindeyer alan baska bir nesne ile cakısıp cakısmadıgını kontrol eder ve listeler Yal-nızca ltGlobalEnvgt ndashcalısma alanınızndash altında listelenen cakısmalara dikkatetmelisiniz ltGlobalEnvgt altında listelenen tum nesneler R paketlerindeki nes-neleri golgelendirmektedir Nesnelerin R paketlerinde kullanılması icin golgelen-dirmeye neden olan nesnelerin kaldırılması gerekmektedir
Asagıdaki ornek ltTgt nesnesini yaratmakta ndashbundan kacınılmalıdır cunku ltTgtltTRUEgt anlamına gelmektedirndash ve cakısmaları kontrol edip ltTgtrsquoyi kaldırarakcakısma sorununu cozmektedir
T lt- zaman
conflicts(detail=TRUE)
rm(T)
conflicts(detail=TRUE)
ltcCDFIqtTgt gibi tek-harflik kelimelerin de isim olarak kullanımındanda kacınmalısınız Bunların hepsinin Rrsquoda ozel anlamları vardır
Dosya uzantıları
R-kodu iceren dosyalarınızın uzantısında ltRgt kullanmak iyidir ltlab1Rgt sek-lindeki bir dosya R-kodlarını iceren bir metin dosyası olacaktır
ltrdagt uzantısı calısma goruntuleri (yani ltsave()gt ile yaratılan dosyalar) icinidealdir ltlab1rdagt seklindeki bir dosya R-nesnelerini icerecektir
Kaydedilmis calısma goruntusu icin varsayılan isim ltRDatagtrsquodır ltRDatagtrsquoyıdosya uzantısı olarak kullandıgınızda bir dosyayı ltRDatagt olarak adlandırma-dıgınıza dikkat edin
24 Calısma alanı nesnelerini ve goruntulerini kaydetme
ltDataWageMacrordagt dosyasını indirin4
ltlnugt ve ltmacrogt veri setlerini iceren ltDataWageMacrordagt dosyasını
load(DataWageMacrorda)
ls() nesneleri listeler
komutu ile okuyabilirsiniz
Asagıdaki komut ltlnugt nesnesini ltverimrdagt dosyasına kaydeder
save(lnu file=verimrda)
4httppeoplesuse~maR_introdata
4
Rrsquoı tekrar aynı dizinde baslattıgınızda otomatik olarak yuklenecek olan calısmaalanının bir goruntusunu kaydetmek icin
saveimage()
komutunu kullanın
Calısma alanınızın goruntusunu Rrsquodan cıkarken karsınıza gelen ltSave works-
pace image [ync]gt sorusuna ltyesgt cevabını vererek de kaydedebilirsiniz
Bu sekilde calısma alanınızın goruntusu ltRDatagt gizli dosyasına kaydedilecek-tir
Cari calısma alanınızın goruntusunu kaydedebilir ve ltgoruntumrdagt adını ve-rebilirsiniz
saveimage(goruntumrda)
25 Genel secenekler
ltoptions()gt komutu hesaplamaların ve sonucları goruntulemenin farklı ozellik-lerini ele alan bir dizi secenegin duzenlenmesinde kullanılabilir
Simdi birkac faydalı secenege bakalım Satır uzunlugunu 60 karaktere sınırlaya-rak baslıyoruz
gt options(width=60)
options(prompt= Rgt ) promptu Rgt olarak degistirir
options(scipen=3) R version 18den Bu secenek
Ra sayiları ustel format
yerine sabit formatta
gostermesini soyler Ornegin
ltexp(28)gtin sonucu olarak
lt1446257e+12gt yerine
lt1446257064291gt
options() secenekleri goruntuler
26 Yardım alma
helpstart() yardım sayfalarını acar
help(lm) ltlmgt dogrusal model
(linear model)
ile ilgili yardım
lm yukarıdaki ile aynı
5
3 Temel komutlar
ls() tum nesneleri listeler
lsstr() tum nesnelerin detaylarını listeler
str(nesnem) ltnesnemgtin detaylarını listeler
listfiles() dizindeki tum dosyaları listeler
dir() dizindeki tum dosyaları listeler
nesnem basit olarak nesneyi goruntuler
rm(nesnem) ltnesnemgt nesnesini kaldırır
rm(list=ls()) calısma alanındaki tum nesneleri
kaldırır
save(nesnem
file=nesnemrda) ltnesnemgt nesnesini ltnesnemrdagt
dosyasına kaydeder
load(calismamrda) calismamrdayı hafızaya yukler
summary(verim) ltverimgt icin basit istatistikleri
goruntuler
hist(xfreq=TRUE) ltxgt nesnesine ait histogramı
goruntuler
ltfreq=TRUEgt frekansı gosterir ve
ltfreq=FALSEgt olasılıkları gosterir
q() Rdan cıkar
Bir komutun cıktısı dogrudan lt lt- gt kullanılarak bir nesneye atanabilir ki budurumda nesneye bir deger atanmıs olur Asagıda yer alan kodun ilk satırı 12ve 3 degerlerini iceren ltVVgt isimli bir nesne yaratır Ikinci satır ise ltVVgt isimlibir nesne yaratır ve ltVVgt nesnesinin icerigini goruntuler
gt VV lt- c(123)
gt (VV lt- 12)
[1] 1 2
4 Veri duzenleme
41 Duz metin formatında veriyi okuma
Sutunlarda veri
Bu ornekteki veri seti bir metin dosyasındandır lttmptxtgt dosyası ilk satırında
6
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Rrsquoı tekrar aynı dizinde baslattıgınızda otomatik olarak yuklenecek olan calısmaalanının bir goruntusunu kaydetmek icin
saveimage()
komutunu kullanın
Calısma alanınızın goruntusunu Rrsquodan cıkarken karsınıza gelen ltSave works-
pace image [ync]gt sorusuna ltyesgt cevabını vererek de kaydedebilirsiniz
Bu sekilde calısma alanınızın goruntusu ltRDatagt gizli dosyasına kaydedilecek-tir
Cari calısma alanınızın goruntusunu kaydedebilir ve ltgoruntumrdagt adını ve-rebilirsiniz
saveimage(goruntumrda)
25 Genel secenekler
ltoptions()gt komutu hesaplamaların ve sonucları goruntulemenin farklı ozellik-lerini ele alan bir dizi secenegin duzenlenmesinde kullanılabilir
Simdi birkac faydalı secenege bakalım Satır uzunlugunu 60 karaktere sınırlaya-rak baslıyoruz
gt options(width=60)
options(prompt= Rgt ) promptu Rgt olarak degistirir
options(scipen=3) R version 18den Bu secenek
Ra sayiları ustel format
yerine sabit formatta
gostermesini soyler Ornegin
ltexp(28)gtin sonucu olarak
lt1446257e+12gt yerine
lt1446257064291gt
options() secenekleri goruntuler
26 Yardım alma
helpstart() yardım sayfalarını acar
help(lm) ltlmgt dogrusal model
(linear model)
ile ilgili yardım
lm yukarıdaki ile aynı
5
3 Temel komutlar
ls() tum nesneleri listeler
lsstr() tum nesnelerin detaylarını listeler
str(nesnem) ltnesnemgtin detaylarını listeler
listfiles() dizindeki tum dosyaları listeler
dir() dizindeki tum dosyaları listeler
nesnem basit olarak nesneyi goruntuler
rm(nesnem) ltnesnemgt nesnesini kaldırır
rm(list=ls()) calısma alanındaki tum nesneleri
kaldırır
save(nesnem
file=nesnemrda) ltnesnemgt nesnesini ltnesnemrdagt
dosyasına kaydeder
load(calismamrda) calismamrdayı hafızaya yukler
summary(verim) ltverimgt icin basit istatistikleri
goruntuler
hist(xfreq=TRUE) ltxgt nesnesine ait histogramı
goruntuler
ltfreq=TRUEgt frekansı gosterir ve
ltfreq=FALSEgt olasılıkları gosterir
q() Rdan cıkar
Bir komutun cıktısı dogrudan lt lt- gt kullanılarak bir nesneye atanabilir ki budurumda nesneye bir deger atanmıs olur Asagıda yer alan kodun ilk satırı 12ve 3 degerlerini iceren ltVVgt isimli bir nesne yaratır Ikinci satır ise ltVVgt isimlibir nesne yaratır ve ltVVgt nesnesinin icerigini goruntuler
gt VV lt- c(123)
gt (VV lt- 12)
[1] 1 2
4 Veri duzenleme
41 Duz metin formatında veriyi okuma
Sutunlarda veri
Bu ornekteki veri seti bir metin dosyasındandır lttmptxtgt dosyası ilk satırında
6
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
3 Temel komutlar
ls() tum nesneleri listeler
lsstr() tum nesnelerin detaylarını listeler
str(nesnem) ltnesnemgtin detaylarını listeler
listfiles() dizindeki tum dosyaları listeler
dir() dizindeki tum dosyaları listeler
nesnem basit olarak nesneyi goruntuler
rm(nesnem) ltnesnemgt nesnesini kaldırır
rm(list=ls()) calısma alanındaki tum nesneleri
kaldırır
save(nesnem
file=nesnemrda) ltnesnemgt nesnesini ltnesnemrdagt
dosyasına kaydeder
load(calismamrda) calismamrdayı hafızaya yukler
summary(verim) ltverimgt icin basit istatistikleri
goruntuler
hist(xfreq=TRUE) ltxgt nesnesine ait histogramı
goruntuler
ltfreq=TRUEgt frekansı gosterir ve
ltfreq=FALSEgt olasılıkları gosterir
q() Rdan cıkar
Bir komutun cıktısı dogrudan lt lt- gt kullanılarak bir nesneye atanabilir ki budurumda nesneye bir deger atanmıs olur Asagıda yer alan kodun ilk satırı 12ve 3 degerlerini iceren ltVVgt isimli bir nesne yaratır Ikinci satır ise ltVVgt isimlibir nesne yaratır ve ltVVgt nesnesinin icerigini goruntuler
gt VV lt- c(123)
gt (VV lt- 12)
[1] 1 2
4 Veri duzenleme
41 Duz metin formatında veriyi okuma
Sutunlarda veri
Bu ornekteki veri seti bir metin dosyasındandır lttmptxtgt dosyası ilk satırında
6
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
degisken isimlerini icermektedir (isimler bosluk ile ayrılmıstır) ve bu degisken-lerin degerleri diger satırlarda yer almaktadır (degerler bosluk ile ayrılmıstır)
Asagıdaki kod lttmptxtgt dosyasının icerigini okur ve bunu ltdatgt isimli birnesneye atar
gt FILE lt- httppeoplesuse~maR_introdatatmptxt
gt dat lt- readtable(
+ file= FILE
+ header = TRUE)
gt dat
wage school public female
1 94 8 1 0
2 75 7 0 0
3 80 11 1 0
4 70 16 0 0
5 75 8 1 0
6 78 11 1 0
7 103 11 0 0
8 53 8 0 0
9 99 8 1 0
ltheader = TRUEgt argumanı ilk satırda degisken isimlerinin oldugunu belirtirltdatgt nesnesi Rrsquoda adlandırıldıgı sekliyle bir veri setidir
Eger lttmptxtgt veri dosyasındaki sutunlar ltgt ile ayrılmıssa kod yazımı
readtable(tmptxt header = TRUE sep=)
seklinde olmalıdır
Eger ondalık karakteri ltgt seklinde ise bunun tanımlanması gereklidir Eger on-dalık karakteri ltgt seklinde ise ltreadcsvgt komutunu kullanabilir ve ardındangelen argumanı ltdec=gt fonksiyonu icerisinde tanımlayabilirsiniz
42 Tablo verisinde mevcut olmayan gozlem (NA) ve sı-nırlayıcılar
ltdata1txtgt dosyası asagıdaki veriyi icermektedir
1 9
6 3 2
Burada ikinci sutunda (degiskende) yer alan ilk gozlem eksiktir ve ltgt olarakkodlanmıstır
7
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Rrsquoa ltgtrsquonın eksik deger oldugunu bildirmek icin ltnastrings=gt argumanınıkullanırız
gt FILE lt- httppeoplesuse~maR_introdatadata1txt
gt readtable(file=FILE nastrings= )
V1 V2 V3
1 1 NA 9
2 6 3 2
Bazen sutunlar bosluklardan farklı ayraclar ile ayrılırlar Ayrac ornegin ltgtolabilir ki bu durumda ltsep=gt argumanını kullanmamız gerekir
Eger sutunlar ltgt ile ayrılmıssa ve bazı sutunlarda asagıdakine benzer sekildebosluklar varsa bu durumda ltnastrings=gt argumanının calısmayacagınadikkat edin NA aslında iki bosluk seklinde kodlanır bir nokta ve iki bosluk veltnastrings=gt seklinde ifade edilmesi gerekir
1 9
6 3 2
Bazen eksik degerler basitce ltboslukgt seklindedir
1 9
6 3 2
Ilk satırda 1 ile 9 arasında iki bosluk olduguna dikkat edin Bu ikinci sutun-daki degerin bosluk oldugu anlamına gelir Bu ise eksik deger anlamındadırBurada onemli olan sey ltnastrings=gt ile birlikte ltsep= gt tanımlanmasıgerektigidir
43 Diger formatlarda veri okuma ve yazma
ltforeigngt kitaplıgını cesitli standart paketlerin veri formatında verileri okumakicin ekleyin Ornekler arasında SAS SPSS STATA vs yer almaktadır
library(foreign)
ltwagedtagt verisini okur ve ltlnugt nesnesine atar
lnu lt- readdta(file=wagedta)
ltreadssd()gt ltreadspss()gt vs SAS ve SPSS formatlarında verileri okumakicin foreign paketinin icerisinde yer alan komutlardır
Yabancı formatta veri yazmak da kolaydır Asagıdaki kodlar ltlnugt nesnesiniltlnunewdtagt adındaki Stata dosyasına yazdırır
8
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
library(foreign)
writedta(lnulnunewdta)
44 Veri seti nesnesinin icerigini inceleme
Burada Isvec Yasam Duzeyi Anketi LNU 1991rsquoden elde edilen veri seti kullanıl-maktadır
gt FILE lt-httppeoplesuse~maR_introdatalnu91txt
gt lnu lt- readtable(file=FILE header = TRUE)
ltlnugt verisini ltattach(lnu)gt ile ilistirmek ltlnugt veri setine ve veri setin-deki degiskenlere isimleriyle erisimi saglar Eger ltlnugt veri setini ilistirmediy-seniz ltlnugt veri setinde yer alan ltfemalegt degiskenine atıfta bulunmak icinltlnu$femalegt komutunu kullanabilirsiniz Veri setine ilistirilmis olarak ihtiya-cınız kalmadıgında ilistirme islemini ltdetach()gt komutuyla geri alabilirsiniz
lnu veri setinin iceriginin tanımlanması
gt str(lnu) Veri yapısının tanımı
dataframe 2249 obs of 6 variables
$ wage int 81 77 63 84 110 151 59 109 159 71
$ school int 15 12 10 15 16 18 11 12 10 11
$ expr int 17 10 18 16 13 15 19 20 21 20
$ public int 0 1 0 1 0 0 1 0 0 0
$ female int 1 1 1 1 0 0 1 0 1 0
$ industry int 63 93 71 34 83 38 82 50 71 37
gt summary(lnu) Veri tanımlamasının ozeti
wage school expr
Min 1700 Min 400 Min 000
1st Qu 6400 1st Qu 900 1st Qu 800
Median 7300 Median 1100 Median 1800
Mean 8025 Mean 1157 Mean 1859
3rd Qu 8800 3rd Qu1300 3rd Qu2700
Max 28900 Max 2400 Max 5000
public female industry
Min 00000 Min 00000 Min 1100
1st Qu00000 1st Qu00000 1st Qu5000
Median 00000 Median 00000 Median 8100
Mean 04535 Mean 04851 Mean 6974
3rd Qu10000 3rd Qu10000 3rd Qu9300
Max 10000 Max 10000 Max 9500
9
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
45 Veri setinde degisken yaratma ve degisken cıkartma
Burada ltlogwagegt degiskenini ltwagegt degiskeninin logaritması olarak tanımlı-yoruz Sonrasında ise degiskeni cıkartıyoruz
gt lnu$logwage lt- log(lnu$wage)
gt lnu$logwage lt- NULL
Orjinal degiskenlerin basit donusturmeleri olan degiskenleri yaratmaya gerekolmadıgına dikkat edin Donusturmeyi dogrudan hesaplamaların ve tahminlerinicerisinde gerceklestirebilirsiniz
46 Veri setinde yer alan degiskenlerin alt kumesini secme
lnu veri setinde (wagefemale)
degiskenlerinin altkumesini okuma
lnufemale lt- subset(lnu select=c(wagefemale))
Veri setinde iki nesneyi (degiskeni)
bir araya getirme
attach(lnu)
lnufemale lt- dataframe(wagefemale)
lnuda female haric tum degiskenleri okuma
lnux lt- subset(lnu select=-female)
wageden publice kadar degiskenleri okuma
lnuxx lt- subset(lnu select=wagepublic)
47 Veri setinde gozlemlerin altkumesini secme
attach(lnu)
Bir degiskende var olan eksik deger
iceren gozlemleri silme
lnu lt- naomit(lnu)
Sadece female degiskenine ait veriyi saklama
femdata lt- subset(lnu female==1)
Sadece female ve public employees
degiskenlerine ait veriyi saklama
fempublicdata lt- subset(lnu female==1 amp public==1)
wage gt 90 olan tum gozlemleri secme
10
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
highwage lt- subset(lnu wage gt 90)
48 Degiskenlerin degerlerini degistirme
Okul degiskeni icerisinde yer alan degerleri degistirerek bireyin universite egitimialıp almadıgını gosteren bir degisken yaratıyoruz
Okul degiskenini kopyalayın
gt lnu$university lt- lnu$school
Universite degerini eger okula gidilen yıl sayısı 13 yıldan az ise 0 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitylt13 0)
Universite degerini eger okula gidilen yıl sayısı 12 yıldan fazla ise 1 degeri iledegistirin
gt lnu$university lt- replace(lnu$university
+ lnu$universitygt12 1)
ltlnu$universitygt degiskeni simdi universite egitimi icin bir kukla degiskenhaline gelmistir Kaydettikten sonra veri setini tekrar ilistirmeyi unutmayınKategori degiskenleri yaratmak icin ltcutgt komutunu kullanabilirsiniz
gt attach(lnu warnconflicts=FALSE)
gt table(university)
university
0 1
1516 733
Kukla degisken yaratmak icin su sekilde ilerliyoruz
gt university lt- school gt 12
gt table(university)
university
FALSE TRUE
1516 733
11
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Aslında genellikle kukla degisken yaratmamıza gerek yoktur ltschool gt 12gt
uzerinden dogrudan islemleri gerceklestirebiliriz
gt table(school gt 12)
FALSE TRUE
1516 733
49 Eksik degerleri degistirmek
Bir vektor yaratıyoruz Bir degeri eksik deger olarak yeniden kodluyoruz veardından eksik degeri orijinal degeri ile degistiriyoruz
a lt- c(1234) vektor yaratır
isna(a) lt- a ==2 a==2 yi NA olarak kodlar
a lt- replace(a isna(a) 2) NAyı 2 ile degistirir
or
a[isna(a)] lt- 2
410 Faktorler
Bazen degiskenlerimizin cesitli aralıklara karsılık gelen uygun duzeydeki kate-gori degiskenleri biciminde kullanılması icin yeniden tanımlanması gerekir 9 yılakadar 10 ila 12 yıl arası ve 12 yıl ustu icin okul kategorileri olusturmak isteye-biliriz Bu ltcut()gt kullanılarak kodlanabilir En dusuk kategoriyi dahil etmekicin ltincludelowest=TRUEgt argumanını kullanırız
gt SchoolLevel lt- cut(school
+ c(912 max(school) includelowest=TRUE))
gt table(SchoolLevel)
SchoolLevel
(19] (912] (1224]
608 908 733
Her duzey icin etiket ayarlanabilir Bir onceki bolumde yaratılan universite de-giskenini ele alalım
gt SchoolLevel lt- factor(SchoolLevel
+ labels=c(basicgymnasiumuniversity))
gt table(SchoolLevel)
12
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
SchoolLevel
basic gymnasium university
608 908 733
Yukarıdaki gibi tanımlanan bir faktor ornegin regresyon modelinde kullanılabi-lir Referans kategori en dusuk degere sahip duzeydir ltBasicgtrsquoe karsılık gelen endusuk deger 1 rsquodir ve ltBasicgt sutunu karsılastırma matrisinde yer almamakta-dır Taban kategoriyi degistirmek bu sutun yerine baska bir sutunu dıslayacaktırBu asagıda yer alan ornekte gosterilmistir
gt contrasts(SchoolLevel)
gymnasium university
basic 0 0
gymnasium 1 0
university 0 1
gt contrasts(SchoolLevel) lt-
+ contrtreatment(levels(SchoolLevel)base=3)
gt contrasts(SchoolLevel)
basic gymnasium
basic 1 0
gymnasium 0 1
university 0 0
Asagıdaki komut ltschoolgt degiskenini sayısal bir degisken olarak tanımlar
gt lnu$school lt- asnumeric(lnu$school)
411 Veriyi grup bazında toplulastırmak
V1 V2 ve V3 gibi 3 degiskenden olusan basit bir veri seti yaratalım V1 grupbirimi ve V2 ile V3 iki sayısal degisken olsunlar
gt (df1 lt- dataframe(V1=13 V2=19 V3=1119))
V1 V2 V3
1 1 1 11
2 2 2 12
3 3 3 13
4 1 4 14
5 2 5 15
6 3 6 16
13
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
7 1 7 17
8 2 8 18
9 3 9 19
ltaggregategt komutunu kullanarak ltsumgt ltmeangt vb grup ozelliklerini icerenyeni bir dataframe olusturalım Burada toplam (sum) fonksiyonu ltV1gt grupbirimi ile ltdf1[23]gt uzerine yani ltdf1gtrsquoin ikinci ve ucuncu sutunlarına uy-gulanır
gt (aggregatesumdf1 lt-
+ aggregate(df1[23]list(df1$V1)sum))
Group1 V2 V3
1 1 12 42
2 2 15 45
3 3 18 48
gt (aggregatemeandf1 lt-
+ aggregate(df1[23]list(df1$V1)mean))
Group1 V2 V3
1 1 4 14
2 2 5 15
3 3 6 16
ltGroup1gt degiskeni grupları tanımlayan bir faktordur
Asagıda toplulastırma (aggregate) fonksiyonuna iliskin bir ornek yer almaktadırBirim tanımlayıcı ltdat$idgtrsquoyi iceren ltdatgt seklinde bir veri setimiz oldugunuvarsayalım Zaman icerisinde tekrar tekrar gozlemlenen birimler dat$Time de-giskeni ile gosterilsin
gt (dat lt- dataframe(id=rep(1112each=2)
+ Time=12 x=23 y =56))
id Time x y
1 11 1 2 5
2 11 2 3 6
3 12 1 2 5
4 12 2 3 6
Bu veri setinde yer alan tum degiskenler icin grup ortalamalarını hesaplar veltTimegt degiskeni ile otomatik olarak olusturulmus olan grup tanımlayıcı degis-ken ltGroup1gtrsquoi dıslar
gt (Bdat lt- subset(aggregate(datlist(dat$id)FUN=mean)
+ select=-c(TimeGroup1)))
14
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
id x y
1 11 25 55
2 12 25 55
ltidgt uzunlugunda ve ltidgt icerisinde yer alan her bir gozlem icin tekrarlayangrup ortalamalarını iceren bir veri seti yaratmak icin ltBdatgt ve ltdat$idgtrsquoyibirlestirin
gt (dat2 lt- subset(merge(dataframe(id=dat$id)Bdat)
+ select=-id))
x y
1 25 55
2 25 55
3 25 55
4 25 55
Simdi ltidgt ve ltTimegt tanımlayıcılarını ve diger tum degiskenlerin ortalamadegerlerden sapmalarını iceren bir veri seti yaratabiliriz
gt (withindata lt- cbind(id=dat$id Time=dat$Time
+ subset(datselect=-c(Timeid)) - dat2))
id Time x y
1 11 1 -05 -05
2 11 2 05 05
3 12 1 -05 -05
4 12 2 05 05
412 Farklı veri setlerini kullanma
Genellikle farklı veri setlerinden verileri kullanmamız gerekir Rrsquoda bu verileridiger bircok istatistik paket programında oldugu uzere tum verinin aynı anda vebir tablo seklinde var oldugu bicimde aynı veri seti icerisine koymamıza gerekyoktur
Ornegin degiskenler aynı uzunluga sahip oldugu surece (aynı gozlem sayısı) veaynı sırada (tum degiskenlerdeki irsquoinci gozlem aynı birime karsılık gelir) oldugusurece bir veri setinden bir degisken diger bir veri setinden baska bir degis-ken kullanarak bir regresyon kurmak mumkundur Asagıdaki iki veri setini elealalım
gt data1 lt- dataframe(wage =
+ c(817763841101515910915971)
15
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
+ female = c(1111001010)
+ id = c(1356789101112))
gt data2 lt- dataframe(experience =
+ c(17101816131519202120)
+ id = c(1356789101112))
Simdi veri setlerini birlestirmeden her ikisinden de degiskenleri kullanabilirizltdata1$wagegtrsquoin ltdata1$femalegt ve ltdata2$experiencegt uzerine regresyo-nunu gerceklestirelim
gt lm(log(data1$wage) ~ data1$female + data2$experience)
Call
lm(formula = log(data1$wage) ~ data1$female + data2$experience)
Coefficients
(Intercept) data1$female data2$experience
4641120 -0257909 0001578
Farklı veri setlerinde yer alan degiskenleri tek bir veri setine yerlestirerek anali-zimizi bu yeni veri seti uzerinden de gerceklestirebiliriz
gt (data3 lt- dataframe(data1$wage
+ data1$femaledata2$experience))
data1wage data1female data2experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
Veri setlerini birlestirebiliriz Eger her iki veri setinde de aynı degisken yer alı-yorsa veri bu degisken ile tutarlı bicimde birlestirilir
gt (data4 lt- merge(data1data2))
id wage female experience
1 1 81 1 17
2 3 77 1 10
16
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
3 5 63 1 18
4 6 84 1 16
5 7 110 0 13
6 8 151 0 15
7 9 59 1 19
8 10 109 0 20
9 11 159 1 21
10 12 71 0 20
Diger paket programlarda oldugu uzere gozlemlerin ltidgtrsquode tanımlandıgı sek-liyle aynı sırada olmasına gerek olmadıgına dikkat ediniz
Eger iki veri setini ortak bir degisken kullanarak eslestirmek istiyorsak ve budegisken veri setlerinde farklı isimlere sahipse isimleri aynı olacak bicimde de-gistirebilir veya veri oldugu sekliyle kullanıp verileri eslestirirken kullanılacakdegiskenleri tanımlayabiliriz Eger ltdata2gt ve ltdata1gt veri setlerinde eslestiri-lecek degisken ltid2gt ve ltidgt ise asagıdaki yazım kullanılabilir
merge(data1data2 byx=id byy=id2)
ltbyx=id byy=id2gt argumanları data1rsquoda eslestirme degiskeninin id
ve data2rsquode id2 oldugunu ifade eder
Aynı zamanda veri setlerini ltdataframegt veya ltcbindgt yardımıyla varolan sı-rasında birlestirebilirsiniz Bu sekilde veri veri setindeki sırasında gozlem gozlemeslestirilir Bu asagıdaki ornekte gosterilmistir
gt data1noid lt- dataframe(wage = c(817763)
+ female = c(101))
gt data2noid lt- dataframe(experience = c(171018))
gt cbind(data1noiddata2noid)
wage female experience
1 81 1 17
2 77 0 10
3 63 1 18
Eger bir veri setinin sonuna gozlem eklemek isterseniz ltrbindgt kullanabilirsinizAsagıdaki ornek ltdata4gtrsquoteki 23 ve 4 sutunları iki parcaya ayırarak ltrbindgt
ile tekrar bir araya getirmektedir
gt dataonetofive lt- data4[1524]
gt datasixtoten lt- data4[61024]
gt rbind(dataonetofivedatasixtoten)
17
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
wage female experience
1 81 1 17
2 77 1 10
3 63 1 18
4 84 1 16
5 110 0 13
6 151 0 15
7 59 1 19
8 109 0 20
9 159 1 21
10 71 0 20
5 Temel istatistikler
Bir veri setindeki tum degiskenler icin ozet istatistikler
summary(mydata)
Bir degiskene ait Ortalama (Mean) Ortanca (Median) Standart Sapma (Stan-dard deviation) Maksimum ve Minimum
mean (myvariable)
median (myvariable)
sd (myvariable)
max (myvariable)
min (myvariable)
10 20 90 yuzdelikleri hesapla
quantile(myvariable 1910)
R ltsumgt ltmeangt vsrsquoyi ltNAgt iceren bir nesne uzerine hesapladıgında ltNAgt so-nucunu verir Bu fonksiyonları verinin var oldugu yerdeki gozlemlere uygulamakicin ltnarm=TRUEgt argumanını kullanmalısınız Diger bir alternatif ise ltNAgt ice-ren tum veri satırlarını ltnaomitgt ile dıslamaktır
gt a lt- c(1NA 34)
gt sum(a)
[1] NA
gt sum(anarm=TRUE)
[1] 8
18
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
gt table(a exclude=c())
a
1 3 4 ltNAgt
1 1 1 1
Ayrıca NArsquoları dıslayan ve toplamı hesaplayan
ltsum(naomit(a))gt
veya ltagt icerisinde NA olmayan (isna) elemanların toplamını hesaplayan
ltsum(a[isna(a)])gt
kullanabilirsiniz
51 Cizelgeleme
Ilk olarak veri setini okutalım
Capraz Cizelgeleme
gt attach(lnuwarnconflicts=FALSE)
gt table(femalepublic) frekansları verir
public
female 0 1
0 815 343
1 414 677
gt (ftablerow lt- cbind(table(femalepublic)
+ total=table(female)))
0 1 total
0 815 343 1158
1 414 677 1091
gt (ftablecol lt- rbind(table(femalepublic)
+ total=table(public)))
0 1
0 815 343
1 414 677
total 1229 1020
19
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Bunu deneyin
satırlara gore goreli frekans female
ftablerowc(table(female))
sutunlara gore goreli frekans public
ftablecolrep(table(public)each=3)
rep(table(public)each=3)
table(public)deki her degeri 3 kez tekrar eder
Kategoriler ile cesitli istatistikler olusturma Asagıdaki komut erkekler (males)ve kadınlar (female) icin ortalama ucretleri (wage) verir
gt tapply(wage female mean)
0 1
8875302 7123190
ltlengthgt ltmingt ltmaxgt vs kullanımı erkekler ve kadınlar icin farklı gozlemsayısı minimum maximum vs olusturur
gt tapply(wage female length)
0 1
1158 1091
Asagıda yer alan ornek ozel (private) sektor ve kamu (public) sektorundeki er-kekler ve kadınlar icin ortalama ucretleri verir
gt tapply(wage list(femalepublic) mean)
0 1
0 8952883 8690962
1 7154589 7103988
Asagıdaki komut ise es uzunlukta bir vektor yaratarak grup bazında ortalamalarıhesaplar Es uzunluk her grubun tum elemanları icin grup istatistiklerinin eldeedildigi anlamına gelmektedir Erkekler ve kadınlar icin ortalama ucret
gt attach(lnu warnconflicts=FALSE)
gt lnu$wagebysexlt- ave(wagefemaleFUN=mean)
ltmeangt fonksiyonu ltmingt ltmaxgt ltlengthgt vs ile degistirilebilir
20
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
6 Matrisler
Rrsquoda matrisi su sekilde tanımlarız (Rrsquoda bakınız matrix)
3 satır ve 4 sutundan olusan ve sutunlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt matrix(11234)
[1] [2] [3] [4]
[1] 1 4 7 10
[2] 2 5 8 11
[3] 3 6 9 12
3 satır ve 4 sutundan olusan ve satırlarında 1rsquoden 12rsquoye kadar elemanları icerenbir matris
gt (A lt- matrix(11234byrow=TRUE))
[1] [2] [3] [4]
[1] 1 2 3 4
[2] 5 6 7 8
[3] 9 10 11 12
gt dim(A) Matrisin boyutu
[1] 3 4
gt nrow(A) Satır sayısı dim(A)[1] ile aynı
[1] 3
gt ncol(A) Sutun sayısı dim(A)[2] ile aynı
[1] 4
61 Endeksleme
Bir matrisin elemanları matris adından sonra koseli parantez kullanılarak vearalarına virgul olacak sekilde satır ve sutunlara basvurularak listelenebilirBenzer bir endeklemeyi diger nesnelerin elemanlarını listelemek icin de kulla-nabilirsiniz
A[3] 3 satırı listeleme
A[3] 3 sutunu listeleme
A[33] 3 satır ve ucuncu sutun
A[-1] 1 satır haric matrisin tamamı
A[-2] 2 sutun haric matrisin tamamı
21
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Matris elemanları uzerinde bazı kosulların degerlendirilmesi
gt Agt3 3ten buyuk elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE FALSE TRUE
[2] TRUE TRUE TRUE TRUE
[3] TRUE TRUE TRUE TRUE
gt A==3 3e esit elemanlar
[1] [2] [3] [4]
[1] FALSE FALSE TRUE FALSE
[2] FALSE FALSE FALSE FALSE
[3] FALSE FALSE FALSE FALSE
Bazı kosulları yerine getiren elemanları listeleme
gt A[Agt6] 6dan buyuk tum elemanlar
[1] 9 10 7 11 8 12
62 Skalar Matris
Skalar matris matrisin ozel bir bicimidr Kosegen-dısı elemanları sıfır kosegenuzerindeki elemanları ise aynıdır ve esit sayıda satır ile sutuna sahip olan karebir matristir Asagıdaki ornek matrislerin kosegenleri ile iliskili bazı matris ozel-liklerini gostermektedir Ayrıca uppertri ve lowertrirsquoye de bakınız
gt diag(233)
[1] [2] [3]
[1] 2 0 0
[2] 0 2 0
[3] 0 0 2
gt diag(diag(233))
[1] 2 2 2
63 Matris islemleri
Matrisin devrigi
Bir matrisin satırlarını sutun sutunlarını da satır yapmak matrisin devriginiverir
22
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
gt t(matrix(1623))
[1] [2]
[1] 1 2
[2] 3 4
[3] 5 6
(1623) matrisi ve (1632 byrow=T) matrisini deneyin
Toplama ve cıkarma
Toplama ve cıkarma islmeri boyutları aynı olan matrislere veya bir skalar ve birmatrise uygulanabilir
Bunu deneyin
A lt- matrix(11234)
B lt- matrix(-1-1234)
C1 lt- A+B
D1 lt- A-B
Skalar carpımı
Bunu deneyin
A lt- matrix(11234) TwoTimesA = 2A
c(222)A
c(123)A
c(110)A
Matris carpımı
Matris carpımı icin R lt lowast gt kullanır ve bu sadece matrisler uyumlu isecalısır
E lt- matrix(1933)
crossproductofE lt- t(E)E
veya capraz carpımları elde etmenin daha etkin diger bir yolu
crossproductofE lt- crossprod(E)
Matris tersi
Kare matris Arsquonın tersi Aminus1 seklinde gosterilir ve A ile carpıldıgında birimmatris (ana kosegen uzerindeki tum elemanları 1 kosegen-dısı elemanları 0 olanmatris) olusturan matris olarak tanımlanır
AAminus1 = Aminus1A = I
23
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
FF lt- matrix((19)33)
detFFlt- det(FF) determinantı kontrol eder
B lt- matrix((19)^233) tersi alınabilir bir
matris olusturur
Binverse lt- solve(B)
Identitymatrix lt- BBinverse
24
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
7 En kucuk kareler
EKK kullanarak dogrusal bir regresyon modeli olusturmak icin kullanılan fonk-siyon ltlm()gtrsquodir Asagıdaki ornekte bagımlı degisken ltlog(wage)gt ve acıklayıcıdegiskenler ltschoolgt ve ltfemalegtrsquodir Sabit terim varsayılan olarak dahil edil-mektedir ltlnugt veri setini tanımlamamıza gerek yoktur cunku bu degiskenleriiceren veri seti zaten ilistirilmis durumdadır Regresyon sonucu ltregmodelgt
isimli nesneye atanmaktadır Bu nesne ileride ltlmgt kullanımını gosteren birkacornekten sonra gosterilecek olan bircok ilginc regresyon sonucunu icermektedir
Veri setini oku first
gt regmodel lt- lm (log(wage) ~ school + female)
gt summary (regmodel)
Call
lm(formula = log(wage) ~ school + female)
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 4087730 0022203 18410 lt2e-16
school 0029667 0001783 1664 lt2e-16
female -0191109 0011066 -1727 lt2e-16
---
Signif codes 0 0001 001 005 01 1
Residual standard error 02621 on 2246 degrees of freedom
Multiple R-squared 02101 Adjusted R-squared 02094
F-statistic 2988 on 2 and 2246 DF p-value lt 22e-16
Bazen regresyonu veri setinin bir alt kumsei uzerinde kurmak isteyebiliriz
lm (log(wage) ~ school + female subset=wagegt100)
Bazen de modelde degiskenlerin donusturulmus degerlerini kullanmak isteyebi-liriz Donusturme ltI()gt fonksiyonu icerisinde verilmelidir I() birim fonksiyonuanlamına gelmektedir ltexpr^2gt ltexprgtrsquonin karesidir
lm (log(wage) ~ school + female + expr + I(expr^2))
25
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Etkilesimli degiskenler ltfemalegt ltschoolgt
lm (log(wage) ~ femaleschool data=lnu)
benzer bicimde
lm (log(wage) ~ female + school + femaleschool data= lnu)
Sabit terimsiz bir model
regnointercept lt- lm (log(wage) ~ female - 1)
Sadece sabit terim iceren bir model
regonlyintercept lt- lm (log(wage) ~ 1 )
Asagıdaki ornek ltfemalegt ve ltpublicgt degiskenleri ile tanımlandıgı sekliyle ozelve kamu sektorundeki erkekler ve kadınlar icin dogrusal model (ltlmgt) tahmineder ltlnugt verisi 4 farklı hucreye ayrılmıstır (00) ozel sektordeki erkekler(10) ozel sektordeki kadınlar (01) kamu sektorundeki erkekler ve (11) kamusektorundeki kadınlar Elde edilen ltbyreggt nesnesi bir listedir ve her elemanınozetini (ltsummary()gt) goruntulemek icin ltlapplygt (liste uygula) kullanılır
byreg lt- by(lnu list(femalepublic)
function(x) lm(log(wage) ~ school data=x))
ayrı regresyonların ozeti
lapply(byreg summary)
listedeki ikinci eleman icin ozet
yani ozel sektordeki kadınlar icin
summary(byreg[[2]])
Asagıdaki komut erkek ve kadın isciler icin degiskenlerin ortalamalarını listeler(ilk satır) iki veri setinden byfemalelnu adında bir liste yaratır (ikinci satı)ve erkek ve kadın isciler icin bir regresyon tahmini gerceklestirir (ucuncu vfedorduncu satır)
by(lnu list(female) mean)
byfemalelnu lt- by(lnu list(female)
function(x) x) str(byfemalelnu)
summary(lm(log(wage) ~ school data=byfemalelnu[[1]]))
summary(lm(log(wage) ~ school data=byfemalelnu[[2]]))
26
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
71 Model formulu ve sonuclarını goruntuleme
Model formulu
(equation1 lt- formula(regmodel))
log(wage) ~ school + female
Tahmin edilen katsayılar
gt coefficients(regmodel) ltcoefficientsgt (katsayılar)
(Intercept) school female
408772967 002966711 -019110920
Standart hatalar
gt coef(summary(regmodel))[2]
(Intercept) school female
0022203334 0001782725 0011066176
ltcoef(summary(regmodel))[12]gt komutultEstimategt (tahminleri) ve ltStdErrorgt (standart hataları) goruntuler
t-degerleri
gt coef(summary(regmodel))[3]
(Intercept) school female
18410432 1664144 -1726967
Ayrıca ltcoef(summary(regmodel))gt komutunu da deneyin Benzer bicimdelm-nesnesinin diger elemanlarını
Varyans-Kovaryans matrisi ltvcov(regmodel)gt
Artıklar serbestlik derecesiltdfresidual(regmodel)gt
Hata kareler toplamıltdeviance(regmodel)gt
ve diger bilesenlerltresiduals(regmodel)gt
ltfittedvalues(regmodel)gt
ltsummary(regmodel)$rsquaredgt
ltsummary(regmodel)$adjrsquaredgt
27
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
ltsummary(regmodel)$sigmagt
ltsummary(regmodel)$fstatisticgt
komutları ile goruntuleyebilirsiniz
72 White degisen varyans duzeltilmis standart hatalar
ltcargt ltsandwichgt ve ltDesigngt paketleri robust standart hataları hesaplamakicin onceden tanımlanmıs fonksiyonları icerir Iki farklı agırlıklandırma secenegimevcuttur
White duzeltmesi
gt library(car)
gt f1 lt- formula(log(wage) ~ female +school)
gt sqrt(diag(hccm(lm(f1)type=hc0)))
(Intercept) female school
0022356311 0010920889 0001929391
ltsandwichgt kitaplıgını kullanarak
gt library(sandwich)
gt library(lmtest)
gt coeftest(lm(f1) vcov=(vcovHC(lm(f1) HC0)))
t test of coefficients
Estimate Std Error t value Pr(gt|t|)
(Intercept) 40877297 00223563 182845 lt 22e-16
female -01911092 00109209 -17499 lt 22e-16
school 00296671 00019294 15376 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
ltcargt kitaplıgındaki lthc0gt ve ltsandwichgt kitaplıgındaki ltHC0gt orjinal Whiteformulunu kullanmaktadır lthc1gt ltHC1gt varyansları N
Nminusk ile carpmaktadırltDesigngt kitaplıgını kullanarak
gt library(Design war warnconflicts = FALSE)
Design library by Frank E Harrell Jr
Type library(help=Design) DesignOverview or DesignOverview)to see overall documentation
28
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
gt f1 lt- formula(log(wage) ~ female +school)
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE))
73 Grup-ici sabit olmayan hata varyansı
Bu ltDesigngt kitaplıgını kullanmaktadır ve verinin ltindustrygt degiskeni tara-fından da isaret edildigi gibi sektorler arası kumelenme gosteridigi durumlaraacıklama getirmektedir
gt robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
Linear Regression Model
ols(formula = f1 x = TRUE y = TRUE)
n Model LR df R2 Sigma
2249 5305 2 02101 02621
Residuals
Min 1Q Median 3Q Max
-146436 -015308 -001852 013542 110402
Coefficients
Value Std Error t Pr(gt|t|)
Intercept 408773 0036285 11266 0
female -019111 0016626 -1149 0
school 002967 0002806 1057 0
Residual standard error 02621 on 2246 degrees of freedom
Adjusted R-Squared 02094
Grup sayısı M kucuk oldugunda standart hataları su sekilde de duzeltebilirsiniz
gt library(Design)
gt f1 lt- formula(log(wage) ~ female +school)
gt M lt- length(unique(industry))
gt N lt- length(industry)
gt K lt- lm(f1)$rank
gt cl lt- (M(M-1))((N-1)(N-K))
gt fm1 lt- robcov(ols(f1 x=TRUE y=TRUE) cluster=industry)
gt fm1$var lt- fm1$varcl
gt coeftest(fm1)
t test of coefficients
29
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Estimate Std Error t value Pr(gt|t|)
Intercept 40877297 00222033 184104 lt 22e-16
female -01911092 00110662 -17270 lt 22e-16
school 00296671 00017827 16641 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
74 F-testi
Kısıtlı (bazı (veya tum) egim katsayıları uzerine sıfır kısıtının kondugu) ve kı-sıtsız (sıfır olan ve sıfır olmayan katsayılara izin veren) modelleri tahmin edinKısıtlı modelde tanımlandıgı sekliyle anova() komutunu kullanarak ortak hipo-tezleri test edebilirsiniz
gt modrestricted lt- lm(log(wage) ~ 1)
gt modunrestricted lt- lm(log(wage) ~ female + school)
gt anova(modrestrictedmodunrestricted)
Analysis of Variance Table
Model 1 log(wage) ~ 1
Model 2 log(wage) ~ female + school
ResDf RSS Df Sum of Sq F Pr(gtF)
1 2248 19534
2 2246 15429 2 41047 29876 lt 22e-16
---
Signif codes 0 0001 001 005 01 1
Sabit olmayan hata varyansı altında White varyans-kovaryans matrisini kullanı-rız Modele ait F-degeri asagıdaki sekildedir Asagıdaki kodlarda yer alan lt-1gt
sabit terim ile iliskili satırsutunu dıslar
gt library(car)
gt COV lt- hccm(modunrestricted hc1)[-1-1]
gt beta lt- matrix(coef(modunrestricted 1))[-1]
gt t(beta)solve(COV)beta(lm(f1)$rank -1)
[1]
[1] 2531234
30
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
8 Zaman serileri
Satırlarda veri
Zaman serileri genellikle verinin satırlarda oldugu bicimde olurlar Ornek olarakNational Institute of Economic Research tarafından gerceklestirilen Isvec Tu-ketici Anketi verisi kullanılmıstır Veri setinde uc seri yer almaktadır tuketiciguven endeksi bir makro endeks ve bir de mikro endeks
Ilk olarak orjinal veri metin formatında bir dosyaya kaydedilmistir Veri Rrsquodagirdi olarak kullanılmadan once bir metin duzenleyicisi kullanılarak bosluk ileayrılmıs ilk uc serinin degerleri dosyanın icerisinde bırakılmıstır Seriler satırlar-dadır Serilere ait degerler degisken isimleri olmaksızın ayrı satırlarda listelen-mistir
ltmacrotxtgt dosyasını okumak icin asagıda yer alan kod 1993 yılında bas-layan ve 12 frekansa (aylık) sahip zaman serisi nesnesini tanımlamadan onceltscangt ve ltmatrixgt yardımıyla veriyi 3 sutun ve 129 satıra yarlestirir Serilerltccigtltmacroindexgt ve ltmicroindexgt olarak adlandırılmıstır ltmatrixgtrsquoinvarsayılan olarak veriyi sutunlara doldurduguna dikkat edin
gt FILE lt- httppeoplesuse~maR_intromacrotxt
gt macro lt-ts(
+ matrix(
+ scan(FILE)1293)
+ start=1993frequency=12
+ names=c(ccimacroindex microindex))
Burada bir degiskenin gecikmeli degerlerinin yaratılması ve veri setine eklenmesiornegi verilmektedir Hesaplama farklılıkları icin ayrıca ltdiffgtrsquoe bakınız
ltmacrogt veri setindeki veriye gecikmeli ltccigtrsquoyi (1 ay geciktirilmis) ekleyerekyeni bir veri seti yaratalım lttsuniongt fonksiyonu tum gozlemleri saklayarakserileri biraraya getirirken lttsintersectgt yalnızca seilerin cakısan kısımlarınısaklar
gt macro2 lt- tsunion(
+ macro lcci = lag(macro[1]-1))
aggregate fonksiyonu zaman serisi verisinin frekansını degistirmek icin kullanı-labilir Asagıdaki ornek verinin frekansını degistirmektedir nfrequency=1 yıllıkveri olusturmaktadır FUN=mean zaman icerisinde degiskenlerin ortalamasını he-saplamaktadır Varsayılan ise ltsumgtrsquodır
gt aggregate(macronfrequency=1FUN=mean)
31
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Time Series
Start = 1993
End = 2002
Frequency = 1
cci macroindex microindex
1993 -197583333 -333833333 -13241667
1994 -02916667 141666667 -5158333
1995 -108583333 -37250000 -10250000
1996 -79166667 -205500000 -3866667
1997 35333333 07833333 2141667
1998 119083333 163500000 7250000
1999 176083333 206083333 11891667
2000 262666667 404083333 14925000
2001 34583333 -137083333 9608333
2002 72166667 -73250000 10125000
81 Durbin Watson
ltlmtestgt paketindeki ltdwtestgt ve ltcargt paketindeki ltdurbinwatsongt kul-lanılabilir Ayrıca Breusch-Godfrey yuksek sıradan ardısık bagımlılık testi icinltlmtestgt paketindeki ltlmtestgtrsquoe bakınız
gt Fitting the model
gt mod1 lt- lm(cci ~ macroindex data=macro)
gt library(lmtest)
gt dwtest(mod1)
Durbin-Watson test
data mod1
DW = 0063 p-value lt 22e-16
alternative hypothesis true autocorrelation is greater than 0
9 Grafikler
91 Grafikleri postscript formatında kaydetme
postscript(myfileps)
hist(110)
devoff()
32
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
92 Grafikleri pdf formatında kaydetme
pdf(myfilepdf)
hist(110)
devoff()
93 Gozlemlerin ve regresyon dogrusunun grafigini cizme
Verinin ve regresyon dogrusunun grafigini ciz ltschoolgtrsquou ltlog(wage)gtrsquoe karsıciz
gt XLABEL= Okul suresi
gt YLABEL= SEK Log saatlik ucret
gt TITLE lt- Grafik 1 Serpilim ve Regresyon
gt SubTitle lt- Kaynak Yasam Duzeyi Anketi LNU 1991
gt plot(schoollog(wage) pch=
+ main = TITLE sub = SubTitle xlab=XLABEL ylab=YLABEL)
gt abline(lm(log(wage) ~ school ))
gt abline(v = mean(school) col=red)
gt abline(h = mean(log(wage)) col=red)
33
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
5 10 15 20
30
35
40
45
50
55
Grafik 1 Serpilim ve Regresyon
Kaynak Yasam Duumlzeyi Anketi LNU 1991Okul suumlresi
SE
K L
og s
aatli
k uumlc
ret
34
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
94 Zaman serileri grafigi
Zaman serisi veri setini okutarak baslayın Ayrıntılar icin 8 kısma bakınız
Serileri bir grafikte ciz
gt TITLE lt- Grafik 2 Tuketici guven endeksi
gt SubTitle lt- Kaynak Tuketici Anketi
gt XLABEL lt- YIL
gt COLORS = c(redblueblack)
gt tsplot(macro col=COLORS
+ main = TITLE sub = SubTitle xlab=XLABEL)
gt legend(bottomrightlegend=colnames(macro)
+ lty=1col=COLORS)
Grafik 2 Tuumlketici guumlven endeksi
Kaynak Tuumlketici AnketiYIL
1994 1996 1998 2000 2002 2004
minus60
minus40
minus20
020
40
ccimacroindexmicroindex
ltplotts(macro)gt serileri ayrı ayrı cizdirir
35
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
10 Fonksiyon yazma
Yazım myfunction lt- function(x a ) seklindedir Fonksiyonicin argumanlar fonksiyon govdesinde yani icerisinde yer alan kodlar ta-nımlanmıs islemlerde kullanılan degiskenlerdir Bir kez bir fonksiyon yazıp onukaydettiginizde bu fonksiyonu icerisinde tanımlanmıs islemler icin fonk-siyonunuza atıf yaparak ve gerceklestirilen islem icin gerekli olan argumanlarıkullanarak gerceklestirebilirsiniz
Asagıdaki fonksiyon bir degiskenin ortalamasının karesini hesaplamaktadır ltmsgtfonksiyonunu tanımlayarak ltxgt degiskeninin ortalamasının karesini hesapla-mak istediginizde her seferinde lt(mean(x))^2)gt yazmak yerine ltms(x)gt yaza-bilirsiniz
gt ms lt- function(x) (mean(x))^2
gt a lt- 1100
gt ms(a)
[1] 255025
Fonksiyonun argumanları
Asagıdaki fonksiyon arguman icermemektedir ve ltHosgeldinizgt metin dizisinigoruntulemektedir
gt welc lt- function() print(Hosgeldiniz)
gt welc()
[1] Hosgeldiniz
Bu fonksiyon x argumanını almaktadır Fonksiyonun argumanları yazılmalıdır
gt myprognodefault lt- function(x)
+ print(paste(I use x for statistical computation))
Eger varsayılan deger belirlenmisse herhangi bir arguman yazılmadıgında var-sayılan deger kabul edilir
gt myprog lt- function(x=R)
+ print(paste(I use x for statistical computation))
gt myprog()
[1] I use R for statistical computation
gt myprog(R and sometimes something else)
[1] I use R and sometimes something else for statistical computation
36
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
101 Kumelenmis Standart Hataları hesaplamak icin birfonksiyon
Burada kumelenmis standart hataları hesaplamak icin bir fonksiyon yer almak-tadır (Yukarıda anlatılan Design kitaplıgındaki robcov fonksiyonuna da bakı-nız) Argumanlar veri seti ltdatgt model formulu ltf1gt ve kumelenme degiskeni-dir ltclustergt
clusteredstandarderrors lt- function(datf1 cluster)
attach(dat warnconflicts = FALSE)
M lt- length(unique(cluster))
N lt- length(cluster)
K lt- lm(f1)$rank
cl lt- (M(M-1))((N-1)(N-K))
X lt- modelmatrix(f1)
invXpX lt- solve(t(X) X)
ei lt- resid(lm(f1))
uj lt- asmatrix(aggregate(eiXlist(cluster)FUN=sum)[-1])
sqrt(cldiag(invXpXt(uj)ujinvXpX))
Son satırı sqrt(diag(invXpX t(eiX)(Xei)invXpX)) iledegistirmenin White standart hataları verecegine dikkat ediniz
11 Cesitli ipucları
Gelir Dagılımı Bakınız ineqLogit ltglm(formula family=binomial(link=logit))gt
Bakınız ltglmgt amp ltfamilygt
Negatif binom ltnegativebinomial or glmnbgt in MASS VRPoisson regresyonu ltglm(formula family=poisson(link=log))gt
Bakınız ltglmgt amp ltfamilygt
Probit ltglm(formulafamily=binomial(link=probit))gt
Bakınız ltglmgt amp ltfamilygt
Esanlı denklemler Bakınız sem systemfitZaman Serileri Bakınız lttsgt tseries urca ve strucchangeTobit Bakınız lttobingt survival icerisinde
12 Tesekkur
Michael Lundholm Lena Nekby ve Achim Zeileisrsquoe degerli yorumları icin min-nettarım
37
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38
Kaynaklar
Peter Dalgaard Introductory Statistics with R Springer 2nd edition 2008 URLhttpwwwbiostatkudk~pdISwRhtml ISBN 978-0-387-79053-4
John Fox An R and S-Plus Companion to Applied Regression Sage Publi-cations Thousand Oaks CA USA 2002 URL httpsocservsocsci
mcmastercajfoxBooksCompanionindexhtml ISBN 0-761-92279-2
Christian Kleiber and Achim Zeileis Applied Econometrics with R Sprin-ger New York 2008 URL httpwwwspringercom978-0-387-77316-2ISBN 978-0-387-77316-2
Roger Koenker and Achim Zeileis Reproducible econometric research (a criticalreview of the state of the art) Report 60 Department of Statistics and Mat-hematics Wirtschaftsuniversitat Wien Research Report Series 2007 URLhttpwwweconuiucedu~rogerresearchrepro
R Development Core Team R A Language and Environment for StatisticalComputing R Foundation for Statistical Computing Vienna Austria 2008URL httpwwwR-projectorg ISBN 3-900051-07-0
William N Venables and Brian D Ripley Modern Applied Statistics with SFourth Edition Springer New York 2002 URL httpwwwstatsoxac
ukpubMASS4 ISBN 0-387-95457-0
38