问题标签 [sna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1136 浏览

python - 如何在 igraph 中提取某些路径类型?

TLDR:我想提取 igraph 中两个顶点之间的每条路径的边缘类型。有没有相对健全的方法来做到这一点?


我工作的诊所最近在一所高中进行了一项相当大的(1400 人)肺结核接触者调查。我有所有学生和老师的课程表(!)并将它们放入一个网络(使用 R 中的 igraph),每个学生和每个房间周期组合作为一个顶点(例如,123 房间的班级在周期1 是一个顶点,其边指向第 2 期房间 123 中的类)。我也知道哪些房间共用通风系统——这是一种看似合理但不太可能的感染机制。该图是从唯一的源案例中导出的,因此网络上的每条路径中只有两个人——源和联系人,由可变数量的房间周期顶点分隔。从概念上讲,有四种路径:

  • 个人接触曝光(来源 -> 仅限联系人)
  • 共享类暴露(来源 -> 房间期间 -> 联系人)
  • 下一期风险敞口(来源-> Room 123 Period 1 -> Room 123 Period 2 -> 联系方式)
  • 通风暴露(来源 -> Room 123 Period 1 -> Room 125 Period 1 -> 接触)

每个边缘都有一个属性,指示它是人与人之间的暴露、同室不同时期还是通风边缘。

作为在该网络上对感染进行建模的中间步骤,我想简单地计算一下学生每种类型的暴露次数。例如,一个学生可能与源共享一个班级,然后在一段时间后进入了源曾所在的房间,并且可能在第二天进入了通风相邻的房间。该学生的指标将是:

不过,我不确定如何最好地获取此类信息 - 我看到了获取最短路径的功能,这使得识别个人联系链接变得容易,但我认为我需要评估所有路径(这似乎是一个疯狂的问题在一个典型的社交网络上,但当只有源和房间周期有外缘时并不那么疯狂)。如果我能达到每个源到接触路径都由边缘类型的有序向量表示的地步,我想我可以轻松地将它们子集到我的标准中。我只是不知道怎么去那里。如果 igraph 不适合这个框架,我只需要在学生的日程安排上写一些可怕的大循环,就这样吧!但在我深入那个洞之前,我会很感激一些指导。


这是与三个间接路径中的每一个的接触的示例图:

0 投票
1 回答
421 浏览

r - 从复杂网络/SNA 开始。将数据集转换为预期格式

我刚刚开始掌握复杂网络和社交网络分析背后的想法和技术。我似乎总是在数据准备阶段绊倒并陷入困境。我经常在 Google Refine 中有一个数据集,它基本上是一堆以某种方式相关的行。例如,目前我有一份他们参加过的组织和活动的列表(有些重复,因为一个组织可能派了多个代表参加活动)

我的 Google 优化数据

所以我可以看到组织将是我图表上的节点,并且如果他们都参加了同一个活动,它们之间的关系就存在,但是我不知道我如何将这个数据集转换为 NWB、Gephi 等工具的格式, R 或 Tulip 会理解。

我经常发现自己有一个数据集,我可以看到列之间的关系,但我不知道下一步应该采取哪些步骤来准备我的数据,以便通过此类工具导入以探索关系。我浏览了支持文件类型的文档,我的猜测是在 Refine 中使用 RDF 骨架工具做一些事情并采用链接数据样式方法可能是一个可能的解决方案,但我没有运气。

任何有关数据准备的提示将不胜感激。

0 投票
1 回答
976 浏览

java - 如何从 Neo4j Graph 中获取每个节点的不同中心性索引?

我正在做一个关于社交网络分析的伟大项目。我的目标是为图中的每个节点获取不同的中心性索引。我需要分析图表并从中得出一些有意义的完整信息。我正在为这个项目使用 Neo4J 图形数据库(社区版 1.8.M06)。而且我对 Neo4J 很陌生,只有两周的经验。

现在我的图表是一个友谊图表,所以我在图表中唯一的关系是友谊,这是相互的。该图是无向的、未加权的和单纯形的。很快我将在图中添加其他关系和对象,这会使它变得复杂。

我知道 Neo4J 有一个范围图算法的实现来测量中心性,我从这个链接中得到了这些信息。但是我找不到任何关于如何使用它们来获得中心性度量的信息或示例。我也明白这些算法还没有准备好生产

有没有人尝试过与 Neo4J 类似的东西?是否可以仅使用 Neo4J 来做到这一点?如果不能,我可以使用 R 编程语言从 Neo4J 获取 Centrality 索引吗?

我尝试将 R 与 igraph 包一起使用以从边缘列表中获取中心性。我想我可以使用 R 使用 REST API 访问 Neo4J。

我还发现了一些关于使用通用图算法解决最短路径问题的示例。但是没有获取中心性索引的直接示例。从一个例子中学习似乎是一个完美的主意。

谢谢,
迪普

0 投票
0 回答
260 浏览

r - 推特追随者连通性 R Python

我正在尝试获取 Twitter 中某个机构的追随者的邻接矩阵以及它们之间的联系。我想看看追随者之间的关系。我知道从邻接矩阵开始做什么,igraph并且statnet包允许这样做。但是我在获取矩阵时遇到了麻烦。

我尝试使用twitteR包来一一获取用户,但我超时或机器挂起。我还没有看到这样做,但我确信有更短的方法。关于此事的任何见解或参考资料都会很棒。

谢谢。

0 投票
1 回答
1697 浏览

r - 如何将 pajek .paj 文件导入 igraph for R?

本教程包文档描述了如何处理 .net 格式的 pajek 文件,但我需要导入 .paj 文件。我不希望有可以导入所有 .paj 文件的代码,但也许有人的代码可以用于一些更简单的代码,然后我可以根据我的目的进行修改?

0 投票
2 回答
2746 浏览

r - 如何将 R“网络”对象转换为“igraph”对象?

如何将 R“网络”对象转换为“igraph”对象?

教程包文档中讨论了许多格式,但我找不到如何导入“网络”对象。

0 投票
1 回答
498 浏览

r - 没有可视化的大型网络布局算法

有谁知道我可以在不可视化的情况下为大型网络实现强制定向布局算法的资源。我尝试了 R 的 igraph,但在没有可视化的情况下我无法找到获取 x,y 坐标的方法。

任何提示都会很棒

0 投票
2 回答
5785 浏览

r - igraph 两个顶点之间的边

我是 R 和 igraph 的新手,我想知道是否有人可以帮助我解决以下问题。

我想找到图中两个顶点之间的边权重。我的图形结构由正常的自我(node1)、alter(node2)和它们之间的边的权重定义。

我知道我可以使用E(igraph_friendship) [ from(5) ]$weight 获得源自节点号 5 的边列表中每个边的权重 并且我可以找到每个边的权重使用E(igraph_friendship) [ to(10) ]$weight到节点 10 结束的边列表

但是,如果我只想找到仅连接节点 5 和节点 10 的边的权重怎么办?

或者,如果我可以在所有边的列表中获得连接节点 5 和 10 的边的标识符E(igraph_friendship),那也可以。

非常感谢您的帮助,我一直在寻找它,非常感谢您的帮助!

0 投票
0 回答
301 浏览

scala - 使用 Scala SNA

我想在 scala 中使用 SNA。我正在使用 sbt 来管理我的依赖项。

SNA你可以看到但我在Mavenimport net.java.dev.sna.SNA 中找不到

如果在 Maven 中找不到 SNA,我将如何在我的 Scala 项目中使用它?还有一个Svn 主干,但我不知道我应该用它做什么。

更新1:

我只需复制并粘贴SNA.scala就可以让它“工作” 我不得不添加class SNAException(msg:String) extends Exception(msg),因为它丢失了。

0 投票
1 回答
1082 浏览

r - R SNA:创建一个包含所有参与者但仅包含子集值的邻接矩阵

我的问题如下:

我正在使用 R SNA 包进行社交网络分析。可以说,我的出发点是具有以下特征的边缘列表。每一行都包含一个公司名称、他们所涉及的项目的 ID 和进一步的特征,比如项目年份。公司可以参与多个项目,一个项目可以由多个公司的合作组成。例子:

对于网络分析,我需要一个所有公司作为行和列标题的邻接矩阵,我构造如下:

现在我的问题是:我想在邻接矩阵上运行 netlm 回归,在这里我测试给定年份的网络如何解释下一年的网络。但是,因此我想将 grants.edgelist 子集化为(比如说)2003 年和 2005 年的集合。但是,我发现并非所有公司每年都在项目中,因此相应的邻接矩阵具有不同的行和列。

现在我的问题是:如何获得一个包含行和列标题中所有公司的邻接矩阵,但它们的交集设置为零,期望我想观察的年份。我希望我的意思很清楚。

非常感谢您提前。今天这个问题快把我逼疯了!

最好的祝愿

丹尼尔