Vize projesi

R ve R studio

1. R:

  • Tanım: R, istatistiksel hesaplama ve veri analizi için açık kaynaklı bir programlama dilidir.

  • Özellikler:

    • Geniş bir istatistiksel ve grafiksel işlevler koleksiyonu sunar.

    • Çeşitli paketlerle genişletilebilir ve kullanıcılar tarafından geliştirilebilir.

  • Kullanım Alanları:

    • Veri analizi, istatistiksel modelleme, grafikler oluşturma.

    • Bilimsel araştırmalar, akademik çalışmalar, endüstriyel uygulamalar.

2. R Studio:

  • Tanım: R Studio, R programlama dilini geliştirmek ve çalıştırmak için entegre bir geliştirme ortamıdır.

  • Özellikler:

    • Kod yazma, hata ayıklama, paket yönetimi gibi araçlar sunar.

    • Script dosyaları, çalışma alanları ve grafik pencereleriyle kullanıcı dostu bir arayüz sağlar.

  • Kullanım Alanları:

    • Veri analizi projelerinin yönetimi ve yürütülmesi.

    • R kodunun etkileşimli bir şekilde yazılması ve çalıştırılması.

3. Avantajlar:

  • R:

    • Esnek ve güçlü bir analiz aracıdır.

    • Açık kaynaklı olması, geniş bir kullanıcı topluluğu ve paketlerin sürekli geliştirilmesi anlamına gelir.

  • R Studio:

    • Kullanıcı dostu bir arayüz sağlar, R kodunu daha verimli bir şekilde yazmayı ve yönetmeyi sağlar.

    • Proje tabanlı çalışma ve hızlı hata ayıklama gibi özellikler sunar.

4. Sonuç:

  • R ve R Studio, veri analizi, istatistiksel modelleme ve programlama alanlarında kullanıcıların ihtiyaçlarını karşılamak için güçlü araçlar sunar.

  • Kullanıcı dostu arayüz ve genişletilebilirlikleri sayesinde, araştırmacılar, veri bilimcileri ve analistler için vazgeçilmez bir çözüm sunarlar.

R paketleri nedir, Nasıl kullanılır

R paketleri, R programlama dilinin işlevselliğini genişleten ve çeşitli görevler için hazır fonksiyonlar, veri setleri ve araçlar içeren paketlerdir. Bu paketler, istatistiksel analiz, veri görselleştirme, makine öğrenimi, büyük veri işleme ve daha birçok alanda kullanılabilir. İşte R paketlerini nasıl bulabileceğiniz ve kullanabileceğiniz adımlar:

  1. Paket Bulma ve Yükleme:

    • R paketlerini bulmak ve yüklemek için CRAN (Comprehensive R Archive Network) deposunu kullanabilirsiniz. R’de install.packages("paket_adi") komutunu kullanarak bir paketi yükleyebilirsiniz. Örneğin: install.packages("ggplot2") komutu ggplot2 paketini yükler.
  2. Paket Yükleme ve Kütüphaneye Dahil Etme:

    • Bir paketi yükledikten sonra, kullanmak için R’de library(paket_adi) komutunu kullanarak kütüphaneye dahil edebilirsiniz. Örneğin: library(ggplot2) komutu ggplot2 paketini yükler ve kullanıma hazır hale getirir.
  3. Paket Fonksiyonlarını Kullanma:

    • Paket yükledikten ve kütüphaneye dahil ettikten sonra, paket içindeki fonksiyonları kullanabilirsiniz. Örneğin, ggplot2 paketindeki ggplot() fonksiyonuyla bir çizgi grafiği oluşturabilirsiniz.

Örnek paketler

1. ggplot2:

  • Tanım: ggplot2, veri görselleştirmesi için kullanılan bir R paketidir. Grammar of Graphics’in (Grafik Dilbilgisi) prensiplerine dayanır ve veriyi grafikler aracılığıyla etkili bir şekilde iletmeyi sağlar.

  • Önemi ve Kullanımı: Veri analizi sürecinde, verilerinizi grafiklerle görselleştirmek, veri keşfi yapmanızı ve keşfedilen bilgileri etkili bir şekilde iletmeyi sağlar. ggplot2, esnek bir yapıya sahip olduğu için farklı veri türlerini ve grafik türlerini destekler, böylece çeşitli analiz ihtiyaçlarını karşılar.

  • Örnek Kod:

# ggplot2 paketini yükle
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
# Örnek veri seti oluştur
veri <- data.frame(
  X = 1:10,
  Y = rnorm(10)
)

# Basit bir nokta grafiği oluştur
ggplot(veri, aes(x = X, y = Y)) +
  geom_point() +
  labs(title = "Basit Bir Nokta Grafiği", x = "X Ekseni", y = "Y Ekseni")

