The centrality of a node measures the importance of node in the network. As
the concept of importance is ill-defined and dependent on the network and
the questions under consideration, many centrality measures exist.
tidygraph
provides a consistent set of wrappers for all the centrality
measures implemented in igraph
for use inside dplyr::mutate()
and other
relevant verbs. All functions provided by tidygraph
have a consistent
naming scheme and automatically calls the function on the graph, returning a
vector with measures ready to be added to the node data. Further tidygraph
provides access to the netrankr
engine for centrality calculations and
define a number of centrality measures based on that, as well as provide a
manual mode for specifying more-or-less any centrality score. These measures
all only work on undirected graphs.
centrality_alpha(
weights = NULL,
alpha = 1,
exo = 1,
tol = 1e-07,
loops = FALSE
)
centrality_authority(weights = NULL, scale = TRUE, options = arpack_defaults())
centrality_betweenness(
weights = NULL,
directed = TRUE,
cutoff = -1,
normalized = FALSE
)
centrality_power(exponent = 1, rescale = FALSE, tol = 1e-07, loops = FALSE)
centrality_closeness(
weights = NULL,
mode = "out",
normalized = FALSE,
cutoff = NULL
)
centrality_eigen(
weights = NULL,
directed = FALSE,
scale = TRUE,
options = arpack_defaults()
)
centrality_hub(weights = NULL, scale = TRUE, options = arpack_defaults())
centrality_pagerank(
weights = NULL,
directed = TRUE,
damping = 0.85,
personalized = NULL
)
centrality_subgraph(loops = FALSE)
centrality_degree(
weights = NULL,
mode = "out",
loops = TRUE,
normalized = FALSE
)
centrality_edge_betweenness(weights = NULL, directed = TRUE, cutoff = NULL)
centrality_harmonic(
weights = NULL,
mode = "out",
normalized = FALSE,
cutoff = NULL
)
centrality_manual(relation = "dist_sp", aggregation = "sum", ...)
centrality_closeness_harmonic()
centrality_closeness_residual()
centrality_closeness_generalised(alpha)
centrality_integration()
centrality_communicability()
centrality_communicability_odd()
centrality_communicability_even()
centrality_subgraph_odd()
centrality_subgraph_even()
centrality_katz(alpha = NULL)
centrality_betweenness_network(netflowmode = "raw")
centrality_betweenness_current()
centrality_betweenness_communicability()
centrality_betweenness_rsp_simple(rspxparam = 1)
centrality_betweenness_rsp_net(rspxparam = 1)
centrality_information()
centrality_decay(alpha = 1)
centrality_random_walk()
centrality_expected()
The weight of the edges to use for the calculation. Will be evaluated in the context of the edge data.
Relative importance of endogenous vs exogenous factors (centrality_alpha
), the exponent to the power transformation of the distance metric (centrality_closeness_generalised
), the base of power transformation (centrality_decay
), or the attenuation factor (centrality_katz
)
The exogenous factors of the nodes. Either a scalar or a number number for each node. Evaluated in the context of the node data.
Tolerance for near-singularities during matrix inversion
Should loops be included in the calculation
Should the output be scaled between 0 and 1
Settings passed on to igraph::arpack()
Should direction of edges be used for the calculations
maximum path length to use during calculations
Should the output be normalized
The decay rate for the Bonacich power centrality
Should the output be scaled to sum up to 1
How should edges be followed. Ignored for undirected graphs
The damping factor of the page rank algorithm
The probability of jumping to a node when abandoning a random walk. Evaluated in the context of the node data.
The indirect relation measure type to be used in netrankr::indirect_relations
The aggregation type to use on the indirect relations to be used in netrankr::aggregate_positions
Arguments to pass on to netrankr::indirect_relations
The return type of the network flow distance, either 'raw'
or 'frac'
inverse temperature parameter
A numeric vector giving the centrality measure of each node.
centrality_alpha()
: Wrapper for igraph::alpha_centrality()
centrality_authority()
: Wrapper for igraph::authority_score()
centrality_betweenness()
: Wrapper for igraph::betweenness()
centrality_power()
: Wrapper for igraph::power_centrality()
centrality_closeness()
: Wrapper for igraph::closeness()
centrality_eigen()
: Wrapper for igraph::eigen_centrality()
centrality_hub()
: Wrapper for igraph::hub_score()
centrality_pagerank()
: Wrapper for igraph::page_rank()
centrality_subgraph()
: Wrapper for igraph::subgraph_centrality()
centrality_degree()
: Wrapper for igraph::degree()
and igraph::strength()
centrality_edge_betweenness()
: Wrapper for igraph::edge_betweenness()
centrality_harmonic()
: Wrapper for igraph::harmonic_centrality()
centrality_manual()
: Manually specify your centrality score using the netrankr
framework (netrankr
)
centrality_closeness_harmonic()
: centrality based on inverse shortest path (netrankr
)
centrality_closeness_residual()
: centrality based on 2-to-the-power-of negative shortest path (netrankr
)
centrality_closeness_generalised()
: centrality based on alpha-to-the-power-of negative shortest path (netrankr
)
centrality_integration()
: centrality based on \(1 - (x - 1)/max(x)\) transformation of shortest path (netrankr
)
centrality_communicability()
: centrality an exponential tranformation of walk counts (netrankr
)
centrality_communicability_odd()
: centrality an exponential tranformation of odd walk counts (netrankr
)
centrality_communicability_even()
: centrality an exponential tranformation of even walk counts (netrankr
)
centrality_subgraph_odd()
: subgraph centrality based on odd walk counts (netrankr
)
centrality_subgraph_even()
: subgraph centrality based on even walk counts (netrankr
)
centrality_katz()
: centrality based on walks penalizing distant nodes (netrankr
)
centrality_betweenness_network()
: Betweenness centrality based on network flow (netrankr
)
centrality_betweenness_current()
: Betweenness centrality based on current flow (netrankr
)
centrality_betweenness_communicability()
: Betweenness centrality based on communicability (netrankr
)
centrality_betweenness_rsp_simple()
: Betweenness centrality based on simple randomised shortest path dependencies (netrankr
)
centrality_betweenness_rsp_net()
: Betweenness centrality based on net randomised shortest path dependencies (netrankr
)
centrality_information()
: centrality based on inverse sum of resistance distance between nodes (netrankr
)
centrality_decay()
: based on a power transformation of the shortest path (netrankr
)
centrality_random_walk()
: centrality based on the inverse sum of expected random walk length between nodes (netrankr
)
centrality_expected()
: Expected centrality ranking based on exact rank probability (netrankr
)
create_notable('bull') %>%
activate(nodes) %>%
mutate(importance = centrality_alpha())
#> # A tbl_graph: 5 nodes and 5 edges
#> #
#> # An undirected simple graph with 1 component
#> #
#> # Node Data: 5 × 1 (active)
#> importance
#> <dbl>
#> 1 -1
#> 2 -1
#> 3 -1
#> 4 0
#> 5 0
#> #
#> # Edge Data: 5 × 2
#> from to
#> <int> <int>
#> 1 1 2
#> 2 1 3
#> 3 2 3
#> # ℹ 2 more rows
# Most centrality measures are for nodes but not all
create_notable('bull') %>%
activate(edges) %>%
mutate(importance = centrality_edge_betweenness())
#> # A tbl_graph: 5 nodes and 5 edges
#> #
#> # An undirected simple graph with 1 component
#> #
#> # Edge Data: 5 × 3 (active)
#> from to importance
#> <int> <int> <dbl>
#> 1 1 2 2
#> 2 1 3 2
#> 3 2 3 4
#> 4 2 4 4
#> 5 3 5 4
#> #
#> # Node Data: 5 × 0