Warning

This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.

# square_clustering¶

square_clustering(G, nodes=None)[source]

Compute the squares clustering coefficient for nodes.

For each node return the fraction of possible squares that exist at the node 

$C_4(v) = \frac{ \sum_{u=1}^{k_v} \sum_{w=u+1}^{k_v} q_v(u,w) }{ \sum_{u=1}^{k_v} \sum_{w=u+1}^{k_v} [a_v(u,w) + q_v(u,w)]},$

where $$q_v(u,w)$$ are the number of common neighbors of $$u$$ and $$w$$ other than $$v$$ (ie squares), and $$a_v(u,w) = (k_u - (1+q_v(u,w)+\theta_{uv}))(k_w - (1+q_v(u,w)+\theta_{uw}))$$, where $$\theta_{uw} = 1$$ if $$u$$ and $$w$$ are connected and 0 otherwise.

Parameters: G (graph) – nodes (container of nodes, optional (default=all nodes in G)) – Compute clustering for nodes in this container. c4 – A dictionary keyed by node with the square clustering coefficient value. dictionary

Examples

>>> G=nx.complete_graph(5)
>>> print(nx.square_clustering(G,0))
1.0
>>> print(nx.square_clustering(G))
{0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0}


Notes

While $$C_3(v)$$ (triangle clustering) gives the probability that two neighbors of node v are connected with each other, $$C_4(v)$$ is the probability that two neighbors of node v share a common neighbor different from v. This algorithm can be applied to both bipartite and unipartite networks.

References

  Pedro G. Lind, Marta C. González, and Hans J. Herrmann. 2005 Cycles and clustering in bipartite networks. Physical Review E (72) 056127.