2. dplyr:

  • Tanım: dplyr, R’de veri işleme ve manipülasyonu için kullanılan bir pakettir. Veri setlerini filtreleme, sıralama, toplama ve birleştirme gibi temel veri işleme işlevlerini sağlar.

  • Önemi ve Kullanımı: Veri analizi sürecinde, veri temizleme, dönüştürme ve özetleme işlemleri veri kalitesini artırır ve analiz sonuçlarını daha güvenilir hale getirir. dplyr, bu işlemleri hızlı ve etkili bir şekilde gerçekleştirmenize olanak tanır, böylece analiz sürecini daha verimli hale getirir.

  • Örnek kod:

# dplyr paketini yükle
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.2
## 
## 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
# Örnek veri seti oluştur
veri <- data.frame(
  X = 1:10,
  Y = rnorm(10)
)

# Veri setini filtreleme örneği
filtreli_veri <- veri %>%
  filter(Y > 0)

# Filtrelenmiş veri setini görüntüle
print(filtreli_veri)
##    X         Y
## 1  3 0.1909840
## 2  4 1.2448583
## 3  5 1.8819850
## 4  6 2.6914255
## 5  7 0.1651482
## 6  9 0.2097606
## 7 10 1.5569555

3. caret:

  • Tanım: caret, R’de makine öğrenimi modellerinin eğitimini ve değerlendirmesini kolaylaştıran bir pakettir. Sınıflandırma, regresyon, kümeleme gibi birçok farklı makine öğrenimi algoritmasını destekler.

  • Önemi ve Kullanımı: Veri analizi sürecinde, veri setlerini modelleme ve tahmin etme yeteneği büyük önem taşır. caret, farklı makine öğrenimi algoritmalarını tek bir arayüz altında birleştirir ve model seçimi, hiperparametre ayarlama gibi işlemleri otomatikleştirir, böylece modelleme sürecini daha verimli ve etkili hale getirir.

  • Örnek kod:

# caret paketini yükle
library(caret)
## Warning: package 'caret' was built under R version 4.3.2
## Zorunlu paket yükleniyor: lattice
# Örnek veri seti yükle (iris veri seti kullanılacak)
veri <- iris

# Özellikler ve sınıf etiketlerini ayır
ozellikler <- veri[, 1:4]
siniflar <- veri[, 5]

# Karar ağacı modelini eğit
model <- train(ozellikler, siniflar, method = "rpart")

# Model sonuçlarını görüntüle
print(model)
## CART 
## 
## 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:
## 
##   cp    Accuracy   Kappa    
##   0.00  0.9430095  0.9134581
##   0.44  0.7725597  0.6690334
##   0.50  0.5123075  0.2937772
## 
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was cp = 0.

4. tidyr:

  • Tanım: tidyr, R’de veri setlerini düzenleme ve dönüştürme için kullanılan bir pakettir. Uzun formatlı (long) veya geniş formatlı (wide) veri setlerini dönüştürmek için kullanılır.

  • Önemi ve Kullanımı: Veri analizi sürecinde, veri setlerini uygun bir formatta düzenlemek analiz sürecini kolaylaştırır. tidyr, veri setlerini yeniden yapılandırmak, eksik veya bozuk veri değerlerini ele almak için kullanılır, böylece veri setlerini analiz için hazır hale getirir.

  • Örnek kod:

# tidyr paketini yükle
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.3.2
# Örnek veri seti oluştur
veri <- data.frame(
  Ogrenci = c("Ali", "Ayşe", "Ahmet"),
  Matematik = c(85, 90, NA),
  Fen = c(80, NA, 95),
  Turkce = c(75, 85, 90)
)

# Veri setini uzun formata dönüştür
uzun_veri <- veri %>%
  pivot_longer(-Ogrenci, names_to = "Ders", values_to = "Not")

# Uzun formatlı veri setini görüntüle
print(uzun_veri)
## # A tibble: 9 × 3
##   Ogrenci Ders        Not
##   <chr>   <chr>     <dbl>
## 1 Ali     Matematik    85
## 2 Ali     Fen          80
## 3 Ali     Turkce       75
## 4 Ayşe    Matematik    90
## 5 Ayşe    Fen          NA
## 6 Ayşe    Turkce       85
## 7 Ahmet   Matematik    NA
## 8 Ahmet   Fen          95
## 9 Ahmet   Turkce       90

