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()

Arguments

weights

The weight of the edges to use for the calculation. Will be evaluated in the context of the edge data.

alpha

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)

exo

The exogenous factors of the nodes. Either a scalar or a number number for each node. Evaluated in the context of the node data.

tol

Tolerance for near-singularities during matrix inversion

loops

Should loops be included in the calculation

scale

Should the output be scaled between 0 and 1

options

Settings passed on to igraph::arpack()

directed

Should direction of edges be used for the calculations

cutoff

maximum path length to use during calculations

normalized

Should the output be normalized

exponent

The decay rate for the Bonacich power centrality

rescale

Should the output be scaled to sum up to 1

mode

How should edges be followed. Ignored for undirected graphs

damping

The damping factor of the page rank algorithm

personalized

The probability of jumping to a node when abandoning a random walk. Evaluated in the context of the node data.

relation

The indirect relation measure type to be used in netrankr::indirect_relations

aggregation

The aggregation type to use on the indirect relations to be used in netrankr::aggregate_positions

...

Arguments to pass on to netrankr::indirect_relations

netflowmode

The return type of the network flow distance, either 'raw' or 'frac'

rspxparam

inverse temperature parameter

Value

A numeric vector giving the centrality measure of each node.

Functions

  • 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(): [Deprecated] 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)

Examples

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