Vize Ödevi

Javokhir Akbarov

2024-04-14

R ve Rstudio nedir?

R, istatistiksel hesaplamalar, veri analizi, grafik çizimi ve veri görselleştirme gibi birçok istatistiksel ve veri analizi görevi için kullanılan bir programlama dili ve çevresel bir ortamdır. R, açık kaynaklı bir yazılımdır ve istatistiksel hesaplamaları gerçekleştirmek için geniş bir kütüphane koleksiyonuna sahiptir. R, araştırmacılar, veri bilimcileri ve istatistikçiler tarafından yaygın olarak kullanılır.

R Studio ise R programlama dilini daha etkili bir şekilde kullanmayı sağlayan bir entegre geliştirme ortamıdır (IDE). R Studio, R kodunu yazmak, çalıştırmak, hata ayıklamak, veri analizi yapmak, grafik oluşturmak ve sonuçları görselleştirmek için bir dizi araç ve özellik sunar. Kullanıcı dostu arayüzü ve kolay erişim sağlayan menüleri ile R Studio, R programlama dilini öğrenen ve kullananlar için önemli bir araç haline gelmiştir.

Paketler nedir

R Studio’daki paketler, R programlama dilinde farklı işlevlere sahip olan ek modüller veya kütüphanelerdir. Bu paketler, belirli görevleri gerçekleştirmek için önceden yazılmış fonksiyonlar, veri setleri ve diğer araçlar içerir.

R Studio’da paketler, yüklenmesi ve yönetilmesi oldukça kolaydır. Kullanıcılar, ihtiyaç duydukları işlevselliği sağlayan paketleri R Studio üzerinden arayabilir, yükleyebilir ve kullanabilirler. Bu, R programlama dilinin esnekliğini artırarak kullanıcıların istatistiksel analizlerini ve veri bilimi projelerini daha verimli bir şekilde gerçekleştirmelerine olanak tanır.

Paketler neden önemlidir

R Studio’daki paketler, R kullanıcılarına çeşitli analizler, veri manipülasyonu, görselleştirme ve modelleme gibi işlemleri gerçekleştirmelerini sağlar. Bu paketler, ileri analiz ve modelleme, veri manipülasyonu ve temizleme, veri görselleştirme ve grafik oluşturma, raporlama ve sunum, özelleştirme ve genişletme gibi çeşitli alanlarda önemli bir rol oynar. Kullanıcılar, ihtiyaçlarına göre paketleri seçerek ve kullanarak veri analizi ve bilimsel araştırmalarını daha verimli bir şekilde gerçekleştirebilirler.

Paketlere nasıl erişir ?

R paketlerine erişmek için CRAN (Comprehensive R Archive Network) deposunu veya R Studio üzerinden paket yöneticisini kullanabilirsiniz. Ayrıca, R kodu aracılığıyla install.packages(“paket_adı”) komutunu kullanarak paketleri indirebilir ve library(paket_adı) komutuyla kullanılabilir hale getirebilirsiniz.

Paket örnekleri 1(ggplot)

ggplot2, R programlama dilinde veri görselleştirmesi için kullanılan güçlü bir pakettir. Veriye dayalı grafikler oluşturmak için kullanılır ve veri görselleştirmesinde büyük bir esneklik ve özelleştirme sağlar.

ggplot2’nin önemi birkaç yönden gelir:

Declarative Syntax (Bildirimci Sözdizimi): ggplot2’nin bildirimci bir sözdizimi vardır, yani kullanıcılar oluşturmak istedikleri grafikleri tanımlarlar ve ggplot2 bu tanımı yorumlayarak grafikleri oluşturur. Bu, grafik oluşturma sürecini basitleştirir ve daha anlaşılır hale getirir.

Layered Grammar of Graphics (Grafiklerin Katmanlı Grameri): ggplot2, grafiklerin katmanlar halinde oluşturulmasını sağlayan bir yaklaşımı benimser. Bu, kullanıcıların grafikleri katmanlar halinde oluşturmasına ve her bir katmanda farklı veri ve görsel özellikler belirtmesine olanak tanır.

