网络随机化

R 中的网络分析

James Curley

Associate Professor, University of Texas at Austin

随机图

erdos.renyi.game(n = gorder(g), p.or.m = edge_density(g), type = "gnp")
R 中的网络分析

随机图与随机化检验

  1. 基于原始网络生成 1000 个随机图—— 如保持相同顶点数和近似密度。

  2. 计算原始网络的平均路径长度。

  3. 计算 1000 个随机网络的平均路径长度。

  4. 比较有多少随机网络的平均路径长度大于或小于原始网络。

R 中的网络分析

生成 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 中的网络分析

与原始网络对比

hist(gl.apls, breaks = 20)

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

R 中的网络分析

开始练习!

R 中的网络分析

Preparing Video For Download...