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