[graph-tool] Understanding avg_neighbour_corr

Santiago Videla santiago.videla at gmail.com
Thu Jun 4 23:01:16 CEST 2015


Hi,

I'm trying to understand what is computed in graph_tool.correlations.
avg_neighbour_corr
but I couldn't figured out yet.

Take for example the minimal example below:

=========
from graph_tool import all as gt
import numpy as np

g = gt.Graph()
g.add_vertex(4)
g.add_edge_list([(1,0),(1,2)])

g.vp["weight"] = weights = g.new_vertex_property("double")
weights[g.vertex(0)] = 2.7
weights[g.vertex(1)] = 1.3
weights[g.vertex(2)] = 0.3

h = gt.avg_neighbour_corr(g, weights, weights)

vlist = gt.find_vertex_range(g, weights, (1,2))
w = [weights[w] for w in vlist[0].out_neighbours()]

print np.mean(w), np.std(w)
print h[0][1], h[1][1]
=========

>From the docs I'd expect h[0][1] == np.mean(w) (which is the case) and
h[1][1] == np.std(w) (which is not the case).

I'd appreciate any clarification/reference on this subject. In fact, I got
to this issue trying to implement the analogous function to
graph_tool.correlations.avg_neighbour_corr but looking at
*in_neighbours* instead
of *out_neighbours* and when I tried to replicate the native function I
noticed that the average was almost the same (I think I didn't get yet how
is exactly handle the case of having many vertices in the same bin)  but
the standard deviation was quite different.

Regards,

-- 
Santiago Videla
http://www.linkedin.com/in/svidela
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.skewed.de/pipermail/graph-tool/attachments/20150604/22f9ff5f/attachment.htm>


More information about the graph-tool mailing list