effective_size#

effective_size(G, nodes=None, weight=None)[source]#

计算图 G 中所有节点的有效规模。

*有效规模*衡量的是节点利己网络(ego network)的冗余度。一个人的利己网络中,如果她的联系人彼此之间也相互连接,那么这个网络就存在冗余。一个人的关系中非冗余的部分就是其利己网络的有效规模 [1]。形式上,节点 \(u\) 的有效规模,记作 \(e(u)\),定义为

\[e(u) = \sum_{v \in N(u) \setminus \{u\}} \left(1 - \sum_{w \in N(v)} p_{uw} m_{vw}\right)\]

其中 \(N(u)\)\(u\) 的邻居集合,对于每对顶点 \(u\)\(v\),\(p_{uw}\) 是连接 \(u\)\(v\) 的(有向或无向)边的归一化互惠权重 [1]。而 \(m_{vw}\)\(v\)\(w\) 的互惠权重除以 \(v\) 与其任何邻居之间最高的互惠权重。\(u\) 和 \(v\) 的*互惠权重*是连接它们的边的权重之和(如果图是无权图,边权重假定为一)。

对于无权无向图,Borgatti 提出了计算有效规模的简化公式 [2]

\[e(u) = n - \frac{2t}{n}\]

其中 t 是利己网络中的连接数(不包括与自我的连接),n 是节点数(不包括自我)。

参数:
GNetworkX 图

包含节点的图 G。在计算节点的邻居时,有向图被视为无向图。

nodes容器,可选

G 中要计算有效规模的节点容器。如果为 None,则计算每个节点的有效规模。

weightNone 或字符串,可选

如果为 None,所有边的权重被视为相等。否则,持有用作权重的边属性名称。

返回:
dict

字典,键为节点,值为节点的有效规模。

另请参阅

约束

注意

Burt 还定义了与节点利己网络的*效率*相关的概念,即其有效规模除以该节点的度 [1]。因此,你可以轻松计算效率

>>> G = nx.DiGraph()
>>> G.add_edges_from([(0, 1), (0, 2), (1, 0), (2, 1)])
>>> esize = nx.effective_size(G)
>>> efficiency = {n: v / G.degree(n) for n, v in esize.items()}

参考文献

[1] (1,2,3)

Burt, Ronald S. Structural Holes: The Social Structure of Competition. Cambridge: Harvard University Press, 1995.

[2]

Borgatti, S. “Structural Holes: Unpacking Burt’s Redundancy Measures” CONNECTIONS 20(1):35-38. http://www.analytictech.com/connections/v20(1)/holes.htm