L1cent {L1centrality} | R Documentation |
L1 Centrality/Prestige
Description
Computes L1 centrality or
L1 prestige for each
vertex. The L1
centrality/prestige is a graph centrality/prestige measure defined for the
vertices of a graph. It is (roughly) defined by (1 -
minimum
multiplicity required for a selected vertex to become the median of the
graph). For directed graphs,
L1 centrality quantifies
the prominence of a vertex in making a choice and
L1 prestige quantifies
the prominence of a vertex in receiving a choice. For undirected graphs,
the two measures are identical.
Usage
L1cent(g, eta, mode)
## S3 method for class 'igraph'
L1cent(g, eta = NULL, mode = c("centrality", "prestige"))
## S3 method for class 'matrix'
L1cent(g, eta = NULL, mode = c("centrality", "prestige"))
Arguments
g |
An |
eta |
An optional nonnegative multiplicity (weight) vector for (vertex)
weighted networks. The sum of its components must be positive. If set to
|
mode |
A character string. For an undirected graph, either choice gives the same result.
|
Details
Suppose that g
is a (strongly) connected graph consisting of
n vertices
v1, ...,
vn
whose multiplicities (weights) are \eta_1,\dots,\eta_n \geq 0
, respectively,
and \eta_{\cdot} = \sum_{k=1}^n \eta_k > 0
.
The centrality median vertex of this graph is the node minimizing the weighted sum of distances. That is, vi is the centrality median vertex if
\sum_{k=1}^{n} \eta_k d(v_i, v_k)
is minimized, where d(v_i,v_k)
denotes the geodesic (shortest path)
distance from v_i
to v_k
. See igraph::distances()
for
algorithms for computing geodesic distances between vertices. When the
indices are swapped to d(v_k, v_i)
in the display above, we call the
node minimizing the weighted sum as the prestige median vertex. When the
graph is undirected, the prestige median vertex and the centrality median
vertex coincide, and we call it the graph median, following Hakimi (1964).
The L1 centrality for an arbitrary node vi is defined as ‘one minus the minimum weight that is required to make it a centrality median.’ This concept of centrality is closely related to the data depth for ranking multivariate data, as defined in Vardi and Zhang (2000). It turns out that the following formula computes the L1 centrality for the vertex vi:
1-\mathcal{S}(\texttt{g})\max_{j\neq i}\left\{\frac{\sum_{k=1}^{n}\eta_k (d(v_i,v_k) - d(v_j,v_k)) }{\eta_{\cdot}d(v_j,v_i)}\right\}^{+},
where \{\cdot\}^{+}=\max(\cdot,0)
and \mathcal{S}(\texttt{g}) =
\min_{i\neq j} d(v_i,v_j)/d(v_j,v_i)
. The
L1 centrality of a vertex
is in [0,1]
by the triangle inequality, and the centrality median
vertex has centrality 1. The
L1 prestige is defined
analogously, with the indices inside the distance function swapped.
For an undirected graph, \mathcal{S}(\texttt{g}) = 1
since the distance
function is symmetric. Moreover,
L1 centrality and
L1 prestige measures concide.
For details, refer to Kang and Oh (2024a) for undirected graphs, and Kang and Oh (2024b) for directed graphs.
Value
A numeric vector whose length is equivalent to the number of vertices
in the graph g
. Each component of the vector is the
L1 centrality (if
mode = "centrality"
) or the
L1 prestige (if
mode = "prestige"
) of each vertex in the given graph.
Note
The function is valid only for connected graphs. If the graph is directed, it must be strongly connected.
References
S. L. Hakimi. Optimum locations of switching centers and the absolute centers and medians of a graph. Operations Research, 12(3):450–459, 1964.
S. Kang and H.-S. Oh. On a notion of graph centrality based on L1 data depth. arXiv preprint arXiv:2404.13233, 2024a.
S. Kang and H.-S. Oh. L1 prominence measures for directed graphs. Manuscript. 2024b.
Y. Vardi and C.-H. Zhang. The multivariate L1-median and associated data depth. Proceedings of the National Academy of Sciences, 97(4):1423–1426, 2000.
See Also
L1centLOC()
, L1centNB()
, L1centMDS()
, L1centEDGE()
,
Lorenz_plot()
for L1
centrality- or prestige-based analysis. See L1centrality-package for each
function's support range.
igraph::betweenness()
, igraph::closeness()
,
igraph::degree()
, igraph::eigen_centrality()
for centrality measures.
Examples
# igraph object and distance matrix as an input lead to the same result
vertex_weight <- igraph::V(MCUmovie)$worldwidegross
cent_igraph <- L1cent(MCUmovie, eta=vertex_weight)
cent_matrix <- L1cent(igraph::distances(MCUmovie), eta=vertex_weight)
all(cent_igraph == cent_matrix)
# Top 6 vertices with the highest L1 centrality
utils::head(sort(cent_igraph, decreasing = TRUE))