These functions return values relating to how connected a network is and the number of nodes or edges to remove that would increase fragmentation.
net_by_cohesion() measures the minimum number of nodes to remove
from the network needed to increase the number of components.
net_by_toughness() measures the number of nodes that would need to be
removed from a network to increase its number of components.
net_by_adhesion() measures the minimum number of ties to remove
from the network needed to increase the number of components,
or the minimum total weight of such ties in a weighted network.
net_by_strength() measures the number of ties that would need to be
removed from a network to increase its number of components.
net_by_cohesion(.data)
net_by_adhesion(.data)
net_by_strength(.data, limit = 20)
net_by_toughness(.data, limit = 20)A network object of class stocnet, igraph, tbl_graph, network, or similar.
Internally any of these will be coerced to an efficient implementation.
For more information on possible coercions, see e.g. manynet::as_stocnet().
The largest network net_by_strength() and
net_by_toughness() will enumerate: the number of ties for the first and
of nodes for the second. By default 20. Above this each stops rather than
running for hours. Raise it to measure a larger network anyway.
A network_measure numeric score.
The object also carries the measure it computed, the range its values
can fall within, and whether and how those values were normalized.
These are shown as a one-line header when the object is printed.
Where a measure offers a choice between several ways of counting the
same thing, it also carries the variant it used.
All can be retrieved with attr().
net_by_cohesion() and net_by_adhesion() are connectivity problems that
{igraph} solves directly, so they run on a network of any size.
net_by_strength() and net_by_toughness() instead take a minimum over
every subset of the tieset or the nodeset, which is \(2^n\) subsets.
Their cost therefore quadruples for every two nodes added: a ring of 16
nodes takes about 8 seconds, one of 20 over two minutes, and one of 30
more than a day. limit stops each before it becomes a hang.
net_by_adhesion() reads a tie's weight as its capacity,
and so returns the smallest total weight of ties whose removal would
increase the number of components, the network's minimum cut,
rather than the smallest number of such ties.
This is also the smallest maximum flow between any two of its nodes;
see node_by_flow() for the flow between particular nodes.
Use manynet::to_unweighted() first to count ties instead.
The other measures documented here count nodes or ties whatever
their weight.
net_by_adhesion() asks what holds a network together,
and a negative tie is hostility rather than a channel along which
cohesion travels.
Where the network is signed, it therefore considers only the positive
ties, and says so.
Use manynet::to_unsigned() first to control this yourself.
The other measures documented here use every tie whatever its sign.
White, Douglas R and Frank Harary. 2001. "The Cohesiveness of Blocks In Social Networks: Node Connectivity and Conditional Density." Sociological Methodology 31(1): 305-59. doi:10.1111/0081-1750.00098
Other cohesion:
mark_triangles,
measure_breadth,
measure_cohesion,
motif_net,
motif_node
Other measures:
measure_assort_net,
measure_assort_node,
measure_breadth,
measure_broker_node,
measure_broker_tie,
measure_brokerage,
measure_central_between,
measure_central_close,
measure_central_degree,
measure_central_eigen,
measure_central_tie_between,
measure_central_tie_close,
measure_central_tie_degree,
measure_central_tie_eigen,
measure_closure,
measure_closure_node,
measure_cohesion,
measure_core,
measure_diffusion_infection,
measure_diffusion_net,
measure_diffusion_node,
measure_diverse_net,
measure_diverse_node,
measure_features,
measure_fit,
measure_hierarchy,
measure_periods
net_by_cohesion(fict_greys)
#> # Node connectivity [0, Inf)
#> [1] 0
net_by_cohesion(to_giant(fict_greys))
#> # Node connectivity [0, Inf)
#> [1] 1
net_by_adhesion(fict_greys)
#> # Tie connectivity [0, Inf)
#> [1] 0
net_by_adhesion(to_giant(fict_greys))
#> # Tie connectivity [0, Inf)
#> [1] 1
net_by_strength(ison_adolescents)
#> # Strength [0, Inf)
#> [1] 0.5
net_by_toughness(ison_adolescents)
#> # Toughness [0, Inf)
#> [1] 0.5