Ekonometri Projesi

MUJEEB ASLAMI

2024-04-15


R ve R studio nedir?

R Studio, R programlama dilinin kullanıcı dostu bir entegre geliştirme ortamı (IDE) ve grafik arayüzüdür. R, istatistiksel hesaplama ve grafikler oluşturma gibi veri analizi işlemleri için kullanılan popüler bir programlama dilidir. R Studio, R kodunu yazmak, çalıştırmak, hata ayıklamak ve sonuçları görselleştirmek için bir arayüz sunar. Bu, veri bilimi, istatistik ve veri analizi gibi alanlarda çalışan profesyoneller için önemli bir araçtır.

R studio’daki paketler nedir ve ne işe yarar?

R Studio’daki paketler, R programlama dilinde ek işlevler ve araçlar içeren küçük yazılım parçalarıdır. Bu paketler, analiz, görselleştirme, makine öğrenimi gibi işlemleri kolaylaştırır ve genişletir. Yani, R Studio’daki paketler, R kullanıcılarının işlerini hızlandıran ve daha etkili hale getiren ek modüllerdir. R Studio’daki paketleri kullanmak oldukça basittir. İşte adımlar:

Paket Kurulumu: İhtiyacınız olan bir paketi bulduktan sonra, install.packages(“paket_adi”) komutunu kullanarak paketi kurabilirsiniz. Örneğin, “ggplot2” paketini kurmak için install.packages(“ggplot2”) komutunu kullanabilirsiniz.

Paketi Yükleme: Paketi kurduktan sonra, kullanmak istediğiniz her R oturumunda paketi yüklemeniz gerekir. Bunun için library(paket_adi) komutunu kullanabilirsiniz. Örneğin, “ggplot2” paketini yüklemek için library(ggplot2) komutunu kullanabilirsiniz.

Kullanım: Paketi yükledikten sonra, içindeki fonksiyonları ve özellikleri kullanabilirsiniz. Örneğin, “ggplot2” paketini kullanarak veri görselleştirmesi yapmak için ggplot() fonksiyonunu kullanabilirsiniz. ### örnek paketler: #### 1.ggplot2:

Amaç: Veri görselleştirmesi için kullanılan bir pakettir. Özellikler: Veriye dayalı grafikler oluşturmak için zengin bir grafik diline sahiptir. Katmanlar, estetikler ve temalar gibi kavramlarla grafik oluşturma sürecini esnek hale

# ggplot2 paketini yükleme
library(ggplot2)

# Veri seti oluşturma
veri <- data.frame(x = 1:10, y = rnorm(10))

# Scatter plot oluşturma
ggplot(veri, aes(x = x, y = y)) + 
  geom_point() +
  labs(title = "Basit Bir Scatter Plot", x = "X Değeri", y = "Y Değeri")

#### 2.dyplr:

Amaç: Veri manipülasyonu için kullanılan bir pakettir. Özellikler: Veri çerçeveleri üzerinde sık kullanılan işlemleri (filtreleme, toplama, sıralama, birleştirme vb.) gerçekleştirmek için optimize edilmiş fonksiyonlar sunar. Kullanım Alanları: Veri setlerini filtreleme, sıralama, gruplama, toplama, birleştirme gibi işlemleri gerçekleştirmek için kullanılır.

# dplyr paketini yükleme
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Veri seti oluşturma
veri <- data.frame(x = 1:10, y = rnorm(10))

# Veri setini filtreleme
filtreli_veri <- veri %>%
  filter(x > 5)

# Filtrelenmiş veriyi görüntüleme
print(filtreli_veri)
##    x          y
## 1  6  0.5773479
## 2  7  0.3935327
## 3  8 -0.7182533
## 4  9 -1.4228148
## 5 10 -0.1977007

3.caret:

