38
Ekonometriye Yeni Ba¸ slayanlar i¸cin Kısa bir R Kılavuzu Yazan:Mahmood ARAI Stockholm ¨ Universitesi, ˙ Iktisat B¨ ol¨ um¨ u urk¸ cele¸ stiren: Emrah ER * Ankara ¨ Universitesi, SBF ˙ Iktisat B¨ ol¨ um¨ u ˙ Ilk Versiyon: 11/06/2010 1 Giri¸ s 1.1 R Hakkında R GPL (GNU Kamu Lisansı) altında yayınlanan ve t¨ um ana platformlarda ¸ca- lı¸ stırılabilen bir programdır. R, R Anasayfa’sında ¸ su ¸ sekilde tanımlanmaktadır: ”R istatistiki hesaplama ve grafik i¸ cin bir ¨ ozg¨ ur program orta- mıdır. ¸ Cok ¸ ce¸ sitli Unix platformunda, Windows ve MacOS altında harmanlama yapabilmekte ve ¸ calı¸ smaktadır. R’ı indirmek i¸ cin l¨ utfen tercih etti˘ giniz CRAN-mirror’ı se¸ ciniz.” Kılavuzlar ve farklı d¨ ok¨ umanlar i¸ cin R Anasayfa’sını ziyaret ediniz. R ¨ uzerine yazılmı¸ s ¸cok sayıda kitap mevcuttur. R ile ili¸ skili yayınların bir listesi i¸cin R- Project 1 web sayfasını ziyaret ediniz. Dalgaard [2008] ve Fox [2002] ba¸ slangı¸ c uzeyi i¸cin ideal kitaplardır. ˙ Ileri d¨ uzey bir kitap i¸ cin ise klasik bir referans olan Venables and Ripley [2002]’yi inceleyiniz. Kleiber and Zeileis [2008ozel olarak ekonometri konularını ele almaktadır. Ayrıca CRAN Konu G¨ or¨ unt¨ uleme: Sayısal Ekonometri sayfasını inceleyiniz. R ve L A T E X’i dokumak i¸ cin Sweave’e 2 bakınız. R kullanarak yeniden t¨ uretilebilir ara¸ stırmalari¸cin Koenker and Zeileis [2007]’ye bakınız. R’a atıf yapmak i¸cin ise R Development Core Team [2008]’e ba¸ svurulabilir. * Bu ¸ceviri benim R ile ilgili olarak ger¸cekle¸ stirdi˘gimilk¸calı¸ sma oldu˘ gundan bazı ¸ ceviri hataları i¸cerebilir. Hataları bana bildirirseniz sevinirim. 1 http://www.R-project.org/doc/bib/R.bib 2 http://www.stat.uni-muenchen.de/~leisch/Sweave/ 1

Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

Embed Size (px)

Citation preview

Page 1: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 2: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 3: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 4: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 5: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 6: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 7: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 8: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 9: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 10: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 11: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 12: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 13: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 14: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 15: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 16: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

+ 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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 17: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 18: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 19: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 20: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 21: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 22: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 23: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 24: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 25: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 26: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 27: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 28: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 29: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 30: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 31: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 32: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 33: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 34: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 35: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 36: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 37: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr
Page 38: Ekonometriye Yeni Ba˘slayanlar icin K sa bir R K lavuzu · 2.2 R ile cal ˘sma Bir proje icin bir klas or olu˘sturma ve R’ bu klas or alt nda cal ˘st rmak iyi bir kirdir. Bu,

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

  • Giris
    • R Hakkında
    • Bu sayfalar hakkında
    • Nesneler ve dosyalar
      • Ilk birkaccedil sey
        • Kurulum
        • R ile ccedilalısma
        • Rda isimlendirme
        • Ccedilalısma alanı nesnelerini ve goumlruumlntuumllerini kaydetme
        • Genel seccedilenekler
        • Yardım alma
          • Temel komutlar
          • Veri duumlzenleme
            • Duumlz metin formatında veriyi okuma
            • Tablo verisinde mevcut olmayan goumlzlem (NA) ve sınırlayıcılar
            • Diger formatlarda veri okuma ve yazma
            • Veri seti nesnesinin iccedilerigini inceleme
            • Veri setinde degisken yaratma ve degisken ccedilıkartma
            • Veri setinde yer alan degiskenlerin alt kuumlmesini seccedilme
            • Veri setinde goumlzlemlerin altkuumlmesini seccedilme
            • Degiskenlerin degerlerini degistirme
            • Eksik degerleri degistirmek
            • Faktoumlrler
            • Veriyi grup bazında toplulastırmak
            • Farklı veri setlerini kullanma
              • Temel istatistikler
                • Ccedilizelgeleme
                  • Matrisler
                    • Endeksleme
                    • Skalar Matris
                    • Matris islemleri
                      • En kuumlccediluumlk kareler
                        • Model formuumlluuml ve sonuccedillarını goumlruumlntuumlleme
                        • White degisen varyans duumlzeltilmis standart hatalar
                        • Grup-iccedili sabit olmayan hata varyansı
                        • F-testi
                          • Zaman serileri
                            • Durbin Watson
                              • Grafikler
                                • Grafikleri postscript formatında kaydetme
                                • Grafikleri pdf formatında kaydetme
                                • Goumlzlemlerin ve regresyon dogrusunun grafigini ccedilizme
                                • Zaman serileri grafigi
                                  • Fonksiyon yazma
                                    • Kuumlmelenmis Standart Hataları hesaplamak iccedilin bir fonksiyon
                                      • Ccedilesitli ipuccedilları
                                      • Tesekkuumlr