Computes the rich club curve across all prominence thresholds. The unweighted coefficient (Colizza et al. 2006) measures the density of ties among prominent nodes. The weighted coefficient (Opsahl et al. 2008) measures whether prominent nodes concentrate the strongest ties of the network among themselves. A directed network is converted to an undirected one before the computation, with the weights of reciprocal edges summed, and self-loops are removed.
Usage
rich_club(
x,
rich = c("k", "s"),
weighted = TRUE,
normalized = TRUE,
n_random = 100,
directed = NULL,
seed = NULL,
digits = NULL,
...
)Arguments
- x
Network input: matrix, igraph, network, cograph_network, or tna object.
- rich
Character. Prominence definition:
"k"(degree, default) or"s"(strength, the weighted degree).- weighted
Logical. If TRUE (default), compute the weighted rich club coefficient. If FALSE, compute the unweighted version (density among rich nodes).
- normalized
Logical. If TRUE (default), normalize against degree-preserving random graphs and report the null distribution. The null graphs are generated with
igraph::sample_degseq(), which fixes the degree sequence. For a weighted rich club the observed edge weights are also reshuffled across the null edges, following Opsahl et al. (2008). A null graph thatsample_degseq()cannot draw is left out with a warning of class"cograph_null_draw_failed"that reports how many draws failed.- n_random
Integer. Number of random graphs for normalization. Default 100.
- directed
Logical or NULL. Default NULL (auto-detect).
- seed
Integer or NULL. Random seed for the null graphs. When a seed is given, the caller's random state is restored on exit. Default NULL.
- digits
Integer or NULL. Round all numeric columns, including
threshold. Default NULL.- ...
Passed to
to_igraph, which takes no further arguments, so any argument supplied here raises an error.
Value
A data frame with class "cograph_rich_club", one row per
prominence threshold at which at least two nodes are rich, and columns:
- threshold
The prominence cut-off. Nodes with prominence strictly greater than this value form the club. Thresholds range over the observed prominence values excluding the maximum.
- n_rich
Number of club members at that threshold.
- phi
Observed rich club coefficient.
- phi_norm, phi_rand, ci_lo, ci_hi
Present only when
normalized = TRUE. They hold the observed coefficient divided by the null mean, the null mean itself, and the 2.5\ quantiles of the null distribution.
The data frame has zero rows for graphs that are too small, complete, or
regular for any threshold to yield a club. The arguments rich,
weighted, normalized and the original input
("network") are stored as attributes.
Details
The unweighted coefficient is \(\phi(k) = 2 E_{>k} / (N_{>k} (N_{>k} - 1))\), where \(N_{>k}\) is the number of nodes with prominence above \(k\) and \(E_{>k}\) the number of edges among them.
The weighted coefficient is \(\phi^w(k) = W_{>k} / \sum_{l=1}^{E_{>k}} w_l^{ranked}\), where \(W_{>k}\) is the total weight of the edges among the rich nodes and \(w_l^{ranked}\) is the \(l\)-th largest edge weight in the network.
The normalized coefficient is \(\phi_{norm} = \phi_{obs} / \bar{\phi}_{rand}\). A value above 1 indicates rich club ordering beyond what the degree sequence alone explains.
Printing and plotting
Printing the result shows the prominence definition, the weighting and
normalization settings, the number of thresholds with phi_norm > 1
and the first ten rows of the table. plot() on the result is
documented in plot-results.
References
Opsahl, T., Colizza, V., Panzarasa, P. & Ramasco, J.J. (2008). Prominence and control: The weighted rich-club effect. Physical Review Letters, 101, 168702.
Colizza, V., Flammini, A., Serrano, M.A. & Vespignani, A. (2006). Detecting rich-club ordering in complex networks. Nature Physics, 2, 110-115.
Examples
rich_club(regulation_net, n_random = 20, seed = 1)
#> Rich Club Analysis
#> ==================
#> Prominence: degree
#> Weighted: TRUE
#> Normalized: TRUE
#> Thresholds: 2
#> Rich club detected at 1 of 2 thresholds (phi_norm > 1)
#>
#> threshold n_rich phi phi_norm phi_rand ci_lo ci_hi
#> 4 9 0.9485488 1.0615680 0.8935356 0.8346966 0.9445910
#> 5 4 0.4928230 0.8319812 0.5923487 0.3665767 0.8717803
