mark_core {manynet} | R Documentation |
Core-periphery clustering algorithms
Description
These functions identify nodes belonging to (some level of) the core of a network:
-
node_is_core()
assigns nodes to either the core or periphery. -
node_coreness()
assigns nodes to their level of k-coreness.
Usage
node_is_universal(.data)
node_is_core(.data, method = c("degree", "eigenvector"))
node_coreness(.data)
Arguments
.data |
An object of a manynet-consistent class:
|
method |
Which method to use to identify cores and periphery. By default this is "degree", which relies on the heuristic that high degree nodes are more likely to be in the core. An alternative is "eigenvector", which instead begins with high eigenvector nodes. Other methods, such as a genetic algorithm, CONCOR, and Rombach-Porter, can be added if there is interest. |
Universal/dominating node
A universal node is adjacent to all other nodes in the network. It is also sometimes called the dominating vertex because it represents a one-element dominating set. A network with a universal node is called a cone, and its universal node is called the apex of the cone. A classic example of a cone is a star graph, but friendship, wheel, and threshold graphs are also cones.
Core-periphery
This function is used to identify which nodes should belong to the core, and which to the periphery. It seeks to minimize the following quantity:
Z(S_1) = \sum_{(i<j)\in S_1} \textbf{I}_{\{A_{ij}=0\}} + \sum_{(i<j)\notin S_1} \textbf{I}_{\{A_{ij}=1\}}
where nodes \{i,j,...,n\}
are ordered in descending degree,
A
is the adjacency matrix,
and the indicator function is 1 if the predicate is true or 0 otherwise.
Note that minimising this quantity maximises density in the core block
and minimises density in the periphery block;
it ignores ties between these blocks.
References
On core-periphery partitioning
Borgatti, Stephen P., & Everett, Martin G. 1999. "Models of core /periphery structures". Social Networks, 21, 375–395. doi:10.1016/S0378-8733(99)00019-2
Lip, Sean Z. W. 2011. “A Fast Algorithm for the Discrete Core/Periphery Bipartitioning Problem.” doi:10.48550/arXiv.1102.5511
See Also
Other memberships:
member_brokerage
,
member_cliques
,
member_community_hier
,
member_community_non
,
member_components
,
member_equivalence
Examples
node_is_universal(create_star(11))
node_is_core(ison_adolescents)
#ison_adolescents %>%
# mutate(corep = node_is_core()) %>%
# graphr(node_color = "corep")
node_coreness(ison_adolescents)