शुरू करेंमुफ़्त में शुरू करें

Network randomizations

पिछले अभ्यास में आपने देखा होगा कि Forrest Gump नेटवर्क की औसत पाथ लंबाई रैंडम नेटवर्क की औसत पाथ लंबाई से छोटी थी। अगर आपने कोड कुछ बार चलाया, तो आपने नोटिस किया होगा कि Forrest Gump नेटवर्क में यह लगभग हमेशा रैंडम नेटवर्क से कम रहती है। इसका मतलब है कि Forrest Gump नेटवर्क हर रैंडम नेटवर्क की तुलना में ज्यादा इंटरकनेक्टेड है, जबकि रैंडम नेटवर्क्स में वर्टिसेस की संख्या समान है और ग्राफ डेंसिटी लगभग एक जैसी है। इस कोड को बार-बार चलाने के बजाय, आप इसे और औपचारिक तरीके से 1000 रैंडम ग्राफ बनाकर कर सकते हैं, जो ओरिजिनल Forrest Gump ग्राफ के वर्टिसेस की संख्या और डेंसिटी पर आधारित हों। फिर आप देख सकते हैं कि कितनी बार रैंडम ग्राफ्स की औसत पाथ लंबाई ओरिजिनल Forrest Gump नेटवर्क से कम आती है। इसे randomization test कहा जाता है।

ग्राफ g, और इसकी औसत पाथ लंबाई (जो आपने पिछले अभ्यास में निकाली थी) g.apl आपके वर्कस्पेस में मौजूद हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में नेटवर्क विश्लेषण

पाठ्यक्रम देखें

अभ्यास निर्देश

  • ओरिजिनल ग्राफ g के 1000 रैंडम ग्राफ जनरेट करें, यानी वह कोड चलाएँ जो लिस्ट ऑब्जेक्ट gl बनाता है और for लूप चलाता है.
  • lapply() का उपयोग करके 1000 रैंडम ग्राफ्स की औसत पाथ लंबाई निकालें। unlist() वाले कोड को चलाकर इन 1000 मानों का एक वेक्टर gl.apls बनाएँ.
  • वेक्टर gl.apls पर hist() चलाकर 1000 रैंडम ग्राफ्स की औसत पाथ लंबाइयों का हिस्टोग्राम प्लॉट करें। प्लॉट में abline() का उपयोग करके एक लाल डैश्ड वर्टिकल लाइन जोड़ें, जहाँ x-इंटरसेप्ट ओरिजिनल ग्राफ g.apl की औसत पाथ लंबाई का मान हो.
  • यह गणना करें कि रैंडम ग्राफ्स gl.apls की औसत पाथ लंबाई के मान, ओरिजिनल ग्राफ g.apl के मान से कितनी बार कम आते हैं। मूल रूप से यह वह प्रायिकता है कि ओरिजिनल ग्राफ की डेंसिटी और वर्टिसेस की संख्या के आधार पर देखा गया औसत पाथ लंबाई का मान सिर्फ संयोग से मिल सकता है.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

library(igraph)

# Generate 1000 random graphs
gl <- vector('list', 1000)
  
for(i in 1:1000){
  gl[[i]] <- erdos.renyi.game(n = gorder(g), p.or.m = gd, type = "gnp")
}

# Calculate average path length of 1000 random graphs
gl.apls <- unlist(lapply(gl, ___, directed = FALSE))

# Plot the distribution of average path lengths
___(gl.apls, xlim = range(c(1.5, 6)))
abline(v = ___, col = "red", lty = 3, lwd = 2)

# Calculate the proportion of graphs with an average path length lower than our observed
mean(___ < ___)
कोड संपादित करें और चलाएँ