扫描统计量是从每个顶点的局部邻域计算出的局部统计量的摘要。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()
计算精确的局部扫描统计量。
如果 graph.them
为 NULL
,则 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
)