Ana içeriğe atla

R’de Ağ Analizi: Merkezilik Ölçümleri

Merkeziliğin tanımını keşfedin, ağ analizinde hangi tür merkezilik ölçümlerinin bulunduğunu öğrenin ve belirli bir ağ için en uygun olanını seçin!
Güncel 3 Eki 2026  · 10 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Bir ağ analizi yaparken yapmanız gereken en önemli şeylerden biri, bir sosyal ağ içindeki bir düğümün merkeziliğini belirlemektir. Başka bir deyişle, analiz edeceğiniz bir ağ varsa, hangi düğümün diğerleri üzerinde en fazla etkiye sahip olduğunu bulmak istersiniz. Bu eğitim tam olarak bunu ele alıyor. Aşağıdaki konular hakkında daha fazla bilgi edineceksiniz:

Merkeziliğin Tanımı

Günümüzde, bir ağın temel düğümlerini bulmayı öğrenmek, ağ bilimi alanında çalışmak isteyen her araştırmacı için hayati önem taşır. İlerledikçe, farklı bilimlerin bağlamındaki ağlar daha büyük ve daha karmaşık hale gelir. Bu nedenle, her düğümü titizlikle analiz etmek maliyetli, zaman alıcı ve bir bakıma imkânsızdır. Merkezilik tanımı şu soruya yanıt verir: "Ağdaki en önemli düğüm hangisidir?"

Merkezilik, bir ağdaki her tepeye (vertex) diğerleri üzerindeki etkisine göre sayısal bir değer atayan bir işlevdir. Bir düğümün önemi, ağ içindeki konumuyla belirlenir. Ağın türüne bağlı olarak, önemin ne anlama geldiğini betimleyebilirsiniz. Bu, bir sosyal ağdaki etkili bir kişi ya da kentsel ağlardaki kilit altyapı düğümleri olarak tanımlanabilir.

Merkezilik Ölçümleri: Türler

Merkezilik indeksleri yerel ve küresel kategorilerde sınıflandırılabilir.

Yerel Merkezilik Ölçümleri

Yerel bir merkezilik ölçümüne örnek, her düğümün sahip olduğu bağlantı sayısını sayan derece merkeziliğidir; bu, daha geniş ağla hızlıca bağlantı kurabilen bireyleri işaret eder. Ağın geri kalanını dikkate almadığı ve değerine verdiğiniz önemin ağın boyutuna güçlü şekilde bağlı olduğu için yerel bir ölçümdür.

Derece gibi yaygın merkezilik ölçümlerini hesaplamak için igraph paketini kullanabilirsiniz. Bunu library() işlevinin yardımıyla kullanılabilir hâle getirebilirsiniz:

library(igraph)

Herhangi bir merkezilik hesabı yapmadan önce bir ağa ihtiyacınız vardır. Bunu yapmak için, örnek grafiği oluşturmak üzere Erdos-Renyi modeli gibi rastgele algoritmalardan birini kullanabilirsiniz.

Erdos-Renyi modeli, 1959 yılında iki büyük matematikçi Paul Erdos ve Alfred Renyi tarafından tanıtıldı. Bu model, her düğüm çiftinin bir kenar oluşturmak üzere eşit olasılıkla bağlandığı rastgele grafikleri üretmek için kullanışlıdır. Bu rastgele grafik modelinde, düğümlerin çoğu yaklaşık olarak eşit sayıda bağlantıya sahiptir ve modelin derece dağılımı genellikle binom ya da Poisson’dur. Bu model, çeşitli özelliklere sahip grafiklerin varlığını olasılıksal yöntemlerle kanıtlamak ya da gerçek ağlarla yapısal açıdan karşılaştırma yapmak için kullanılabilir.

Erdos-Renyi modeline bir örnek görmek için, igraph paketindeki sample_gnm() işlevini kullanabilirsiniz.

# n = düğüm sayısı, m = kenar sayısı
erdos.gr <- sample_gnm(n=10, m=25) 

plot(erdos.gr)

model

Bu, 10 düğüm ve 25 kenardan oluşan, yönsüz bir ağdır; yani bir düğümden diğerine kenarın yönünün dikkate alındığı yönlü grafiğin aksine, kenarlar çift yönlüdür.

Bu grafiğin derece merkeziliği centr_degree() işlevi kullanılarak hesaplanabilir:

degree.cent <- centr_degree(erdos.gr, mode = "all")
degree.cent$res

##  [1] 2 3 5 6 7 7 6 3 6 5

Gösterildiği gibi, örnek ağda 1 düğümü en yüksek derece merkeziliği değerlerine sahiptir.

Küresel Merkezilik Ölçümleri

Küresel merkezilik ölçümleri ise ağın tamamını dikkate alır. En yaygın kullanılan küresel merkezilik ölçümlerinden biri yakınlık merkeziliğidir (closeness). Bu ölçüm, ağ içindeki diğer tüm düğümlere yakınlığına göre her düğüme puan verir.

