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 http://www.yarbis1.yildiz.edu.tr adresinden alınmıştır ve veriye http://www.github.com/sercandogan/yarbisdata adresinden ulaşılabilir.
library(tidyverse)
library(reshape2)
library(treemap)
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')
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/birimisim : Akademisyen İsmiarastirma_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 ismifakulte : bölümün/birimin bağlı olduğu fakülteedu <- 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.
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.
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)
ggplot(edu, aes(x = proje, y = yayin)) +
geom_point(na.rm = T) +
stat_smooth(method = 'lm', na.rm = T)
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 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