跳到内容

扫描统计量是从每个顶点的局部邻域计算出的局部统计量的摘要。local_scan() 函数计算给定邻域大小和统计函数下每个顶点的局部统计量。

用法

local_scan(
  graph.us,
  graph.them = NULL,
  k = 1,
  FUN = NULL,
  weighted = FALSE,
  mode = c("out", "in", "all"),
  neighborhoods = NULL,
  weights = NULL,
  ...
)

参数

graph.us, graph

igraph 对象,要计算扫描统计量的图

graph.them

igraph 对象或 NULL。如果不是 NULL,则计算“them”统计量,即从 graph.us 计算的邻域在 graph.them 上进行评估。

k

整数标量,每个顶点的局部邻域的大小。应为非负数。

FUN

字符,函数名称,或函数对象本身,用于计算每个邻域中的局部统计量。如果 NULL(默认值),则对于未加权图(如果 weighted=FALSE),使用 ecount(),对于加权图(如果 weighted=TRUE),使用计算边权和的函数。如果 k 为零,则忽略此参数。

weighted

逻辑标量,如果应使用边权重计算扫描统计量,则为 TRUE。如果为 TRUE,则图应被加权。请注意,如果 FUN 不是 NULL"ecount""sumweights",则忽略此参数。

mode

字符标量,用于计算的邻域类型。可以是 ‘out’、‘in’、‘all’ 或 ‘total’ 之一。对于无向图,忽略此参数。

neighborhoods

邻域列表,每个顶点一个,或 NULL。如果它不是 NULL,则在这些邻域指定的诱导子图上评估该函数。

理论上,如果同一个 graph.us 图用于多个 graph.them 参数,这将很有用。然后可以在 graph.us 上计算邻域,并将其用于多个图。实际上,这目前比简单地多次使用 graph.them 慢。

weights

数值向量,用于扫描的边权重,而不是边属性权重。如果 NULL(默认值),则使用边权重属性。

...

传递给 FUN 的参数,即计算局部统计量的函数。

对于 local_scan(),通常是包含每个顶点计算的局部统计量的数值向量。一般来说,是由 FUN 返回的对象列表或向量。

详细信息

有关局部扫描统计量的详细信息,请参阅给定的参考资料。

local_scan() 计算精确的局部扫描统计量。

如果 graph.themNULL,则 local_scan() 计算扫描统计量的“us”变体。否则,graph.them 应该是一个 igraph 对象,并使用 graph.us 提取邻域信息来计算“them”变体,并将 FUN 应用于 graph.them 中的这些邻域。

参考文献

Priebe, C. E., Conroy, J. M., Marchette, D. J., Park, Y. (2005). Scan Statistics on Enron Graphs. Computational and Mathematical Organization Theory.

参见

其他扫描统计量: scan_stat()

示例

pair <- sample_correlated_gnp_pair(n = 10^3, corr = 0.8, p = 0.1)
local_0_us <- local_scan(graph.us = pair$graph1, k = 0)
local_1_us <- local_scan(graph.us = pair$graph1, k = 1)

local_0_them <- local_scan(
  graph.us = pair$graph1,
  graph.them = pair$graph2, k = 0
)
local_1_them <- local_scan(
  graph.us = pair$graph1,
  graph.them = pair$graph2, k = 1
)

Neigh_1 <- neighborhood(pair$graph1, order = 1)
local_1_them_nhood <- local_scan(
  graph.us = pair$graph1,
  graph.them = pair$graph2,
  neighborhoods = Neigh_1
)