effective_size#

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

返回图 G 中所有节点的有效大小。

节点的*有效大小*基于冗余概念。一个人的自我网络具有冗余的程度是她的联系人彼此之间也相互连接的程度。一个人的关系的非冗余部分是她自我网络的有效大小 [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\) 的邻居集合,\(p_{uw}\) 是连接 \(u\)\(v\) 的(有向或无向)边的归一化互权重,对于每个顶点 \(u\)\(v\) [1]。而 \(m_{vw}\)\(v\)\(w\) 的互权重除以 \(v\) 与其任何邻居的最高互权重。\(u\)\(v\) 的*互权重*是连接它们的边的权重之和(如果图是无权的,则假设边的权重为1)。

对于无权和无向图的情况,Borgatti 提出了一种简化的公式来计算有效大小 [2]

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

其中 t 是自我网络中的联系数(不包括与自我的联系), n 是节点数(不包括自我)。

Parameters:
GNetworkX 图

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

nodes容器,可选

图中 G 的节点容器,用于计算有效大小。如果为 None,则计算每个节点的有效大小。

weightNone 或字符串,可选

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

Returns:
dict

以节点为键,节点的有效大小为值的字典。

See also

constraint

Notes

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()}

References

[1]

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