Amaç: Makine öğrenimi modelleme işlemleri için kullanılan bir pakettir. Özellikler: Sınıflandırma ve regresyon gibi makine öğrenimi tekniklerini uygulamak için bir arayüz sağlar. Model seçimi, hiperparametre ayarlama ve performans değerlendirmesi gibi işlemleri kolaylaştırır. Kullanım Alanları: Sınıflandırma ve regresyon modelleri oluşturmak, model seçimi ve performans değerlendirmesi yapmak için kullanılır.

# caret paketini yükleme
library(caret)
## Loading required package: lattice
# Örnek veri seti yükleme
veri <- iris

# Sınıflandırma modeli oluşturma
model <- train(Species ~ ., data = veri, method = "rf")

# Model performansını görüntüleme
print(model)
## Random Forest 
## 
## 150 samples
##   4 predictor
##   3 classes: 'setosa', 'versicolor', 'virginica' 
## 
## No pre-processing
## Resampling: Bootstrapped (25 reps) 
## Summary of sample sizes: 150, 150, 150, 150, 150, 150, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy   Kappa    
##   2     0.9548556  0.9315568
##   3     0.9562366  0.9336429
##   4     0.9534521  0.9294016
## 
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was mtry = 3.

4.tidyr:

Amaç: Veri düzenleme ve temizleme için kullanılan bir pakettir. Özellikler: Veri setlerindeki düzensizlikleri gidermek ve veriyi analiz için uygun bir formata getirmek için tasarlanmıştır. Özellikle, veri setlerindeki geniş formatı dar format haline getirme ve tersine çevirme işlemleri için kullanışlıdır. Kullanım Alanları: Veri setlerini temizleme, dönüştürme ve düzenleme işlemleri yapmak için kullanılır.

# tidyr paketini yükleme
library(tidyr)

# Örnek veri seti oluşturma
veri <- data.frame(
  id = 1:3,
  isim = c("Ali", "Ayşe", "Ahmet"),
  notlar = c("90,85,70", "80,75,65", "95,85,80")
)

# Veriyi geniş formattan dar formata dönüştürme
dar_veri <- veri %>%
  separate_rows(notlar, sep = ",") %>%
  mutate(notlar = as.numeric(notlar))

# Dönüştürülmüş veriyi görüntüleme
print(dar_veri)
## # A tibble: 9 × 3
##      id isim  notlar
##   <int> <chr>  <dbl>
## 1     1 Ali       90
## 2     1 Ali       85
## 3     1 Ali       70
## 4     2 Ayşe      80
## 5     2 Ayşe      75
## 6     2 Ayşe      65
## 7     3 Ahmet     95
## 8     3 Ahmet     85
## 9     3 Ahmet     80

5.stringr:

Amaç: Metin işleme ve düzenleme için kullanılan bir pakettir. Özellikler: Metin dizeleri üzerinde desen eşleştirmesi, alt dize alma, büyük/küçük harfe dönüştürme, boşlukları temizleme gibi işlemleri gerçekleştirmek için kullanılır. Basit ve tutarlı bir arayüz sunar. Kullanım Alanları: Metin verileri üzerinde desen eşleştirmesi yapma, metin manipülasyonu, metin temizleme ve düzenleme işlemleri yapmak için kullanılır.

# stringr paketini yükleme
library(stringr)

# Örnek metin dizisi
metin <- "Bu bir örnek metin dizisidir."

# Metin dizisini büyük harfe dönüştürme
buyuk_metin <- str_to_upper(metin)

# Dönüştürülmüş metin dizisini görüntüleme
print(buyuk_metin)
## [1] "BU BIR ÖRNEK METIN DIZISIDIR."

ANALIZLER:

library(WDI)
data <- WDI(country = "all", indicator = c("NY.GDP.MKTP.CD", "SP.POP.TOTL","SE.TER.ENRR"),start=2000,end=2020)
library(explore)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ purrr::lift()   masks caret::lift()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data %>% describe_all()
## # A tibble: 7 × 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       21     2000     2.01e 3  2.02e 3
## 5 NY.GDP.MKTP.CD dbl     211    3.8   5340 13964732.    2.00e12  8.78e13
## 6 SP.POP.TOTL    dbl      21    0.4   5521     9609     2.82e 8  7.82e 9
## 7 SE.TER.ENRR    dbl    1817   32.5   3728        0.12  3.54e 1  1.43e 2
ekstra_data <- WDI_data$country
data_extra <-  left_join(data, ekstra_data)
## Joining with `by = join_by(country, iso2c, iso3c)`
data_extra <- data_extra %>% filter(income != "Aggregates")
data_extra %>% describe_all()
## # 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       21     2000     2.01e 3  2.02e 3
##  5 NY.GDP.MKTP.CD dbl     190    4.2   4326 13964732.    3.04e11  2.14e13
##  6 SP.POP.TOTL    dbl       0    0     4512     9609     3.19e 7  1.41e 9
##  7 SE.TER.ENRR    dbl    1787   39.6   2729        0.12  3.74e 1  1.43e 2
##  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
eksik_veriler <- data_extra[is.na(data_extra$NY.GDP.MKTP.CD),]
kayip_degerler <- data_extra %>% group_by(country) %>%
  summarise(kayip = sum(is.na(NY.GDP.MKTP.CD)))
data <- left_join(data_extra, kayip_degerler)
## Joining with `by = join_by(country)`
data <- data %>%  filter (kayip < 1)
describe_all(data)
## # A tibble: 14 × 8
##    variable       type     na na_pct unique         min          mean      max
##    <chr>          <chr> <int>  <dbl>  <int>       <dbl>         <dbl>    <dbl>
##  1 country        chr       0      0    193       NA              NA  NA      
##  2 iso2c          chr       0      0    193       NA              NA  NA      
##  3 iso3c          chr       0      0    193       NA              NA  NA      
##  4 year           int       0      0     21     2000            2010   2.02e 3
##  5 NY.GDP.MKTP.CD dbl       0      0   4053 13964732.   323643664482.  2.14e13
##  6 SP.POP.TOTL    dbl       0      0   4051     9609        34833429.  1.41e 9
##  7 SE.TER.ENRR    dbl    1418     35   2636        0.21           38   1.43e 2
##  8 region         chr       0      0      7       NA              NA  NA      
##  9 capital        chr       0      0    190       NA              NA  NA      
## 10 longitude      chr       0      0    193       NA              NA  NA      
## 11 latitude       chr       0      0    193       NA              NA  NA      
## 12 income         chr       0      0      4       NA              NA  NA      
## 13 lending        chr       0      0      4       NA              NA  NA      
## 14 kayip          int       0      0      1        0               0   0
eksik_veriler <- data_extra[is.na(data_extra$SE.TER.ENRR),]
kayip_degerler <- data_extra %>% group_by(country) %>%
  summarise(kayip = sum(is.na(SE.TER.ENRR)))
data <- left_join(data_extra, kayip_degerler)
## Joining with `by = join_by(country)`
data <- data %>%  filter (kayip < 1)
describe_all(data)
## # A tibble: 14 × 8
##    variable       type     na na_pct unique          min     mean      max
##    <chr>          <chr> <int>  <dbl>  <int>        <dbl>    <dbl>    <dbl>
##  1 country        chr       0      0     56        NA    NA       NA      
##  2 iso2c          chr       0      0     56        NA    NA       NA      
##  3 iso3c          chr       0      0     56        NA    NA       NA      
##  4 year           int       0      0     21      2000     2.01e 3  2.02e 3
##  5 NY.GDP.MKTP.CD dbl       0      0   1176 984293044.    4.42e11  1.47e13
##  6 SP.POP.TOTL    dbl       0      0   1176    281205     6.67e 7  1.41e 9
##  7 SE.TER.ENRR    dbl       0      0   1176         1.16  4.93e 1  1.18e 2
##  8 region         chr       0      0      6        NA    NA       NA      
##  9 capital        chr       0      0     54        NA    NA       NA      
## 10 longitude      chr       0      0     56        NA    NA       NA      
## 11 latitude       chr       0      0     56        NA    NA       NA      
## 12 income         chr       0      0      4        NA    NA       NA      
## 13 lending        chr       0      0      4        NA    NA       NA      
## 14 kayip          int       0      0      1         0     0        0

