Bu R Markdown’un hazırlanma amacı daha önce paylaştığım Yıldız Teknik Üniversitesi’ndeki akademisyenlerin verilerininin EDA (Explotary Data Analysis) yöntemiyle incelenmesi.


Veri Seti ve Paketler

Veri http://www.yarbis1.yildiz.edu.tr adresinden alınmıştır ve veriye http://www.github.com/sercandogan/yarbisdata adresinden ulaşılabilir.

Paketler
library(tidyverse)
library(reshape2)
library(treemap)
Veri Seti

academicians.csv temel veri setidir ve içinde akademisyenlerin yayın, ilgilendiği alan sayısı, proje ve verdiği ders sayısını içerir.

departments.csv bölümlerin bağlı olduğu fakülte listesini içerir.

edu <- read_csv('academicians.csv')
departments <- read_csv('departments.csv')
Değişkenler
glimpse(edu)
## Observations: 1,781
## Variables: 8
## $ birim          <chr> "Atatürk İlkeleri ve İnkılap Tarihi", "Atatürk ...
## $ isim           <chr> "Fahriye Dinçer", "Mehmet Beşikçi", "Ercan Kara...
## $ arastirma_alan <chr> "0", "5", "0", "5", "2", "5", "2", "12", "5", "...
## $ proje          <int> 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 0, 7, 5, 0, 1, 0,...
## $ yayin          <int> 22, 24, 19, 13, 6, 0, 0, 180, 107, 41, 45, 33, ...
## $ ders           <int> 13, 1, 4, 1, 0, 1, 2, 0, 68, 4, 5, 6, 1, 9, 1, ...
## $ toplam         <int> 35, 33, 23, 19, 8, 6, 4, 192, 181, 53, 50, 46, ...
## $ X8             <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
  • birim : Akademisyenin görevli olduğum bölüm/birim
  • isim : Akademisyen İsmi
  • arastirma_alan : Akademisyenin yarbiste paylaştığı araştırma alanı sayısı
  • proje : Akademisyenin yarbiste paylaştığı proje sayısı
  • yayin : Akademisyenin yarbiste paylaştığı yayın sayısı
  • ders : Akademisyenin yarbiste paylaştığı ders sayısı
  • toplam : Yayın, ders, araştırma alanı, proje sayılarının toplamı (Bu değişkeni Kullanmayacağım)
  • X8: Boş kolon.
glimpse(departments)
## Observations: 67
## Variables: 2
## $ birim   <chr> "Atatürk İlkeleri ve İnkılap Tarihi", "Batı Dilleri ve...
## $ fakulte <chr> "Rektörlük", "Fen-Edebiyat", "Rektörlük", "Elektrik-El...
  • birim : bölüm/birim ismi
  • fakulte : bölümün/birimin bağlı olduğu fakülte

Veri Düzenleme

edu <- edu %>%
  mutate(arastirma_alan = as.integer(arastirma_alan),
         birim = ifelse(birim == '<NA>',NA,birim),
         yayin = ifelse(yayin == 0,NA,yayin)) %>%
  select(-c(X8,toplam))



departments <- departments %>% 
  mutate(birim = factor(birim),
         fakulte = factor(fakulte))

edu$birim <- as.factor(edu$birim)


edu <- left_join(edu,departments, by = 'birim')

edu$birim <- as.factor(edu$birim)

Veriyi Düzenleyip left_join ile iki tabloyu birleştirdim. Ayrıca birim ve fakulte değişkeni kategorik veri olduğu için chr türünden factor türüne değiştirildi. Ayrıca yayın sayısı 0 olan akademisyenlerin yayınlarını yarbis sistemine girmediğini varsayarak değeri NA değiştirdim.

Özet

summary(edu)
##                  birim          isim           arastirma_alan  
##  Makine Mühendisliği: 112   Length:1781        Min.   : 0.000  
##  İnşaat Mühendisliği: 104   Class :character   1st Qu.: 0.000  
##  Mimarlık           :  84   Mode  :character   Median : 1.000  
##  Kimya              :  79                      Mean   : 2.307  
##  Matematik          :  73                      3rd Qu.: 4.000  
##  (Other)            :1317                      Max.   :27.000  
##  NA's               :  12                      NA's   :1       
##      proje            yayin             ders        
##  Min.   : 0.000   Min.   :  1.00   Min.   :  0.000  
##  1st Qu.: 0.000   1st Qu.:  6.00   1st Qu.:  0.000  
##  Median : 1.000   Median : 15.00   Median :  1.000  
##  Mean   : 3.066   Mean   : 24.26   Mean   :  3.903  
##  3rd Qu.: 4.000   3rd Qu.: 30.00   3rd Qu.:  6.000  
##  Max.   :86.000   Max.   :346.00   Max.   :102.000  
##                   NA's   :162                       
##                 fakulte   
##  Fen-Edebiyat       :346  
##  İnşaat             :220  
##  Elektrik-Elektronik:204  
##  Makine             :195  
##  Kimya-Metalurji    :187  
##  (Other)            :579  
##  NA's               : 50