Özelleştirme Yeteneği: ggplot2, grafiklerin hemen hemen her yönünü özelleştirmek için geniş bir seçenekler yelpazesi sunar. Kullanıcılar renkler, etiketler, eksenler, çizgi stilleri ve daha fazlasını istedikleri gibi ayarlayabilirler.

Grafiklerin Temiz ve Profesyonel Görünümü: ggplot2 ile oluşturulan grafikler genellikle temiz, profesyonel ve estetik bir görünüme sahiptir. Bu, veri görselleştirmesinin etkili bir şekilde yapılmasına ve sonuçların daha iyi anlaşılmasına yardımcı olur.

Örnek 2(Dpylr)

R programlama dilinde veri manipülasyonu ve işleme için kullanılan bir pakettir. Veri çerçeveleri üzerinde sıkça kullanılan işlemleri kolaylaştırır ve veri manipülasyonunu daha okunaklı ve etkili hale getirir.

dplyr paketinin önemi birkaç yönden gelir:

Basit ve Tutarlı Arayüz: dplyr, veri manipülasyonu için basit ve tutarlı bir arayüz sunar. Bu arayüz, kullanıcıların kodlarını daha anlaşılır ve okunabilir hale getirir.

Veri Çerçeveleri ile Uyumlu: dplyr, veri çerçeveleri üzerinde işlem yapmak için özel olarak tasarlanmıştır. Bu, kullanıcıların veri çerçeveleriyle ilgili işlemleri kolayca gerçekleştirmesini sağlar.

Temiz ve Hızlı Kodlama: dplyr, veri manipülasyonu işlemlerini hızlı ve temiz bir şekilde gerçekleştirmeyi sağlar. Kullanıcılar, kısayol fonksiyonları ve zincirleme (chaining) işlemleri gibi özellikleri kullanarak veri manipülasyonunu daha etkili bir şekilde gerçekleştirebilirler.

Çeşitli İşlevler ve İşlemler: dplyr, veri çerçeveleri üzerinde filtreleme, toplama, sıralama, gruplama, birleştirme ve özetleme gibi birçok işlemi gerçekleştirmek için çeşitli fonksiyonlar sunar. Bu fonksiyonlar, veri manipülasyon işlemlerini kolaylaştırır ve veri analizi sürecini hızlandırır.

Örnek 3(Tidyverse)

R programlama dilinde veri analizi ve görselleştirme için kapsamlı bir koleksiyon ve bir dizi pakettir. Tidyverse, veri analizini daha kolay, daha hızlı ve daha etkili hale getirmeyi amaçlayan bir dizi R paketini bir araya getirir.

Tidyverse koleksiyonunda yer alan bazı ana paketler şunlardır:

ggplot2: Veri görselleştirmesi için güçlü bir paket. İki boyutlu grafikler oluşturmak için kullanılır ve veriye dayalı grafiklerin kolayca özelleştirilmesine olanak tanır.

dplyr: Veri manipülasyonu ve işleme için kullanılan bir paket. Veri çerçevelerinde filtreleme, toplama, sıralama ve özetleme gibi işlemleri gerçekleştirmek için kullanılır.

tidyr: Veri düzenleme ve dönüştürme için bir paket. Veri çerçevelerinde genişten uzuna (wide to long) veya uzundan genişe (long to wide) dönüşümleri gerçekleştirmek için kullanılır.

readr: Veri okuma ve yazma için hızlı ve etkili bir paket. Çeşitli veri formatlarını (CSV, Excel, txt vb.) okumak ve yazmak için kullanılır.

purrr: Fonksiyonel programlama için bir paket. Liste ve veri çerçeveleri üzerinde işlem yapmak için kullanılır ve veri analizi işlemlerini kolaylaştırır.

Örnek 4(Tidyr)

tidyr, R programlama dilinde veri düzenleme ve dönüştürme işlemleri için kullanılan bir pakettir. Veri çerçeveleri üzerinde sıkça karşılaşılan genişten uzuna (wide to long) veya uzundan genişe (long to wide) dönüşümleri gerçekleştirmek için tasarlanmıştır.