5. shiny:

  • Tanım: shiny, R’de interaktif web uygulamaları oluşturmak için kullanılan bir pakettir. R kodunu web uygulamalarına dönüştürmek ve veri analizi sonuçlarını interaktif olarak paylaşmak için kullanılır.

  • Önemi ve Kullanımı: Veri analizi sonuçlarını paylaşmak ve işbirliği yapmak, veri analizi sürecinin önemli bir parçasıdır. shiny, R kullanıcılarının analiz sonuçlarını web tabanlı arayüzlerde paylaşmasını ve etkileşimli olarak görselleştirmesini sağlar, böylece analiz sonuçlarının anlaşılmasını artırır ve paylaşımını kolaylaştırır.

Analizler

library(WDI)
data <- WDI(country = "all", indicator = c("NY.GDP.MKTP.CD", "SP.POP.TOTL","NE.IMP.GNFS.ZS"),start=2000,end=2020)
library(explore)
## Warning: package 'explore' was built under R version 4.3.2
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'tibble' 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 '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 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.4
## ✔ lubridate 1.9.3     ✔ stringr   1.5.0
## ✔ purrr     1.0.2     ✔ tibble    3.2.1
## ── 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 NE.IMP.GNFS.ZS dbl     862   15.4   4685        4.83  4.45e 1  4.29e 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 NE.IMP.GNFS.ZS dbl     799   17.7   3717        4.83  4.80e 1  4.29e 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     2.01e 3  2.02e 3
##  5 NY.GDP.MKTP.CD dbl       0    0     4053 13964732.    3.24e11  2.14e13
##  6 SP.POP.TOTL    dbl       0    0     4051     9609     3.48e 7  1.41e 9
##  7 NE.IMP.GNFS.ZS dbl     520   12.8   3534        4.83  4.67e 1  2.21e 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_1 <- data_extra[is.na(data_extra$NE.IMP.GNFS.ZS),]
kayip_degerler_1 <- data_extra %>% group_by(country) %>%
  summarise(kayip = sum(is.na(NE.IMP.GNFS.ZS)))
data <- left_join(data_extra, kayip_degerler_1)
## 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    151       NA    NA       NA      
##  2 iso2c          chr       0      0    151       NA    NA       NA      
##  3 iso3c          chr       0      0    151       NA    NA       NA      
##  4 year           int       0      0     21     2000     2.01e 3  2.02e 3
##  5 NY.GDP.MKTP.CD dbl       0      0   3171 63099902.    4.06e11  2.14e13
##  6 SP.POP.TOTL    dbl       0      0   3170    43413     4.16e 7  1.41e 9
##  7 NE.IMP.GNFS.ZS dbl       0      0   3171        4.83  4.58e 1  2.21e 2
##  8 region         chr       0      0      7       NA    NA       NA      
##  9 capital        chr       0      0    148       NA    NA       NA      
## 10 longitude      chr       0      0    151       NA    NA       NA      
## 11 latitude       chr       0      0    151       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

singapur <- data %>% filter(iso2c == "SG")
ggplot(singapur, aes(x=year,y=NE.IMP.GNFS.ZS))+
  geom_line()+
  labs(title="Yıllara göre  Singapurun ithalata ayırdığı miktar(% gsyh)",)

özet: singapur 2008 de en yüksek ithalat harcamaları yapmiştir

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

özet 2015 te singapur 5.500.000 nufus’a ulaştı ### Yil seçimi

data_2016 <- data %>% filter(year==2016)
ggplot(data_2016, aes(x=SP.POP.TOTL, y=NE.IMP.GNFS.ZS, label=iso2c, colour=region)) + 
  geom_point() +
  geom_text()

Verim

“Verim katsayısı”, genellikle bir işlem veya sürecin ne kadar etkili ve verimli olduğunu ölçen bir terimdir. Birçok farklı bağlamda kullanılabilir, ancak genel olarak, girdi ve çıktı arasındaki ilişkiyi ifade eder.

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_2016 <- data %>% filter(year==2016)
ggplot(data_2016, aes(x=verim, y=NE.IMP.GNFS.ZS, label=iso2c, colour=region)) + 
  geom_point() +
  geom_text()+
  geom_vline(xintercept = 1)

Özet : Verimsiz ülkelerin ithalata ayırdığı miktar daha azken verimli ülkelerin ayırdıgi daha fazladır. grafığe göre en fazla ihracati yapan ülke hon kong.

Ödev

library(readxl)
## Warning: package 'readxl' was built under R version 4.3.2
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_2014 <- odev %>% filter(year==2014)
ggplot(odev_2014, aes(x=verim, y=hc, label=iso2c, colour=region)) + 
  geom_point() +
  geom_text()+
  geom_vline(xintercept = 1)+
  geom_hline(yintercept = 1)
## Warning: Removed 44 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 44 rows containing missing values or values outside the scale range
## (`geom_text()`).

Özet: Grafiğin sağ üstünde eğitime harcama yapan ve verimli ülkeler. solunda ise daha fazla eğitime yatırım yapıpta verimsiz olan ülkeler yer almakta