Toplam akademisyen sayısı

nrow(edu)
## [1] 1781

Bilinmeyen değer sayısı

na_count <-sapply(edu, function(y) sum(length(which(is.na(y)))))

na_count
##          birim           isim arastirma_alan          proje          yayin 
##             12              4              1              0            162 
##           ders        fakulte 
##              0             50

Fakültelerdeki Akademisyen Sayısı

qplot(reorder(fakulte,fakulte,length),data = edu) + 
  coord_flip() + 
  scale_y_continuous(limits = c(0,400))

Bölümlerdeki Akademisyen Sayısı

ggplot(edu, width = 1) + 
  geom_bar(aes(reorder(birim,birim,length))) +
  coord_flip() +
  scale_y_continuous(limits = c(0,120)) 

box1 <- ggplot(edu) + geom_boxplot(aes(factor(0),arastirma_alan),na.rm = T) + coord_flip() 
box2 <- ggplot(edu) + geom_boxplot(aes(factor(0),proje),na.rm = T) + coord_flip()
box3 <- ggplot(edu) + geom_boxplot(aes(factor(0),yayin),na.rm = T) + coord_flip()
box4 <- ggplot(edu) + geom_boxplot(aes(factor(0),ders),na.rm = T) + coord_flip()


layout <- matrix(c(1,2,3,4),4,1,byrow=TRUE)

multiplot(box1,box2,box3,box4, layout = layout)

Veride birçok aykırı değer olduğunu görüyoruz.

Peki ortalama yayın, araştırma alanı, ders ve proje sayısı kaç?

edu %>%
  summarise(mean_yayin = mean(yayin, na.rm = T),
          mean_arastirma_alan = mean(arastirma_alan, na.rm = T),
          mean_ders = mean(ders),
          mean_proje = mean(proje))
## # A tibble: 1 x 4
##   mean_yayin mean_arastirma_alan mean_ders mean_proje
##        <dbl>               <dbl>     <dbl>      <dbl>
## 1   24.25757            2.307303  3.902864   3.066255

Fakültelerdeki yayın dağılımına bakalım:

ggplot(edu) +
  geom_boxplot(aes(fakulte,yayin), na.rm = T) + 
  coord_flip()

En çok yayın yapan 10 akademisyen

edu %>%
  arrange(desc(yayin)) %>%
  head(10) %>%
  select(birim,isim,yayin)
## # A tibble: 10 x 3
##                                birim                isim yayin
##                               <fctr>               <chr> <int>
##  1               Makine Mühendisliği      Surkay Akbarov   346
##  2                Kimya Mühendisliği      Sabriye Pişkin   309
##  3                 Gıda Mühendisliği        Osman SAĞDIÇ   294
##  4 Metalurji ve Malzeme Mühendisliği   Necmettin MARAŞLI   205
##  5                Kimya Mühendisliği Emek MÖRÖYDOR DERUN   202
##  6                   Biyomühendislik  Adil Allahverdiyev   198
##  7                   Biyomühendislik      Zeynep Akdeste   198
##  8                Kimya Mühendisliği         Mualla Öner   191
##  9                           Felsefe   A. Teyfur ERDOĞDU   187
## 10                             Kimya        Zekiye ÇINAR   187

Kimya-Metalurji Fakültesindeki bölümlerdeki yayın dağılımına bakmak istiyorum.

edu %>% 
  filter(fakulte == 'Kimya-Metalurji' & birim != 'Kimya-Metalurji Fakültesi') %>%
ggplot() +
  geom_boxplot(aes(birim,yayin), na.rm = T) + 
  coord_flip()

Özellikle Kimya Mühendisliği, Gıda Mühendisliği ve Biyomühendislik bölümlerinin yayın yapma sayıları diğer bölümlere göre çok yüksek.


Korelasyon Matrisi
cormat <- round(cor(edu[3:6], use = 'pairwise.complete.obs'),2)
melted_cormat <- melt(cormat)

