rich_club_coefficient#
- rich_club_coefficient(G, normalized=True, Q=100, seed=None)[source]#
Returns the rich-club coefficient of the graph
G
.For each degree k, the rich-club coefficient is the ratio of the number of actual to the number of potential edges for nodes with degree greater than k:
\[\phi(k) = \frac{2 E_k}{N_k (N_k - 1)}\]where
N_k
is the number of nodes with degree larger than k, andE_k
is the number of edges among those nodes.- Parameters:
- GNetworkX graph
Undirected graph with neither parallel edges nor self-loops.
- normalizedbool (optional)
Normalize using randomized network as in [1]
- Qfloat (optional, default=100)
If
normalized
is True, performQ * m
double-edge swaps, wherem
is the number of edges inG
, to use as a null-model for normalization.- seedinteger, random_state, or None (default)
Indicator of random number generation state. See Randomness.
- Returns:
- rcdictionary
A dictionary, keyed by degree, with rich-club coefficient values.
- Raises:
- NetworkXError
If
G
has fewer than four nodes andnormalized=True
. A randomly sampled graph for normalization cannot be generated in this case.
Notes
The rich club definition and algorithm are found in [1]. This algorithm ignores any edge weights and is not defined for directed graphs or graphs with parallel edges or self loops.
Normalization is done by computing the rich club coefficient for a randomly sampled graph with the same degree distribution as
G
by repeatedly swapping the endpoints of existing edges. For graphs with fewer than 4 nodes, it is not possible to generate a random graph with a prescribed degree distribution, as the degree distribution fully determines the graph (hence making the coefficients trivially normalized to 1). This function raises an exception in this case.Estimates for appropriate values of
Q
are found in [2].References
[1] (1,2)Julian J. McAuley, Luciano da Fontoura Costa, and Tibério S. Caetano, “The rich-club phenomenon across complex network hierarchies”, Applied Physics Letters Vol 91 Issue 8, August 2007. https://arxiv.org/abs/physics/0701290
[2]R. Milo, N. Kashtan, S. Itzkovitz, M. E. J. Newman, U. Alon, “Uniform generation of random graphs with arbitrary degree sequences”, 2006. https://arxiv.org/abs/cond-mat/0312028
Examples
>>> G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)]) >>> rc = nx.rich_club_coefficient(G, normalized=False, seed=42) >>> rc[0] 0.4