Vize Projesi

Projeyi Hazırlama Süreci

  • Rmarkdown açtım ve projemi isimlendirdim
  • Projeme uygun görsel yükledim
  • Projem için bir konu belirledim ve sırasıyla gereken paket ve kodları kullanarak devam ettim

###Kullandığım paketler ; WDI, tidyverse, explore,str ve left_join dir.

library(tidyverse)

tidyvers u kullanmamızın nedeni içinde işimize yarayacak gereksiz verileri temişleyecek birçok paketin bulunmasıdır. leftjoing, %>% gibi paketlere bu sayede ulaşabilliriz.

library(WDI)

dünya bankasından veritoplamak için kullanılır

SP.POP.TOTL nüfus, toplam

SP.DYN.CDRT.IN ölüm oranı death rate, crude

data_WDI <- WDI(country = "all", indicator = c("SP.DYN.CDRT.IN", "SP.POP.TOTL"), start = 2000)
str(data_WDI)
## 'data.frame':    6384 obs. of  6 variables:
##  $ country       : chr  "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
##  $ iso2c         : chr  "AF" "AF" "AF" "AF" ...
##  $ iso3c         : chr  "AFG" "AFG" "AFG" "AFG" ...
##  $ year          : int  2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 ...
##  $ SP.DYN.CDRT.IN: num  12.1 11.7 11.3 10.7 10.3 ...
##   ..- attr(*, "label")= chr "Death rate, crude (per 1,000 people)"
##  $ SP.POP.TOTL   : num  19542982 19688632 21000256 22645130 23553551 ...
##   ..- attr(*, "label")= chr "Population, total"
library(explore)
## Warning: package 'explore' was built under R version 4.2.3

R programında explore() fonksiyonu, veri analizi ve keşifsel veri görselleştirme sürecinde oldukça kullanışlı bir araçtır. Bu fonksiyon, kullanıcıya veri setinin yapısını ve ilişkilerini daha iyi anlaması için farklı grafikler ve istatistiksel özetler sunar. Bu paketi yükledikten sonra, kolayca erişebilirsiniz. Fonksiyonun temel amacı, kullanıcının hızlı bir şekilde veri setine genel bir bakış elde etmesine yardımcı olmaktır.

Bu fonksiyonu kullanarak çeşitli keşifsel analizler gerçekleştirebilirsiniz. Örneğin, değişkenler arasındaki ilişkiyi anlamak için scatterplot matrisleri oluşturabilirsiniz. Ayrıca kutu grafiği ve histogram gibi istatistiksel dağılımları görselleştirmek için de bu fonksiyondan faydalanabilirsiniz. explore() fonksiyonu aynı zamanda kategorik değişkenleri analiz etmek için de kullanılabilir. Bir faktörün frekans tablosunu veya yüzdelik dağılımını görüntülemek için bu fonksiyona başvurabilirsiniz.

Son olarak, explore() fonksiyonunda yer alan diğer seçenekler arasında aykırı değerleri tespit etme veya eksik değerlere ilişkin istatistikleri elde etme gibi işlemler bulunur.

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       24 2000        2012.         2023  
## 5 SP.DYN.CDRT.IN dbl     625    9.8   3995    0.8         8.19         21.7
## 6 SP.POP.TOTL    dbl     289    4.5   6047 9609   285615032.   7950946801

describe_all(data_WDI) kodunu girerek datayı inceleyebiliriz. Burada karakterler boş bırakılmıştır çünkü karakterlerin ortalaması, değeri gibi özellikler yok. Fakat ölüm oranları ve nüfus ortalamasına bakıldığında eksik bilgilerin olduğu görülmektedir. Ölüm oranları grafikte % 5.9 eksiktir. Mesela Armenia ölüm oranlarını vermemiş ve değeri “NA” olarak görülmektedir. Ayrıca tabloda en küçük ve en büyük değerleri de verilmiştir.

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       24 2000        2012.         2023  
## 5 SP.DYN.CDRT.IN dbl     625    9.8   3995    0.8         8.19         21.7
## 6 SP.POP.TOTL    dbl     289    4.5   6047 9609   285615032.   7950946801

