小世界网络评估
文章目录
- 小世界网络评估
- @[toc]
- 1、网络小世界定义
- 2、网络评估R代码
文章目录
- 小世界网络评估
- @[toc]
- 1、网络小世界定义
- 2、网络评估R代码
1、网络小世界定义
现实中许多网络巨型组件都发现了“小世界特性”。小世界特性是指
- 网络节点间最短路径通常较小
- 网络聚集系数较高
网络最短路径L计算公式为
L
=
1
n
(
n
−
1
)
∑
i
⩾
j
d
i
j
L=\frac{1}{n(n-1)}\sum_{i\geqslant j}{d_{ij}}
L=n(n−1)1i⩾j∑dij
其中
n
n
n为节点数,
d
i
j
d_{ij}
dij为任意节点间的最短距离。(有向)网络聚集系数计算公式为
c
l
T
(
G
t
)
=
(
A
+
A
T
)
i
i
3
2
[
d
i
t
o
t
(
d
i
t
o
t
−
1
)
−
2
(
A
2
)
i
i
]
cl_T\left( \mathcal{G}_t \right) =\frac{\left( A+A^T \right) _{ii}^{3}}{2\left[ d_{i}^{tot}\left( d_{i}^{tot}-1 \right) -2\left( A^2 \right) _{ii} \right]} \
clT(Gt)=2[ditot(ditot−1)−2(A2)ii](A+AT)ii3
其中
A
A
A表示网络的邻接矩阵,
A
T
A^{T}
AT表示
A
A
A的转置,
d
i
t
o
t
d_i^{tot}
ditot表示节点
i
i
i的总度。
2、网络评估R代码
library(igraph)
library(igraphdata) # 加载网络数据包
data("macaque") # 调用系统数据
summary(macaque)
plot(macaque,layout = layout.kamada.kawai,
edge.arrow.size = 0.1) # 打印网络图
#---------------有向网络的聚集系数函数定义---------------
clust.coef.dir <- function(graph){
A <- as.matrix(get.adjacency(graph))
S <- A+t(A)
deg <- degree(graph,mode = c("total"))
num <- diag(S %*% S %*% S)
denom <- diag(A %*% A)
denom <- 2*(deg * (deg-1)-2*denom)
cl <- mean(num / denom)
return(cl)
}
# 抽样500次,在相同网络规模与边数条件下生成500个随机网络
ntrials <- 500
N <- seq(1,ntrials)
nv <- vcount(macaque)
ne <- ecount(macaque)
cl.rg <- numeric(ntrials)
apl.rg <- numeric(ntrials)
par(mfrow = c(2,1))
# 聚类系数抽样生成500次
for(i in (1:ntrials)){
g.rg <- erdos.renyi.game(nv,ne,type = 'gnm',
directed = TRUE)
cl.rg[i] <- clust.coef.dir(g.rg)
print(paste("循环次数:",i))
}
plot(N,cl.rg,col = "red",ylim = c(0.2,0.6))
abline(h = mean(cl.rg)) # 添加随机网络聚类系数均值
abline(h = clust.coef.dir(macaque)) # 添加macaque网络聚类系数
# 平均路径长度抽样生成500次
for(i in (1:ntrials)){
g.rg <- erdos.renyi.game(nv,ne,type = 'gnm',
directed = TRUE)
apl.rg[i] <- average.path.length(g.rg)
print(paste("循环次数:",i))
}
plot(N,apl.rg,col = "blue",ylim = c(1.7,2.2))
abline(h = mean(apl.rg))
abline(h = average.path.length(macaque))
图形输出
聚类系数与平均路径长度
红色为500次随机网络的聚类系数
summary(cl.rg)
#----以下是结果--------
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.2187 0.2300 0.2332 0.2338 0.2374 0.2505
#---------------
# macaque的聚类系数是
clust.coef.dir(macaque)
# 0.5501073
蓝色为500次随机网络的平均路径长度
summary(apl.rg)
#----以下是结果--------
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.815 1.828 1.833 1.833 1.838 1.863
#---------------
# macaque的平均路径长度
average.path.length(macaque)
# 2.148485
对比发现,网络macaque的聚集系数与相同规模的随机网络相比更高,而平均路径程度差异不大,故网络macaque具有小世界特性。
[美] 埃里克·D`克拉泽克等.网络数据的统计分析:R语言实践,西安:西安交通大学出版社45-91,2016