NetworkX

Previous topic

networkx.algorithms.cluster.average_clustering

Next topic

Components

networkx.algorithms.cluster.square_clustering

networkx.algorithms.cluster.square_clustering(G, nodes=None)

Compute the squares clustering coefficient for nodes.

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

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

A NetworkX graph

nodes : container of nodes, optional

Compute clustering only for specified nodes. Default is entire graph.

Returns :

c4 : dictionary

A dictionary keyed by node with the square clustering coefficient value.

Notes

While C_3(v) 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

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

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}