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
library(png)

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.

library(ggplot2)
## Warning: пакет 'ggplot2' был собран под R версии 4.3.3
  • Veri seti olustur
veri <- data.frame(x = rnorm(100), y = rnorm(100))
  • ggplot grafiği oluştur
grafik <- ggplot(data = veri, aes(x = x, y = y)) + geom_point()
print(grafik)

  • 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.

library(readr)
## Warning: пакет 'readr' был собран под R версии 4.3.3
  • Veriyi oku
veri <- read_csv("2020_2_OZTELA.pdf")
## 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
head(veri)
## # 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.
library(lubridate)
## Warning: пакет 'lubridate' был собран под R версии 4.3.3
## 
## Присоединяю пакет: 'lubridate'
## Следующие объекты скрыты от 'package:base':
## 
##     date, intersect, setdiff, union
  • Şu anki tarihi al
today <- Sys.Date()
  • Belirli bir tarih oluştur
specific_date <- ymd("2024-03-05")
  • Belirli bir saat oluştur
specific_time <- hms("22:36:00")
  • Tarih ve saat birleştirme
datetime <- ymd_hms("2024-03-05 22:36:00")
  • Tarih aritmetiği
new_date <- ymd("2024-03-05") + months(3)
  • Tarih farkı hesaplama
date_diff <- difftime (ymd("2024-03-05"), ymd("2023-01-01"))
  • Tarih formatlama
formatted_date <- format(ymd("2024-03-05"), "%d %B %Y")
  • 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:
library(caret)
## Warning: пакет 'caret' был собран под R версии 4.3.3
## Загрузка требуемого пакета: lattice
## Warning: пакет 'lattice' был собран под R версии 4.3.3
  • Veri kümesini yükleme
data(iris)
  • Destek vektör makineleri modeli eğitimi
model <- train(Species ~ ., data = iris, method = "svmRadial")

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.

library(data.table)
## 
## Присоединяю пакет: '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
print(dt)
##    ID  Name Age
## 1:  1  John  25
## 2:  2  Jane  30
## 3:  3   Bob  22
## 4:  4 Alice  28
  • Veriyi sırala
dt <- dt[order(Age)]
  • Gruplama ve ortalama hesaplama
dt[, .(MeanAge = mean(Age)), by = Name]
##     Name MeanAge
## 1:   Bob      22
## 2:  John      25
## 3: Alice      28
## 4:  Jane      30

Ekonometri 3 hafta

##install.packages("WDI")
library(WDI)
data_WDI <- WDI(country = "all", indicator = c("SL.UEM.TOTL.ZS", "EN.POP.DNST"))

str kodu

str(data_WDI)
## 'data.frame':    16758 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 ...
##  $ SL.UEM.TOTL.ZS: num  NA NA NA NA NA NA NA NA NA NA ...
##   ..- attr(*, "label")= chr "Unemployment, total (% of total labor force) (modeled ILO estimate)"
##  $ EN.POP.DNST   : num  NA 13.5 13.8 14 14.3 ...
##   ..- attr(*, "label")= chr "Population density (people per sq. km of land area)"
  • iso2c ve iso3c kodladri ulkeleri 2 veya 3 lu kodlarla gosterir ve baska datalar ile birlestirebilmemiz icin kolaylik saglar
##install.packages("tdyverse")
## install.packages("explore")
library(explore)
## Warning: пакет 'explore' был собран под R версии 4.3.3
describe_all(data_WDI)
## # 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       63 1960   1991     2022  
## 5 SL.UEM.TOTL.ZS dbl    9239   55.1   5218    0.1    7.96    38.8
## 6 EN.POP.DNST    dbl    1857   11.1  14767    0.1  294.   21595.

pipe operatoru %>%

tidyverse ve ya dplyr

library(tidyverse)
## 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

data_WDI %>% describe_all()
## # 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       63 1960   1991     2022  
## 5 SL.UEM.TOTL.ZS dbl    9239   55.1   5218    0.1    7.96    38.8
## 6 EN.POP.DNST    dbl    1857   11.1  14767    0.1  294.   21595.
ek_bilgi<- WDI::WDI_data$country
df <- left_join(data_WDI, ek_bilgi)
## Joining with `by = join_by(country, iso2c, iso3c)`

!= “” veridaen cikarmak icin == “” bunun disindakileri veriden cikarip sadece ilgili datayi gormek icin

##df %>% filter(region != "Aggregates") (cok uzun veri olmamasi icin ## ile kapattim)
df %>% describe_all()
## # 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      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       63 1960   1991     2022  
##  5 SL.UEM.TOTL.ZS dbl    9239   55.1   5218    0.1    7.96    38.8
##  6 EN.POP.DNST    dbl    1857   11.1  14767    0.1  294.   21595. 
##  7 region         chr     567    3.4      9   NA     NA       NA  
##  8 capital        chr     567    3.4    211   NA     NA       NA  
##  9 longitude      chr     567    3.4    211   NA     NA       NA  
## 10 latitude       chr     567    3.4    211   NA     NA       NA  
## 11 income         chr     567    3.4      7   NA     NA       NA  
## 12 lending        chr     567    3.4      6   NA     NA       NA
df_JP_CA <-df %>% filter(iso2c %in% c("JP", "CA"))

== yerine %in% kullanmaya basladi

ggplot(df_JP_CA, aes(year,SL.UEM.TOTL.ZS, color = country)) +
  geom_line()+
  labs( x = "year" , y= " Value", title="Unemployement rate between Canada and Japan")
## Warning: Removed 62 rows containing missing values or values outside the scale range
## (`geom_line()`).

ortlama <- df %>%
  group_by(country) %>%
summarise(kayipsayisi = sum(SL.UEM.TOTL.ZS))
df <- df %>% filter(year > 1996)