bireysel ülke seçimi

fransa <-data %>% filter(iso2c == "FR")
ggplot(fransa, aes(x=year,y=SE.TER.ENRR))+
  geom_line()+
  labs(title = "yıllara göre fransa da yüksek okul kayıtları")

ggplot(fransa, aes(x=year,y=SP.POP.TOTL))+
  geom_line()+
  labs(title = "yıllara göre fransa da nüfüs değişimi")

### yıl seçimi

data_2018 <-data %>% filter(year==2018)
ggplot(data_2018, aes(x=SP.POP.TOTL, y=SE.TER.ENRR, label=iso2c, colour=region)) + 
  geom_point() +
  geom_text()+
  labs(title="nüfüs ve okula katılım arasındaki ilişki")

Verim

Verim katsayısı (Coefficient of Variation), bir veri setinin değişkenliğini ölçmek için kullanılan bir istatistiksel ölçüdür. Veri setinin standart sapmasının, ortalama değerine oranını ifade eder.

Verim katsayısı, ölçümlerin farklı birimlerde olması durumunda farklı veri setlerinin değişkenliğini karşılaştırmak için kullanışlıdır, çünkü standart sapma ve ortalama, ölçümlerin orijinal birimlerine bağımlıdır.

world_data <- data %>% 
  group_by(year) %>%
  summarise(dunyanufusu = sum(SP.POP.TOTL),
            dunyauretimi= sum(NY.GDP.MKTP.CD),
            kisibasina = sum(dunyauretimi/dunyanufusu))
data <- left_join(data, world_data, by="year")
data <- data %>% mutate(ulkeninuretimorani = (NY.GDP.MKTP.CD    )/dunyauretimi,
                        populyasyonorani = SP.POP.TOTL/dunyanufusu,
                        verim = ulkeninuretimorani/populyasyonorani)
data_2018 <-data %>% filter(year==2018)
ggplot(data_2018, aes(x=verim, y=SE.TER.ENRR, label=iso2c, colour=region)) + 
  geom_point() +
  geom_text()+
  labs(title="verim ve okula katılım arasındaki ilişki")+
   geom_vline(xintercept = 1)

özet

verimli ülkelerin yüksek okul katılmaları daha yüksek.verilere göre en yüksek katılım oranları avurupa ve merkezi Asia ülkelerınde gözüküyör. en düşük katılım oranları de Afrika ve güney Asia ülkelernde gözüküyör.

verim ve insani sermaye

library(readxl)
pwt1001 <- read_excel("pwt1001.xlsx", sheet = "Data")
View(pwt1001)
pwt1001 <- pwt1001 %>% filter(year>1999)
odev <- left_join(data,pwt1001)
## Joining with `by = join_by(country, iso3c, year)`
odev_2016 <- odev %>% filter(year==2016)
ggplot(odev_2016, aes(x=verim, y=hc, label=iso2c, colour=region)) + 
  geom_point() +
  geom_text()+
  geom_vline(xintercept = 1)+
  geom_hline(yintercept = 1)
## Warning: Removed 15 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 15 rows containing missing values or values outside the scale range
## (`geom_text()`).

İnsani sermayesi yüksek olan ülkelerin çoğu Avrupa ve merkezi asyada. Verimi en yüksek olan ülke Çin.İnsani sermayesi fazla olupta verimsiz olan ülkeler mevcut çünkü insani sermaye verimi artırabilecek tek faktor değildir.