Econometri 2 hafta (Ders Ozeti)
r markdown yukleme ve kullanma
- demir.pw sayfasinda R ile ekonometri basligi altinda R ve R-stidio yukleme ve kullanma
- resim yukleme
- R markdown kullanma, ödev hazırlama ve web sitesi olarak yükleme
Homework
soru 1
Paketler nedir ve niye kullanilir?
soru 2
5 tane ornek paket
cevap 1
- R studio bu R, istatistiksel analiz, veri manipülasyonu, grafik çizme ve raporlama gibi istatistiksel ve veri analizi görevleri için kullanılan bir programlama dilidir.
- R Studio’da kullanılan “paketler” R dilinde önceden yazılmış, genellikle belirli görevleri gerçekleştirmek için tasarlanmış fonksiyon ve araçların bir koleksiyonudur. Bu paketler, kullanıcıların belirli görevleri daha hızlı ve kolay bir şekilde gerçekleştirmelerine olanak tanır.
- paketler once kurulur sonra yuklenir ve yuklenen paketlerin kullanmak icin library komutunu kullanacagiz
cevap 2
- ggplot2: Veri görselleştirmesi için güçlü bir grafik paketi Bu paket, “Grammar of Graphics” (Grafiklerin Dilbilgisi) konseptine dayanarak, veri görselleştirmesini daha modüler ve esnek hale getirir. ggplot2 ile oluşturulan grafikler, veri setinizin yapısını ve ilişkilerini daha iyi anlamamıza yardımcı olabilir.
ggplot2 paketinin bazı önemli özellikleri şunlardır:
_Modüler Yapı: ggplot2, bir grafik oluşturmak için basit bir dilbilgisi sağlar. Bu dilbilgisi, grafikle ilgili temel bileşenleri (veri seti, estetikler, geometrik nesneler, istatistiksel dönüşümler) bir araya getirmemizi sağlar.
_Katmanlar (Layers): Bir ggplot grafiği, katmanlar halinde oluşturulur. Her katman, bir veya daha fazla veri seti, estetik özellikler, geometrik nesneler ve istatistiksel dönüşümleri içerir. Bu sayede, grafikte farklı bileşenleri kolayca birleştirebiliriz.
_Estetik Özellikler: ggplot2 ile, veri setinizin değişkenlerini grafikte renk, büyüklük, şekil vb. gibi estetik özelliklerle ilişkilendirebiliriz.
_Temalar ve Özelleştirme: Grafiklerin görünümünü özelleştirmek için bir dizi tema ve seçenek sunar. Böylece grafiklerinizi yayın kalitesinde ve görsel olarak çekici hale getirebiliriz.
## Warning: пакет 'ggplot2' был собран под R версии 4.3.3
- Veri seti olustur
- ggplot grafiği oluştur
- readr: Veri okuma ve yazma işlemleri için hızlı ve etkili bir paket. Hadley Wickham tarafından geliştirilen bu paket, veri setlerini hızlı ve düzgün bir şekilde okuma yetenekleri sunar.
readr paketinin bazı önemli özellikleri
_Hız ve Performans: readr, veri setlerini hızlı bir şekilde okuma yeteneği ile bilinir. Büyük veri setleriyle çalışırken daha etkili olabilir.
_Veri Tipleri Tanıma: readr, veri setindeki sütunların veri tiplerini otomatik olarak tanır ve uygun R veri tiplerine dönüştürür. Bu, veri setlerini doğru bir şekilde yüklemeyi kolaylaştırır.
_Delimiter ve Diğer Ayarlar: readr, varsayılan olarak virgülle ayrılmış (CSV) dosyaları okur, ancak diğer ayraçları da destekler. Ayrıca, diğer özellikleri belirtmek için bir dizi seçeneğe sahiptir.
## Warning: пакет 'readr' был собран под R версии 4.3.3
- Veriyi oku
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
## dat <- vroom(...)
## problems(dat)
## Rows: 2281 Columns: 1
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): %PDF-1.7
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
- Veriyi görüntüle
## # A tibble: 6 × 1
## `%PDF-1.7`
## <chr>
## 1 "%\xb5\xb5\xb5\xb5"
## 2 "1 0 obj"
## 3 "<</Type/Catalog/Pages 2 0 R/Lang(tr-TR) /StructTreeRoot 164 0 R/MarkInfo<</M…
## 4 "endobj"
## 5 "2 0 obj"
## 6 "<</Type/Pages/Count 24/Kids[ 3 0 R 41 0 R 48 0 R 53 0 R 58 0 R 63 0 R 68 0 R…
- lubridate: Tarih ve zaman manipülasyonu için kullanılır.Bu paket, tarihlerin ve saatlerin işlenmesi, formatlanması, aritmetik işlemler yapılması gibi birçok işlemi basitleştirir.
## Warning: пакет 'lubridate' был собран под R версии 4.3.3
##
## Присоединяю пакет: 'lubridate'
## Следующие объекты скрыты от 'package:base':
##
## date, intersect, setdiff, union
- Şu anki tarihi al
- Belirli bir tarih oluştur
- Belirli bir saat oluştur
- Tarih ve saat birleştirme
- Tarih aritmetiği
- Tarih farkı hesaplama
- Tarih formatlama
- caret: Sınıflandırma ve regresyon modelleri için bir arayüz sağlar. Bu paket, makine öğrenimi modellerini eğitme, değerlendirme, hiperparametre ayarlama ve veri ön işleme gibi bir dizi görevi kolaylaştırmak için tasarlanmıştır. Model Seçimi ve Eğitimi: caret, bir dizi önceden uyarlanmış makine öğrenimi algoritmasını destekler. train fonksiyonu aracılığıyla, veri kümenizi belirli bir modelle eğitmek için kullanabilirsiniz. Örneğin, bir destek vektör makineleri modeli eğitmek için:
## Warning: пакет 'caret' был собран под R версии 4.3.3
## Загрузка требуемого пакета: lattice
## Warning: пакет 'lattice' был собран под R версии 4.3.3
- Veri kümesini yükleme
- Destek vektör makineleri modeli eğitimi
Model Değerlendirme: caret, model performansını değerlendirmek için çeşitli metrikleri sağlar. confusionMatrix ve plot fonksiyonları gibi araçları kullanarak modelin başarı ölçütlerini görselleştirebilirsiniz. - Model performansının değerlendirilmesi
predictions <- predict(model, newdata = iris) confusionMatrix(predictions, iris$Species)
- data.table: Büyük veri setleri üzerinde hızlı ve etkili veri manipülasyonu için kullanılır. Özellikle büyük veri setleriyle çalışırken performans avantajları sağlar. data.table paketi, veri manipülasyonu için özelleştirilmiş bir syntax sunar ve bazı durumlarda base R’dan daha hızlı çalışabilir.
data.table paketinin önemli özellikleri şunlardır:
Performans: data.table paketi, büyük veri setlerinde base R’dan daha hızlı çalışabilen özel bir veri tablosu sınıfını içerir. Bu, özellikle büyük veri setleriyle çalışırken işlemleri hızlandırabilir.
Syntax Kolaylığı: data.table ile veri manipülasyonu, özel bir syntax kullanılarak gerçekleştirilir. Bu syntax, kullanıcılara base R ile karşılaştırıldığında daha açık ve kısa bir yazım sağlar.
Gruplama ve Agregasyon İşlemleri: data.table ile verileri gruplayabilir ve gruplar üzerinde agregasyon işlemleri gerçekleştirebilirsiniz. Bu, veri setinin belirli kategorilere göre analiz edilmesini sağlar.
Hızlı Sıralama İşlemleri: data.table, veri tablosunu hızlı bir şekilde sıralamak için optimize edilmiştir. Bu özellik, sıralama işlemleri gereken analizlerde performans artışı sağlar.
##
## Присоединяю пакет: 'data.table'
## Следующие объекты скрыты от 'package:lubridate':
##
## hour, isoweek, mday, minute, month, quarter, second, wday, week,
## yday, year
- Örnek bir data.table oluştur
dt <- data.table(ID = c(1, 2, 3, 4),
Name = c("John", "Jane", "Bob", "Alice"),
Age = c(25, 30, 22, 28))- Veriyi ekrana yazdır
## ID Name Age
## 1: 1 John 25
## 2: 2 Jane 30
## 3: 3 Bob 22
## 4: 4 Alice 28
- Veriyi sırala
- Gruplama ve ortalama hesaplama
## Name MeanAge
## 1: Bob 22
## 2: John 25
## 3: Alice 28
## 4: Jane 30
Ekonometri 3 hafta
- https://data.worldbank.org/indicator/AG.LND.FRST.ZS?view=chart
- AG.LND.FRST.ZS forested area
- SP.POP.TOTL population
- calismamasi icin onune ## yazilir
yukariya eklersem sadece 2000 yildan baslayip verileri kullanir ,satrt= 2000 ## str kodu
## 'data.frame': 17024 obs. of 6 variables:
## $ country : chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ iso2c : chr "AF" "AF" "AF" "AF" ...
## $ iso3c : chr "AFG" "AFG" "AFG" "AFG" ...
## $ year : int 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 ...
## $ AG.LND.FRST.ZS: num NA NA NA NA NA NA NA NA NA NA ...
## ..- attr(*, "label")= chr "Forest area (% of land area)"
## $ SP.POP.TOTL : num 8622466 8790140 8969047 9157465 9355514 ...
## ..- attr(*, "label")= chr "Population, total"
- iso2c ve iso3c kodladri ulkeleri 2 veya 3 lu kodlarla gosterir ve baska datalar ile birlestirebilmemiz icin kolaylik saglar
## Warning: пакет 'explore' был собран под R версии 4.3.3
## # A tibble: 6 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 266 NA NA NA
## 2 iso2c chr 0 0 266 NA NA NA
## 3 iso3c chr 0 0 262 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 AG.LND.FRST.ZS dbl 8848 52 6657 0 32.4 98.6
## 6 SP.POP.TOTL dbl 359 2.1 16460 2646 215973749. 7950946801
pipe operatoru %>%
tidyverse ve ya dplyr
## Warning: пакет 'tidyverse' был собран под R версии 4.3.3
## Warning: пакет 'forcats' был собран под R версии 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ stringr 1.5.0
## ✔ forcats 1.0.0 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::between() masks data.table::between()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::first() masks data.table::first()
## ✖ data.table::hour() masks lubridate::hour()
## ✖ data.table::isoweek() masks lubridate::isoweek()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::last() masks data.table::last()
## ✖ purrr::lift() masks caret::lift()
## ✖ data.table::mday() masks lubridate::mday()
## ✖ data.table::minute() masks lubridate::minute()
## ✖ data.table::month() masks lubridate::month()
## ✖ data.table::quarter() masks lubridate::quarter()
## ✖ data.table::second() masks lubridate::second()
## ✖ purrr::transpose() masks data.table::transpose()
## ✖ data.table::wday() masks lubridate::wday()
## ✖ data.table::week() masks lubridate::week()
## ✖ data.table::yday() masks lubridate::yday()
## ✖ data.table::year() masks lubridate::year()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
temiz veri kullanmak icin kullanilir tidyverse
## # A tibble: 6 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 266 NA NA NA
## 2 iso2c chr 0 0 266 NA NA NA
## 3 iso3c chr 0 0 262 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 AG.LND.FRST.ZS dbl 8848 52 6657 0 32.4 98.6
## 6 SP.POP.TOTL dbl 359 2.1 16460 2646 215973749. 7950946801
## Joining with `by = join_by(country, iso2c, iso3c)`
left_join (data1, data2) datalari yan yana koymak icin kullanilir != “” veridaen cikarmak icin == “” bunun disindakileri veriden cikarip sadece ilgili datayi gormek icin
## # A tibble: 12 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 215 NA NA NA
## 2 iso2c chr 0 0 215 NA NA NA
## 3 iso3c chr 0 0 215 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 AG.LND.FRST.ZS dbl 7161 52 5143 0 32.6 98.6
## 6 SP.POP.TOTL dbl 245 1.8 13467 2646 24759535. 1417173173
## 7 region chr 0 0 7 NA NA NA
## 8 capital chr 0 0 210 NA NA NA
## 9 longitude chr 0 0 210 NA NA NA
## 10 latitude chr 0 0 210 NA NA NA
## 11 income chr 0 0 5 NA NA NA
## 12 lending chr 0 0 4 NA NA NA
Odev
== yerine %in% kullanmaya basladi
ggplot(df_JP_CA, aes(year, AG.LND.FRST.ZS , color = country)) +
geom_line() +
labs( x = "year" , y= " Value", title="Forest Area between Canada and Japan")## Warning: Removed 64 rows containing missing values or values outside the scale range
## (`geom_line()`).
##hafta 4
kayip_veriler <- dff %>% group_by(country) %>%
summarise ( kayipsayisi = sum(is.na(AG.LND.FRST.ZS))) ## Joining with `by = join_by(country)`
## # A tibble: 13 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 179 NA NA NA
## 2 iso2c chr 0 0 179 NA NA NA
## 3 iso3c chr 0 0 179 NA NA NA
## 4 year int 0 0 32 1990 2006. 2021
## 5 AG.LND.FRST.ZS dbl 0 0 4446 0 32.3 98.6
## 6 SP.POP.TOTL dbl 0 0 5720 9182 34295295. 1412360000
## 7 region chr 0 0 7 NA NA NA
## 8 capital chr 0 0 176 NA NA NA
## 9 longitude chr 0 0 177 NA NA NA
## 10 latitude chr 0 0 177 NA NA NA
## 11 income chr 0 0 5 NA NA NA
## 12 lending chr 0 0 4 NA NA NA
## 13 kayipsayisi int 0 0 1 2 2 2
5 hafta
###bireysel ulke secimi ve grafik
isvecre
ggplot(data_isvecre, aes(x=year, y = AG.LND.FRST.ZS)) +
geom_line(colour = "purple") + theme_classic() + labs( x = "year" , y= " Value", title="Forest area in SWITHERLAND 1990 - 2020")KESIT VERI ALMAK
## Warning: There was 1 warning in `filter()`.
## ℹ In argument: `iso2c != c("CN", "US", "IN")`.
## Caused by warning in `iso2c != c("CN", "US", "IN")`:
## ! длина большего объекта не является произведением длины меньшего объекта
ggplot(data_2020 , aes( x = SP.POP.TOTL , y = AG.LND.FRST.ZS , label=data_2020$iso2c, colour=data_2020$region )) + geom_point(colour = "red") + theme_minimal() + geom_text() ## Warning: Use of `data_2020$iso2c` is discouraged.
## ℹ Use `iso2c` instead.
## Use of `data_2020$iso2c` is discouraged.
## ℹ Use `iso2c` instead.
## Warning: Use of `data_2020$region` is discouraged.
## ℹ Use `region` instead.
odev
=dunya orman alani 1990 dan 2020 kadar nasil gitmis =dunya populasyonu nasil gitmis ve ikisini birbirine bol =kisi basi orman alani nasil ilerledi onu goster
dunya toplam verisi olusturmak
dunya_datasi <- data %>% group_by(year) %>% summarise(dunyanormanalani = sum(AG.LND.FRST.ZS) ,
dunyanufusu = sum(SP.POP.TOTL) , kisibasiormanalani = dunyanormanalani/dunyanufusu )ggplot(dunya_datasi, aes(x= year, y= dunyanormanalani, colour = "skyblue" )) + geom_line() + labs(title = "Dunyadaki orman alanlarinin degisimi 1990-2020", x= "yil" , y= "Dunya ormanan alani"+ theme_minimal())## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_line()`).
ggplot(dunya_datasi, aes(x= year, y= dunyanufusu, colour = "purple" )) + geom_line() + labs(title = "Dunya Nufusu degisimi", x= "yil" , y= "Dunya Nufusu"+ theme_linedraw())## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
ggplot(dunya_datasi, aes(x= year, y= kisibasiormanalani, colour = "yellow" )) + geom_line() + labs(title = "Kişi Başına Düşen Orman Alanının Zamanla Değişimi", x= "yil" , y= "Kişi Başına Düşen Orman Alanı" + theme_classic())## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_line()`).
senelere gore datalarin birlestirilmesi
ulkelerin paylari (odev)
belirli bir ulkenin o sene icin dunya orman alnanindaki payi nedir?
belirli bir ulkenin populasyondaki payi nedir ?
ulkenin senelik verimi nedir?
mutate
data <- data %>% mutate(ulkeormanalaninin_dunypayi = AG.LND.FRST.ZS/dunyanormanalani,
ulkenin_populasyonorani = SP.POP.TOTL/dunyanufusu,
verimliligi = ulkeormanalaninin_dunypayi/ulkenin_populasyonorani )italya icin
## Warning: Removed 32 rows containing missing values or values outside the scale range
## (`geom_col()`).
Vize Projesi
dunya kentlesme verisi yeterli duzeyde bulunmadigindan dolayi koylu sayisi baz alinmistir POV ; koylu hanehalkinin sehirlere goc etmesi sonucunda (sehir bolgeleri genisletilmek ihtiyaci duymakta ) orman alanlari kesilib sehirlestirilmektedir. Koylu populasyon oranindaki degismelerin dunya orman alanindaki etkilerine bakilacaktir ### Koylu populasyon oranini Dunya Orman Alanındaki etkisine bakılacaktır
AG.LND.FRST.ZS Dunya Orman Alanı
SP.RUR.TOTL.ZS Koylu populasyon orani
## Joining with `by = join_by(country, iso2c, iso3c)`
## # A tibble: 13 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 215 NA NA NA
## 2 iso2c chr 0 0 215 NA NA NA
## 3 iso3c chr 0 0 215 NA NA NA
## 4 year int 0 0 34 1990 2006. 2023
## 5 AG.LND.FRST.ZS dbl 711 9.7 5143 0 32.6 98.6
## 6 SP.RUR.TOTL.ZS dbl 281 3.8 6449 0 42.6 94.6
## 7 SP.POP.TOTL dbl 215 2.9 7086 9182 30351853. 1417173173
## 8 region chr 0 0 7 NA NA NA
## 9 capital chr 0 0 210 NA NA NA
## 10 longitude chr 0 0 210 NA NA NA
## 11 latitude chr 0 0 210 NA NA NA
## 12 income chr 0 0 5 NA NA NA
## 13 lending chr 0 0 4 NA NA NA
kayip_veriler_pov <- POV %>% group_by(country) %>%
summarise ( kayipsayisi = sum(is.na(SP.RUR.TOTL.ZS)))kayip_veriler_pov2 <- POV %>% group_by(country) %>%
summarise (kayipsayisi2 = sum(is.na(AG.LND.FRST.ZS)))## Joining with `by = join_by(country)`
## Joining with `by = join_by(country)`
POV_dunya_datasi <- Check_POV %>% group_by(year) %>% summarise(dunyanormanalani = sum(AG.LND.FRST.ZS) ,
dunyakoylunufusu = sum(SP.RUR.TOTL.ZS) ,dunyanufusu = sum(SP.POP.TOTL), dunyakoylunufusudegisimi= dunyakoylunufusu/dunyanufusu )“dunyanormanalani” için çizgi grafiği
ggplot(POV_dunya_datasi, aes(x = year, y = dunyanormanalani)) +
geom_line(color = "blue") +
labs(title = "Dünya Orman Alanı",
x = "Yıl",
y = "Orman Alanı (%)") +
theme_minimal()## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_line()`).
“Dunya köylü nufusu” için çizgi grafiği
ggplot(POV_dunya_datasi, aes(x = year, y = dunyakoylunufusu)) +
geom_line(color = "red") +
labs(title = "Dünya Kırsal Nüfus Oranı",
x = "Yıl",
y = "Kırsal Nüfus Oranı (%)") +
theme_minimal()## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
ggplot(POV_dunya_datasi, aes(x = year)) +
geom_line(aes(y = dunyanormanalani, color = "Dünya Orman Alanı"), size = 1.5) +
geom_line(aes(y = dunyakoylunufusu, color = "Dünya Köy Nüfusu"), size = 1.5) +
labs(title = "Dünya Orman Alanı ve Köy Nüfusu İlişkisi",
x = "Yıl",
y = "Değer",
color = "Değişkenler") +
scale_color_manual(values = c("Dünya Orman Alanı" = "blue", "Dünya Köy Nüfusu" = "red")) +
theme_minimal()## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_line()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_line()`).
Ozet
Yukaridaki grafiklerde anlasildigi gibi 1990-2020 yili boyunca toplanan verilere gore bu iki veri arasinda tek yonlu negatif bir iliski oldugu yani koylu populasyonun azalmasi (kentlesme) sonucunda orman alanlarini oraninin da azalmasi soz konusdur