ggplot(melted_cormat) +
  geom_tile(aes(Var1,Var2,fill = value), color = 'white') + 
  scale_fill_gradient2(low = "blue", high = "red", mid = "white", 
   midpoint = 0, limit = c(-1,1), space = "Lab", 
    name="Correlation")+
geom_text(aes(Var2, Var1, label = value), color = "black", size = 4)

Yayın Yapma ve Proje arasında pozitif güçlü bir ilişki var diyebiliriz. (Korelasyon > +0.5)

Scatterplot Gösterimi
ggplot(edu, aes(x = proje, y = yayin)) + 
  geom_point(na.rm = T) +
  stat_smooth(method = 'lm', na.rm = T)

Fakültelerdeki Toplam Yayın ve Proje Sayısı
sum_proje_yayin <- edu %>%
      group_by(fakulte) %>%
      summarise(sum_yayin = sum(yayin, na.rm = T),
                sum_proje = sum(proje, na.rm = T))

sum_proje_yayin
## # A tibble: 14 x 3
##                       fakulte sum_yayin sum_proje
##                        <fctr>     <int>     <int>
##  1                     Eğitim      2461       160
##  2        Elektrik-Elektronik      3081       531
##  3                    Enstitü        58         3
##  4               Fen-Edebiyat      8970      1134
##  5 Gemi İnşaatı ve Denizcilik      1144       156
##  6 İktisadi ve İdari Bilimler      1936       130
##  7                     İnşaat      5085       903
##  8            Kimya-Metalurji      7684      1293
##  9                     Makine      3910       486
## 10                   Mimarlık      2371       313
## 11                  Rektörlük       213        25
## 12           Sanat ve Tasarım       607       135
## 13             Yüksek Okullar       425        73
## 14                       <NA>      1328       119

Çubuk Grafiği ile gösterimi

melted_sumvar <- melt(sum_proje_yayin, id.vars = 'fakulte', na.rm = T)

ggplot(melted_sumvar) +
  geom_bar(mapping = aes(x = fakulte, y = value, fill = variable),
           stat = 'identity',
           position = 'dodge') + 
  coord_flip() + 
  scale_fill_discrete(name="Kategori",
                      
                      labels=c("Yayınlar", "Projeler"))+
  xlab("Fakülte")+
  ylab("Sayı")

Fen Edebiyat Bölümündeki toplam yayın sayıları

gg_sum_fen <- edu %>% 
                filter(fakulte == 'Fen-Edebiyat') %>%
                group_by(birim) %>%
                summarise(sum_yayin = sum(yayin, na.rm = T),
                              sum_proje = sum(proje, na.rm = T))


melted_sum_fenede <- melt(gg_sum_fen, id.vars = 'birim')

ggplot(melted_sum_fenede) +
  geom_bar(mapping = aes(x = birim, y = value, fill = variable),
           stat = 'identity',
           position = 'dodge') + 
  coord_flip() + 
  scale_fill_discrete(name="Kategori",
                      
                      labels=c("Yayınlar", "Projeler"))+
  xlab("Bölüm")+
  ylab("Sayı")

Yayın yapma konusunda Kimya ve Kimya Mühendisliği bölümünün büyük bir yoğunluğa sahip olduğunu görüyoruz.


treemap_data <- edu %>%
  group_by(fakulte,birim) %>%
  summarise(sum_yayin = sum(yayin,na.rm = T))

treemap(treemap_data,
         index = 'birim',
         vSize = 'sum_yayin',
         vColor = 'fakulte',
         type = 'categorical',
         palette = 'Set3',
         title = 'Fakültelerdeki Bölümlerin Çıkardığı Yayın Sayısı',
         fontsize.title = 14)


Pareto İlkesi (80/20 Kuralı )

Pareto ilkesi, Pareto Dağılımdan gelir. Temelde, birçok olay için yaklaşık olarak etkilerin %80’i etkenlerin %20’sinden kaynaklanır der. Ben de yayın sayısını dağılımına bakmak istedim. En çok yayın çıkaran %20’nin toplam yayınların %60’ına denk geliyor.

## # A tibble: 1 x 1
##    sum_freq
##       <dbl>
## 1 0.6053523

Ancak eğer en çok yayın çıkaran %28’e bakarsak, toplam yayın sayısının %71’ine denk geliyor. Bu da bir nevi, Pareto ilkesinin temelindeki büyük olayların nadir, küçük olayların fazla olmasına çıkıyor. Az sayıda çok yayın çıkaran olmasına rağmen, bu azınlık toplam yayın sayısının büyük bir miktarına denk geliyor.

## # A tibble: 1 x 1
##   sum_freq
##      <dbl>
## 1 0.710259