tidyr paketinin başlıca işlevleri şunlardır:

Veri Düzenleme: tidyr, veri çerçevelerindeki düzensiz veya karmaşık yapıları düzenlemek için kullanılır. Örneğin, sütun adlarını gözlemler halinde veriye dönüştürme veya veriyi daha okunabilir bir formata getirme gibi işlemler yapılabilir.

Genişten Uzuna Dönüşüm (Long Format): Veri çerçevelerinde sütunlar halinde temsil edilen verileri, satır halinde temsil edilen bir formata dönüştürmek için kullanılır. Bu, özellikle tekrar eden gözlemlerin olduğu durumlarda veri analizi ve görselleştirme işlemleri için kullanışlıdır.

Uzundan Genişe Dönüşüm (Wide Format): Veri çerçevelerinde satır halinde temsil edilen verileri, sütunlar halinde temsil edilen bir formata dönüştürmek için kullanılır. Bu, özellikle zaman serisi verileri veya mevcut gözlemleri gruplayarak özetlemek için kullanışlıdır

Örnek 5(WDİ)

“WDI” genellikle “World Development Indicators”ın kısaltması olarak kullanılır ve Dünya Bankası tarafından toplanan küresel kalkınma göstergelerini ifade eder. Bu göstergeler, ülkelerin sosyo-ekonomik durumlarını, kalkınma düzeylerini ve diğer önemli faktörleri analiz etmek için kullanılır.

WDI’nın önemi birkaç yönden gelir:

  1. Küresel Kalkınma Analizi: WDI, farklı ülkelerin kalkınma seviyelerini karşılaştırmak ve analiz etmek için önemli bir kaynaktır. Gelir düzeyi, eğitim, sağlık, yoksulluk, işsizlik ve diğer göstergeler gibi çeşitli faktörlerin yanı sıra ekonomik büyüme, ticaret ve finansal göstergeler gibi makroekonomik verileri içerir.

  2. Karar Alma Süreçlerinde Kullanım: WDI, hükümetler, uluslararası kuruluşlar, sivil toplum kuruluşları ve akademisyenler tarafından kalkınma politikalarını belirleme ve değerlendirme süreçlerinde kullanılır. Bu göstergeler, kalkınma projelerinin planlanması ve uygulanmasında stratejik kararların alınmasına yardımcı olur.

  3. Kaynakların Dağıtımında Kullanım: WDI, sınırlı kaynakların etkili bir şekilde dağıtılmasını sağlamak için kullanılır. Hangi alanlara ve bölgelere daha fazla yatırım yapılması gerektiği konusunda rehberlik sağlar.

  4. İzleme ve Değerlendirme: WDI, kalkınma hedeflerinin izlenmesi ve ilerlemenin değerlendirilmesi için kullanılır. Bu, belirlenen hedeflere ulaşılması için gerekli politika ve programların etkinliğinin değerlendirilmesine yardımcı olur.

Paket yükleme

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'tibble' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(WDI)
## Warning: package 'WDI' was built under R version 4.3.3
library(dplyr)
library(ggplot2)
library(explore)
## Warning: package 'explore' was built under R version 4.3.2

Analizimde gerekli olan paketleri yükledim #### Veri Yükleme ve Temizleme

Data <- WDI(country="all", indicator= c("SP.POP.TOTL","SP.POP.1564.TO.ZS","NY.GDP.MKTP.CD"), start=2000, end = 2020)

SP.POP.TOTL Ülkelerin nüfüsü SP.POP.1564.TO.ZS Ülkenin 15-64 arasi nüfüs oranı NY.GDP.MKTP.CD gayri safi yurt içi hasıla

describe_all(Data)
## # 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 SP.POP.TOTL       dbl      21    0.4   5521     9609    2.82e 8  7.82e 9
## 6 SP.POP.1564.TO.ZS dbl      21    0.4   5526       47.3  6.31e 1  8.61e 1
## 7 NY.GDP.MKTP.CD    dbl     211    3.8   5340 13964732.   2.00e12  8.78e13
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 SP.POP.TOTL       dbl       0    0     4512     9609    3.19e 7  1.41e 9
##  6 SP.POP.1564.TO.ZS dbl       0    0     4515       47.3  6.32e 1  8.61e 1
##  7 NY.GDP.MKTP.CD    dbl     190    4.2   4326 13964732.   3.04e11  2.14e13
##  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    2.01e 3  2.02e 3
##  5 SP.POP.TOTL       dbl       0      0   4051     9609    3.48e 7  1.41e 9
##  6 SP.POP.1564.TO.ZS dbl       0      0   4053       47.3  6.32e 1  8.61e 1
##  7 NY.GDP.MKTP.CD    dbl       0      0   4053 13964732.   3.24e11  2.14e13
##  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

Bireysel ülke seçimi ve grafik çizme

Singapur <- Data %>% filter(iso2c == "SG")
ggplot(Singapur,aes(x=year,y=SP.POP.1564.TO.ZS))+
    geom_line()+
  labs(title="Yıllara göre singapurun 15-64 yaş arası nüfüs oranı",y="Nüfüs oranı")

ggplot(Singapur,aes(x=year,y=NY.GDP.MKTP.CD))+
    geom_line()+
  labs(title="Yıllara göre singapurun 15-64 yaş arası Gayrı safi yürt içi hasılası",y="GSYH")

Yil seçimi

Data_2020 <- Data %>% filter(year == 2018)
ggplot(Data_2020, aes(x=SP.POP.TOTL, y=SP.POP.1564.TO.ZS, label=iso2c, colour=region)) +
  labs(title = "Ülkelerin 15-64 arası nüfüs oranı")+
  geom_point(position = "jitter") +
  geom_text()+
  scale_x_continuous(labels = scales::comma)

Verim katsayısını bulma

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)

Çalişebilen nüfüs ve Verim arasındaki ilişki

Monaco <- Data %>% filter(iso2c =="MC")
ggplot(Monaco,aes(x=year))+
  geom_line(aes(y=verim),colour="red")+
  geom_line(aes(y=SP.POP.1564.TO.ZS),colour="green")+
  labs(title="Monaconun Verimi ve 15-64 yaş arası nüfüs oranı")+
  geom_vline(xintercept = 2008)

2008 den sonraki 15-64 arasi nüfüs oranın düşüyle birlikte Verimde azalmaktadır.Burada kirmizi Verim katsayısını, Yeşil 15-64 nüfüs oranını göstermekte.

Ödev insani sermaye ve Verim

library(readxl)
## Warning: package 'readxl' was built under R version 4.3.2
pwt1001 <- read_excel("pwt1001.xlsx", sheet = "Data")
View(pwt1001)
sermaye <- pwt1001 %>% filter(year>1999)
describe_all(sermaye)
## # A tibble: 4 × 8
##   variable type     na na_pct unique     min    mean     max
##   <chr>    <chr> <int>  <dbl>  <int>   <dbl>   <dbl>   <dbl>
## 1 iso3c    chr       0    0      183   NA      NA      NA   
## 2 country  chr       0    0      183   NA      NA      NA   
## 3 year     dbl       0    0       20 2000    2010.   2019   
## 4 hc       dbl     760   20.8   2901    1.07    2.51    4.35
sermaye <- na.omit(sermaye)
Data <- left_join(Data,sermaye)
## Joining with `by = join_by(country, iso3c, year)`
Data_2010 <- Data %>% filter(year==2010)
Data_2010 <- na.omit(Data_2010)
ggplot(Data_2010, aes(x=verim, y=hc, label=iso2c, colour=region)) +
 labs(y="İnsani sermaye",x="Verim")+
  geom_point() +
  geom_text()+
   geom_hline(yintercept = 2)+
   geom_vline(xintercept = 1)

Verimi ve İnsani sermayesi en yüksek olan ülkeler:Luksembürg,Norveç ve Katar