non_randomness

non_randomness(G, k=None, weight='weight')[source]

Compute the non-randomness of graph G.

The first returned value nr is the sum of non-randomness values of all edges within the graph (where the non-randomness of an edge tends to be small when the two nodes linked by that edge are from two different communities).

The second computed value nr_rd is a relative measure that indicates to what extent graph G is different from random graphs in terms of probability. When it is close to 0, the graph tends to be more likely generated by an Erdos Renyi model.

Parameters
GNetworkX graph

Graph must be symmetric, connected, and without self-loops.

kint

The number of communities in G. If k is not set, the function will use a default community detection algorithm to set it.

weightstring or None, optional (default=None)

The name of an edge attribute that holds the numerical value used as a weight. If None, then each edge has weight 1, i.e., the graph is binary.

Returns
non-randomness(float, float) tuple

Non-randomness, Relative non-randomness w.r.t. Erdos Renyi random graphs.

Raises
NetworkXException

if the input graph is not connected.

NetworkXError

if the input graph contains self-loops.

Notes

This computes Eq. (4.4) and (4.5) in Ref. [1].

If a weight field is passed, this algorithm will use the eigenvalues of the weighted adjacency matrix to compute Eq. (4.4) and (4.5).

References

1

Xiaowei Ying and Xintao Wu, On Randomness Measures for Social Networks, SIAM International Conference on Data Mining. 2009

Examples

>>> G = nx.karate_club_graph()
>>> nr, nr_rd = nx.non_randomness(G, 2)
>>> nr, nr_rd = nx.non_randomness(G, 2, 'weight')