Tüm düğümler arasındaki en kısa yolları hesaplar, ardından her düğüme, en kısa yolların toplamına dayanan bir puan atar ve tüm ağı en hızlı şekilde etkileme konumunda olan bireyleri bulmak için kullanışlıdır.

Tek bir küme içindeki merkezi tepe noktalarını bulmak için Yakınlık ölçümünün kullanılması önerilir. Bunu igraph paketindeki closeness() işleviyle hesaplayabilirsiniz.

closeness.cent <- closeness(erdos.gr, mode="all")
closeness.cent

##  [1] 0.05882353 0.06250000 0.07142857 0.08333333 0.09090909 0.09090909
##  [7] 0.08333333 0.06250000 0.08333333 0.07692308

Yakınlık merkeziliği sonuçlarına göre, derece merkeziliğinin aksine, 1 ve 9 düğümleri tüm ağ boyunca en yüksek merkezilik değerlerine sahiptir. Bu, bu düğümlerin ağın akışında eşit derecede önemli rollere sahip olduğu anlamına gelir.

En Uygun Merkezilik Ölçümü Nasıl Seçilir

Bir ağın en etkili düğümlerini belirlemek için farklı türde merkezilik ölçümleri olsa da, belirli bir ağ için en uygun ölçümü seçmek ve uygulamak üzere ağ biliminde henüz fikir birliğiyle kabul edilmiş bir süreç yoktur.

Örnek olarak, aşağıdaki grafik, "altgraf merkeziliği" ile "topolojik katsayı" adlı iki merkezilik ölçümü arasındaki saçılım grafiğini göstermektedir. Kırmızı çizgi, bu iki merkezilik ölçümü arasında güçlü bir negatif ilişkiyi gösterir.

plot

Yukarıdaki gösterimden, bu iki merkeziliğin ters ilişkiye sahip olduğu için, bir ağ içindeki merkezi düğümleri farklı desenlere göre ayırt edebileceğini ve dolayısıyla merkezilik hesaplamasının sonucunun merkezilik türüne göre değişken olacağını çıkarabilirsiniz.

Merkezi tepe noktalarını belirlemek için hâlihazırda 140'tan fazla ölçüt bulunmaktadır, ancak etkili düğümleri hesaplamak için hangisi kullanılmalıdır?

Ayrıca, bir ağın topolojik özellikleri merkezilik hesaplamalarının sonucunu etkilediğinden, ağ topolojisine dayalı olarak etkili tepe noktaları hakkında en yüksek bilgi düzeyine sahip ölçütü seçmeniz gerekir.

CINNA (Central Informative Nodes in Network Analysis), CRAN havuzuna gönderilmiş, merkezilik ölçümlerini hesaplamak, analiz etmek ve karşılaştırmak için bir R paketidir.

Bu paketin nasıl kullanılacağını görmek için, paketin içindeki Zachary adlı veri setlerinden birini kullanarak başlayın. Bu veri seti, bir üniversite karate kulübü üyeleri arasındaki arkadaşlıkları göstermektedir:

library(CINNA)

data("zachary")

plot(zachary)

undirected graph

Bu, 34 tepe ve 78 kenardan oluşan yönsüz bir grafiktir. Unutmayın ki yönsüz bir grafikte kenarların yönü yoktur: çift yönlüdürler. Örneğin: A<--->B == B<--->A.

Grafik yapısına göre hesaplanabilir merkezilik türlerini belirlemek için proper_centralities() işlevi faydalı olabilir.

pr_cent<-proper_centralities(zachary)

##  [1] "subgraph centrality scores"                      
##  [2] "Topological Coefficient"                         
##  [3] "Average Distance"                                
##  [4] "Barycenter Centrality"                           
##  [5] "BottleNeck Centrality"                           
##  [6] "Centroid value"                                  
##  [7] "Closeness Centrality (Freeman)"                  
##  [8] "ClusterRank"                                     
##  [9] "Decay Centrality"                                
## [10] "Degree Centrality"                               
## [11] "Diffusion Degree"                                
## [12] "DMNC - Density of Maximum Neighborhood Component"
## [13] "Eccentricity Centrality"                         
## [14] "eigenvector centralities"                        
## [15] "K-core Decomposition"                            
## [16] "Geodesic K-Path Centrality"                      
## [17] "Katz Centrality (Katz Status Index)"             
## [18] "Kleinberg's authority centrality scores"         
## [19] "Kleinberg's hub centrality scores"               
## [20] "clustering coefficient"                          
## [21] "Lin Centrality"                                  
## [22] "Lobby Index (Centrality)"                        
## [23] "Markov Centrality"                               
## [24] "Radiality Centrality"                            
## [25] "Shortest-Paths Betweenness Centrality"           
## [26] "Current-Flow Closeness Centrality"               
## [27] "Closeness centrality (Latora)"                   
## [28] "Communicability Betweenness Centrality"          
## [29] "Community Centrality"                            
## [30] "Cross-Clique Connectivity"                       
## [31] "Entropy Centrality"                              
## [32] "EPC - Edge Percolated Component"                 
## [33] "Laplacian Centrality"                            
## [34] "Leverage Centrality"                             
## [35] "MNC - Maximum Neighborhood Component"            
## [36] "Hubbell Index"                                   
## [37] "Semi Local Centrality"                           
## [38] "Closeness Vitality"                              
## [39] "Residual Closeness Centrality"                   
## [40] "Stress Centrality"                               
## [41] "Load Centrality"                                 
## [42] "Flow Betweenness Centrality"                     
## [43] "Information Centrality"