%>% operatörü, veri manipülasyonu ve dönüşümü için oldukça kullanışlıdır. Genellikle dizi ve tablo benzeri veri yapılarında sıklıkla tercih edilen bu operatör, kodun okunabilirliğini arttırırken aynı zamanda işlemleri daha kolay ve hızlı hale getirir. Sonuç olarak, R Studio’da %>% operatörünün etkin biçimde kullanılması ile karmaşık verilerin analizi ve manipülasyonu daha kolay hale gelirken aynı zamanda kodun okunabilirliği de artar. Bu nedenle R Studio’da çalışan herkesin bu özelliği mutlaka değerlendirmesi önerilir.

Yukarıdaki verilerde bazı girdiler bir topluluk, üyelerden oluşan ülkeleri temsil ettiği için tam anlamıyla doğru sonucu vermez. Mesela Orta Asya ve OECD farklı ülkeleri içinde barındırır. Bu nedenle gerekli işlemlerle bunları temizlememiz gerekir.

bilgi <- WDI_data$country

bilgi datasıyla WDI datasından ülke verilerini yükleyerek ekstra bilgi alıyoruz. bu ekstrabilgi ile iki datayı birleştiriyoruz.

df <- left_join(data_WDI, bilgi)
## Joining with `by = join_by(country, iso2c, iso3c)`
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       24 2000        2012.         2023  
##  5 SP.DYN.CDRT.IN dbl     625    9.8   3995    0.8         8.19         21.7
##  6 SP.POP.TOTL    dbl     289    4.5   6047 9609   285615032.   7950946801  
##  7 region         chr     216    3.4      9   NA          NA            NA  
##  8 capital        chr     216    3.4    211   NA          NA            NA  
##  9 longitude      chr     216    3.4    211   NA          NA            NA  
## 10 latitude       chr     216    3.4    211   NA          NA            NA  
## 11 income         chr     216    3.4      7   NA          NA            NA  
## 12 lending        chr     216    3.4      6   NA          NA            NA
df <- df %>% filter(region != "Aggregates")

filter yaparak yeni oluşturduğum df dosyasında aggregates leri siliyorum toplulukları çıkartarak verileri daha düzenli hale getiriyorum.

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      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       24 2000       2012.         2023  
##  5 SP.DYN.CDRT.IN dbl     501    9.7   2970    0.8        8.11         21.7
##  6 SP.POP.TOTL    dbl     215    4.2   4943 9609   32268693.   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

descaribe_all ile listeyi tekrardan incelediğimde elimdeki boş verileriinceleyebiliriz

df_tr_in <- df %>% filter(iso2c == c("TR", "IN"))
ggplot(df_tr_in, aes(year, SP.DYN.CDRT.IN, color = country)) +
geom_line() +
labs(x = "Year", y = "Death Rate (per 1,000)", title = "Death By Year (TR And IN)")
## Warning: Removed 2 rows containing missing values (`geom_line()`).

İçinde Türkiye ve Hindistanın yıllara göre ölüm oranını gösteren bi grafik oluşturdum. grafikte kırmızı çizgi Hindistanı, yeşil çizgi Türkiyeyi temsil etmektedir. Benzer bir dalgalanmaya sahip olunan bu iki ülkede Hindistanın nüfus farkından kaynaklanan bir yükseltisi bulunmaktadır. Grafikte 2000 ile 2020 arası görülmekte ve 2018 den 2020 ye doğru yükselen bir şekil belirmektedir. 2019 yılında yaşanan pandemiden kaynaklanmış olma ihtimali çok yüksektir.

eksik_veriler <- df %>% group_by(country)%>%
  summarise(kayip = sum(is.na(SP.DYN.CDRT.IN)))

Burada datamdaki eksik verileri buldum. Bir sonraki işlemlerde eksik verileri temizleyerek projeyi düzenlemede kullanacağım.