eigen_centrality()
接受一个图 (graph
),并返回其中顶点 v
的特征向量中心性。
用法
eigen_centrality(
graph,
directed = FALSE,
scale = deprecated(),
weights = NULL,
options = arpack_defaults()
)
参数
- graph
要分析的图。
- directed
逻辑标量,是否考虑有向图中的边的方向。对于无向图,此参数将被忽略。
- scale
- weights
数值向量或
NULL
。此参数可用于为计算顶点的加权特征向量中心性提供边权重。如果此参数为NULL
且图具有weight
边属性,则将使用该属性。如果weights
是数值向量,即使图具有weight
边属性,也将使用该向量。如果此参数为NA
,则不使用任何边权重(即使图具有weight
边属性)。请注意,如果存在负边权重并且考虑边的方向,则特征向量可能是复数。在这种情况下,仅报告实部。此函数将权重解释为连接强度。更高的权重可以更好地传播中心性。- options
一个命名列表,用于覆盖一些 ARPACK 选项。有关详细信息,请参见
arpack()
。
值
一个具有以下组件的命名列表
- 向量
包含中心性分数的向量。
- 值
与计算出的特征向量相对应的特征值,即中心性分数。
- 选项
一个命名列表,包含有关底层 ARPACK 计算的信息。有关详细信息,请参见
arpack()
。
详细信息
特征向量中心性分数对应于图的邻接矩阵的主特征向量的值;这些分数又可以解释为来自互惠过程,其中每个参与者的中心性与连接到他的那些参与者的中心性之和成正比。通常,具有高特征向量中心性的顶点是那些连接到许多其他顶点,而这些顶点又连接到许多其他顶点的顶点(依此类推)。有洞察力的人可能会意识到,这意味着最大的值将由大型派系(或高密度子结构)中的个人获得。从代数的角度来看,这也是可以理解的,第一个特征向量与邻接矩阵的最佳秩 1 近似密切相关(这种关系在可对角化的实对称矩阵通过 \(SLS^-1\) 分解的特殊情况下很容易看到)。
特征向量中心性计算中使用的邻接矩阵假定循环边在无向图中被计数两次;这是因为每个循环边都有两个端点都连接到同一个顶点,并且您可以通过任一端点遍历循环边。
在有向图中,计算邻接矩阵的左特征向量。换句话说,顶点的中心性与指向它的顶点的中心性之和成正比。
特征向量中心性仅对(强)连通图有意义。未连接的无向图应分解为连通分量,并分别计算每个分量的特征向量中心性。此函数不验证图是否已连接。如果未连接,则在无向图中,除一个分量外,所有分量的分数都将为零。
另请注意,有向无环图的邻接矩阵或空图的邻接矩阵不具有正特征值,因此未定义这些图的特征向量中心性。在这种情况下,igraph 将返回特征值零。对于空图,特征向量中心性将全部相等,而对于有向无环图,特征向量中心性将全部为零。可以通过检查特征值是否非常接近于零来检测此类病态情况。
从 igraph 版本 0.5 开始,此函数使用 ARPACK 进行底层计算,有关 igraph 中的 ARPACK 的更多信息,请参见 arpack()
。
参考文献
Bonacich, P. (1987). Power and Centrality: A Family of Measures. American Journal of Sociology, 92, 1170-1182.
参见
中心性度量 alpha_centrality()
, authority_score()
, betweenness()
, closeness()
, diversity()
, harmonic_centrality()
, hits_scores()
, page_rank()
, power_centrality()
, spectrum()
, strength()
, subgraph_centrality()
作者
Gabor Csardi csardi.gabor@gmail.com 和 Carter T. Butts (http://www.faculty.uci.edu/profile.cfm?faculty_id=5057) 撰写了手册页。
示例
# Generate some test data
g <- make_ring(10, directed = FALSE)
# Compute eigenvector centrality scores
eigen_centrality(g)
#> $vector
#> [1] 1 1 1 1 1 1 1 1 1 1
#>
#> $value
#> [1] 2
#>
#> $options
#> $options$bmat
#> [1] "I"
#>
#> $options$n
#> [1] 10
#>
#> $options$which
#> [1] "LA"
#>
#> $options$nev
#> [1] 1
#>
#> $options$tol
#> [1] 0
#>
#> $options$ncv
#> [1] 0
#>
#> $options$ldv
#> [1] 0
#>
#> $options$ishift
#> [1] 1
#>
#> $options$maxiter
#> [1] 3000
#>
#> $options$nb
#> [1] 1
#>
#> $options$mode
#> [1] 1
#>
#> $options$start
#> [1] 1
#>
#> $options$sigma
#> [1] 0
#>
#> $options$sigmai
#> [1] 0
#>
#> $options$info
#> [1] 0
#>
#> $options$iter
#> [1] 1
#>
#> $options$nconv
#> [1] 1
#>
#> $options$numop
#> [1] 7
#>
#> $options$numopb
#> [1] 0
#>
#> $options$numreo
#> [1] 6
#>
#>