Mulai sekarangMulai gratis

Randomisasi jaringan

Pada latihan sebelumnya, Anda mungkin memperhatikan bahwa panjang lintasan rata-rata jaringan Forrest Gump lebih kecil daripada panjang lintasan rata-rata jaringan acak. Jika Anda menjalankan kodenya beberapa kali, Anda akan melihat bahwa hampir selalu lebih rendah pada jaringan Forrest Gump dibandingkan jaringan acak. Hal ini menunjukkan bahwa jaringan Forrest Gump lebih saling terhubung rapat daripada setiap jaringan acak meskipun jaringan acak memiliki jumlah simpul yang sama dan kerapatan graf yang kurang lebih identik. Alih-alih menjalankan kode ini berkali-kali, Anda dapat menanganinya secara lebih formal dengan membuat 1000 graf acak berdasarkan jumlah simpul dan kerapatan graf Forrest Gump asli. Lalu, Anda dapat melihat berapa kali panjang lintasan rata-rata graf acak lebih kecil daripada jaringan Forrest Gump asli. Ini disebut uji randomisasi.

Graf g, dan panjang lintasan rata-ratanya (yang Anda hitung pada latihan sebelumnya), g.apl sudah tersedia di ruang kerja Anda.

Latihan ini merupakan bagian dari kursus

Analisis Jaringan di R

Lihat Kursus

Instruksi latihan

  • Hasilkan 1000 graf acak dari graf asli g dengan mengeksekusi kode yang membuat objek daftar gl dan for loop.
  • Hitung panjang lintasan rata-rata dari 1000 graf acak menggunakan lapply(). Buat vektor gl.apls berisi 1000 nilai ini dengan mengeksekusi kode yang menggunakan unlist().
  • Plot histogram panjang lintasan rata-rata dari 1000 graf acak menggunakan hist() pada vektor gl.apls. Tambahkan garis vertikal putus-putus berwarna merah ke plot menggunakan abline() dengan x-intercept berupa nilai panjang lintasan rata-rata graf asli, g.apl.
  • Hitung proporsi jumlah kejadian ketika nilai panjang lintasan rata-rata graf acak gl.apls lebih rendah daripada nilai graf asli g.apl. Ini pada dasarnya adalah probabilitas bahwa kita akan memperoleh panjang lintasan rata-rata yang teramati secara kebetulan, mengingat kerapatan dan jumlah simpul graf aslinya.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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(___ < ___)
Edit dan Jalankan Kode