網路隨機化

R 的 Network Analysis

James Curley

Associate Professor, University of Texas at Austin

隨機圖

erdos.renyi.game(n = gorder(g), p.or.m = edge_density(g), type = "gnp")
R 的 Network Analysis

隨機圖與隨機化檢定

  1. 產生 1000 個以原始網路為基礎的隨機圖, 例如:相同節點數與相近密度。

  2. 計算原始網路的平均路徑長。

  3. 計算 1000 個隨機網路的平均路徑長。

  4. 比較有多少隨機網路的平均路徑長大於或小於原始網路。

R 的 Network Analysis

產生 1000 個隨機圖:

gl <- vector('list',1000)

for(i in 1:1000){
    gl[[i]] <- erdos.renyi.game(
                    n = gorder(g), 
                    p.or.m = edge_density(g), 
                    type = "gnp"
                     ) 
}

計算 1000 個隨機圖的平均路徑長:

gl.apls <- unlist(
  lapply(gl, mean_distance, directed = FALSE) 
)
R 的 Network Analysis

與原始網路比較

hist(gl.apls, breaks = 20)

abline(
  v = mean_distance(
    g, directed=FALSE
    ),
      col = "red", 
      lty = 3, 
      lwd = 2
)

R 的 Network Analysis

一起來練習吧!

R 的 Network Analysis

Preparing Video For Download...