gpt4 book ai didi

r - igraph 与 sna : can one do something well the other can't or does poorly?

转载 作者:行者123 更新时间:2023-12-03 02:41:06 27 4
gpt4 key购买 nike

说到R中的网络分析,我对igraph比较熟悉,但对sna不太熟悉。

我的问题是:

  1. 这两个库兼容吗?即,我可以将 sna 中的操作应用于 igraph 中创建的图形,反之亦然吗?

  2. 是否存在在一个包中执行效率更高的任务比另一个?

  3. 哪个库的操作范围更容易理解?

  4. 总体而言,是否有充分的理由在 R 中使用 igraphsna 进行网络分析?

ps。这些软件包中的任何一个都允许多层(多重)网络分析吗?

最佳答案

我对这两个包之间差异的总体看法是,igraph 更适合网络的图论和数学模型,而 sna 更适合(主要是社交)网络的统计模型。 igraph 的创建者(我认为)大多具有计算机科学背景,而 sna 的创建者则是社会学家和统计学家。我主要使用 sna(以及包含 statnet 软件包套件的相关软件包——我从事社会科学工作),但使用 igraph通常也是这样,有时在同一个脚本中。

回答您的具体问题:

1) 不,他们不是。 igraph 中的许多函数在 sna 中具有相同的名称,这会导致冲突。 igraph 图不能在 sna 函数中使用。 intergraph 包的创建是为了方便在 snaigraph 之间切换。因此,我可以通过首先传递给 intergraph 来将 igraph 图发送到 sna 函数 - 例如sna::evcent(intergraph::asNetwork(g)),假设 g 是一个 igraph 网络。如果在脚本中同时使用两者,则需要在运行函数时专门调用包或根据需要加载和卸载。

2) 根据我的经验,我没有发现其中一个比另一个更有效。两者都是开发良好且维护良好的软件包。我相信 igraph 更适合大型图——它有一些经过修改的函数,以便在大型图上运行时节省计算时间。但我在这里没有直接的经验。尽管我想说 igraph 通常更擅长可视化。

3)我想说,两者在全面性方面都没有优势。两者都完成所有主要的网络分析工作(中心性、网络拓扑)。它们的不同之处在于更“高级”的功能。请参阅我的一般观点——它们适用于网络分析中重叠但不同的问题。 sna 中有很多东西在 igraph 中不可用(例如与统计推断相关,如 QAP 回归 [netlm/ netlogit] 或网络自相关模型 [lnam]),反之亦然(例如 cluster_fast_greedy 等社区检测函数)。 sna 由许多兼容的软件包进行了扩展,这些软件包可以执行潜在空间模型和指数随机图模型等操作。

4) Ceterius paribus,没有。对我来说,选择主要是需求驱动的。如果您对统计推断感兴趣,您需要从事sna工作。如果没有,igraph 通常可以使用。根据堆栈溢出的问题,igraph 似乎更受欢迎,但这当然可能是由于选择偏差。仅出于这个原因,如果我不需要对网络进行统计建模,我可能会主要使用 igraph。同样,这两个软件包都很棒,满足重叠但略有不同的需求。

不确定“多层网络分析”是什么意思,但 igraphsna 都适用于多路传输网络。您当然可以在sna中分析多路网络和多级网络。 (在这里,多重意味着具有多种联系类型(例如友谊和建议)的网络,而多层意味着嵌套网络或来自同一群体的多个网络(此时术语有点困惑)。)这取决于您的目的想做,往往需要一些争论,但在一定程度上是可能的。

关于r - igraph 与 sna : can one do something well the other can't or does poorly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44578360/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com