Calculating the Clustering Coefficient of a friend network
In this example, adapted from Niko Gamulins blog post on Neo4j for Social Network Analysis, the graph in question is showing the 2-hop relationships of a sample person as nodes with KNOWS
relationships.
The clustering coefficient of a selected node is defined as the probability that two randomly selected neighbors are connected to each other.
With the number of neighbors as n
and the number of mutual connections between the neighbors r
the calculation is
the number of possible connections between two neighbors is n!/(2!(n-2)!) = 4!/(2!(4-2)!) = 24/4 = 6
, where n
is the number of neighbors n = 4
and the actual number r
of connections is 1
.
Therefore, the clustering coefficient of node 1 is 1/6
.
n
and r
are quite simple to retrieve via the following query:
MATCH (a {name: "startnode"})--(b)
WITH a, count(distinct b) AS n
MATCH (a)--()-[r]-()--(a)
RETURN n, count(distinct r) AS r
This returns n
and r
for the above calculations.
Is this page helpful?