
Last chance! 50% off unlimited learning
Sale ends in
power_centrality
takes a graph (dat
) and returns the Boncich power
centralities of positions (selected by nodes
). The decay rate for
power contributions is specified by exponent
(1 by default).
power_centrality(graph, nodes = V(graph), loops = FALSE, exponent = 1,
rescale = FALSE, tol = 1e-07, sparse = TRUE)
the input graph.
vertex sequence indicating which vertices are to be included in the calculation. By default, all vertices are included.
boolean indicating whether or not the diagonal should be
treated as valid data. Set this true if and only if the data can contain
loops. loops
is FALSE
by default.
exponent (decay rate) for the Bonacich power centrality score; can be negative
if true, centrality scores are rescaled such that they sum to 1.
tolerance for near-singularities during matrix inversion (see
solve
)
Logical scalar, whether to use sparse matrices for the calculation. The ‘Matrix’ package is required for sparse matrix support
A vector, containing the centrality scores.
Singular adjacency matrices cause no end of headaches for
this algorithm; thus, the routine may fail in certain cases. This will be
fixed when I get a better algorithm. power_centrality
will not symmetrize your
data before extracting eigenvectors; don't send this routine asymmetric
matrices unless you really mean to do so.
Bonacich's power centrality measure is defined by
exponent
) and
Interpretively, the Bonacich power measure corresponds to the notion that the power of a vertex is recursively defined by the sum of the power of its alters. The nature of the recursion involved is then controlled by the power exponent: positive values imply that vertices become more powerful as their alters become more powerful (as occurs in cooperative relations), while negative values imply that vertices become more powerful only as their alters become weaker (as occurs in competitive or antagonistic relations). The magnitude of the exponent indicates the tendency of the effect to decay across long walks; higher magnitudes imply slower decay. One interesting feature of this measure is its relative instability to changes in exponent magnitude (particularly in the negative case). If your theory motivates use of this measure, you should be very careful to choose a decay parameter on a non-ad hoc basis.
Bonacich, P. (1972). ``Factoring and Weighting Approaches to Status Scores and Clique Identification.'' Journal of Mathematical Sociology, 2, 113-120.
Bonacich, P. (1987). ``Power and Centrality: A Family of Measures.'' American Journal of Sociology, 92, 1170-1182.
# NOT RUN {
# Generate some test data from Bonacich, 1987:
g.c <- graph( c(1,2,1,3,2,4,3,5), dir=FALSE)
g.d <- graph( c(1,2,1,3,1,4,2,5,3,6,4,7), dir=FALSE)
g.e <- graph( c(1,2,1,3,1,4,2,5,2,6,3,7,3,8,4,9,4,10), dir=FALSE)
g.f <- graph( c(1,2,1,3,1,4,2,5,2,6,2,7,3,8,3,9,3,10,4,11,4,12,4,13), dir=FALSE)
# Compute power centrality scores
for (e in seq(-0.5,.5, by=0.1)) {
print(round(power_centrality(g.c, exp=e)[c(1,2,4)], 2))
}
for (e in seq(-0.4,.4, by=0.1)) {
print(round(power_centrality(g.d, exp=e)[c(1,2,5)], 2))
}
for (e in seq(-0.4,.4, by=0.1)) {
print(round(power_centrality(g.e, exp=e)[c(1,2,5)], 2))
}
for (e in seq(-0.4,.4, by=0.1)) {
print(round(power_centrality(g.f, exp=e)[c(1,2,5)], 2))
}
# }
Run the code above in your browser using DataLab