R包sna中brokerage()函数如何处理权重与双向边?
关于sna包中brokerage()函数对双向边和加权边的处理逻辑
- 双向边处理:函数会将双向边拆分为两条独立的单向边(例如A↔B会被拆成A→B和B→A),分别参与中介角色的判定。因为Gould & Fernandez 1989的中介定义完全基于有向路径,每条单向边都会被当作独立连接来判断是否构成中介路径。
- 加权边处理:默认情况下,函数会忽略边的权重,所有非零权重的边都会被视为二元有向边(即仅判断“是否存在连接”)。不管权重数值是多少,只要权重不为0,就会被当作有效有向边参与路径计算。目前官方文档未提供让权重直接参与计算的参数,若需要考虑权重,需先手动对权重做二值化处理(比如将权重>0的边统一设为1)。
你可以通过构建小型测试网络验证上述逻辑:比如创建包含双向加权边的简单网络,运行brokerage()后,对比结果和手动按二元有向边计算的中介角色数量,就能确认处理规则。
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