Sonuç, yönsüz-ağırlıksız bir yapı için 43 popüler merkezilik adını gösteren bir liste içerir.

Listedeki ilk beş merkezilik ölçümünü seçip calculate_centralities() işlevine geçirelim; çünkü hesaplanabilir tüm merkeziliklerin hesaplanması zaman alıcı olacaktır.

Bir sonraki adımda, en bilgilendirici merkezilik ölçümünü ayırt etmek için Temel Bileşenler Analizi (PCA) algoritmasını kullanırsınız.

Unutmayın ki PCA, doğrusal analiz için kullanılan bir boyut indirgeme tekniğidir.

Analizin bu adımında, her merkezilik ölçümü birer değişken olarak ele alınır. Dolayısıyla, temel bileşenlerle ilişkili merkezilikler, merkezi düğümleri belirlemede en önemlileridir. PCA’daki katkı ölçütü, değişkenlerin temel bileşenlere nasıl katkıda bulunduğunu gösterir.

Başka bir deyişle, değişkenlerin katkıları, temel bileşenlere göre değişkenliği (yüzde olarak) ifade eder. PCA yöntemindeki bu ölçüt sayesinde, merkezi düğümler hakkında daha fazla bilgiye sahip olan merkezilikleri ve bu nedenle bir ağın etkili tepe noktalarını daha doğru tanımlayabilen ölçümü tespit edebilirsiniz. Bu nedenle, merkeziliklerin sıralanmış katkı indeksleri aşağıdaki gibi görselleştirilebilir.

Aşağıda, bu iki son adımı ardışık olarak bir pipe operatörü %>% kullanarak uygulayacaksınız:

calculate_centralities(zachary, include = pr_cent[1:5])%>%
  pca_centralities(scale.unit = TRUE)

bar chart

Grafikte gösterildiği üzere, Beşyüzde Beş merkezilik indeksinin arasında en yüksek katkı değerine Sahip olan Barycenter Centrality'dir.

Başka bir deyişle, hesaplanan merkezilik ölçümleri arasında etkili düğümler hakkında en fazla bilgiye sahiptir. Bu nedenle, seçilen merkeziliklerden daha doğru şekilde merkezi düğümleri belirleyebilir.

Her düğümün boyutunun karşılık gelen merkezilik değerini gösterdiği bir grafik gösterimi aşağıdaki gibi olur.

visualize_graph( zachary , centrality.type="Barycenter Centrality")

graph

Buna göre, 1 düğümü en merkezi düğümdür.

Özet

Özetle, bir ağın bağlanabilirliğini nicelleştirmek için, ağ yapısına göre hesaplayabileceğiniz bazı merkezilik ölçümlerine PCA uygulamanız ve bunlar arasından en bilgilendirici olanı seçerek, karşılık gelen temel bileşenlere göre en yüksek katkı miktarını hesaplayıp açıklamanız önerilir.

Bu eğitimde önce merkezilik tanımını çizdiniz ve bazı popüler olanlardan bahsettiniz. Ardından, bir ağın küresel özelliklerinin merkezi bileşen tespitini etkileyeceğini, dolayısıyla bir ağın etkili düğümlerinin ağ topolojisine bağlı olarak farklılık göstereceğini vurguladınız.

Sonraki adımda, bir ağ içinde merkezilik analizi uygulamak için gerekli tüm işlevleri sağlayan CINNA paketini kullandınız. Bu paketle, ek bir çalışma yapmadan ağınız üzerinde merkezilik analizini gerçekleştirebildiniz. Ayrıca, bu durum merkezi düğümlerin belirlenmesinin doğruluğunu önemli ölçüde artırdı.

Konuya doğrudan dalmak ve nasıl çalıştığını görmek isterseniz, şu makaleye ve ayrıca şuna göz atın.

Yukarıdaki konuyla ilgili her türlü soru veya görüşünüz için benimle Minoo_Ashtiani üzerinden iletişime geçmekten lütfen çekinmeyin.

R hakkında daha fazla bilgi edinmek için R ile Temel Programlama Becerileri eğitimimize ve aşağıdaki kurslara göz atın:

Konular
R
Veri Bilimi

R kursları

Kurs

R’ye Giriş

4 sa
3.1M
Vektörler, listeler ve veri çerçeveleri de dahil olmak üzere R'da veri analizinin temellerini öğrenin ve gerçek veri setleriyle R pratiği yapın.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör