The scan statistic is a summary of the locality statistics that is
computed from the local neighborhood of each vertex. The
local_scan()
function computes the local statistics for each vertex
for a given neighborhood size and the statistic function.
Usage
local_scan(
graph.us,
graph.them = NULL,
k = 1,
FUN = NULL,
weighted = FALSE,
mode = c("out", "in", "all"),
neighborhoods = NULL,
...
)
Arguments
- graph.us, graph
An igraph object, the graph for which the scan statistics will be computed
- graph.them
An igraph object or
NULL
, if notNULL
, then the ‘them’ statistics is computed, i.e. the neighborhoods calculated fromgraph.us
are evaluated ongraph.them
.- k
An integer scalar, the size of the local neighborhood for each vertex. Should be non-negative.
- FUN
Character, a function name, or a function object itself, for computing the local statistic in each neighborhood. If
NULL
(the default value),ecount()
is used for unweighted graphs (ifweighted=FALSE
) and a function that computes the sum of edge weights is used for weighted graphs (ifweighted=TRUE
). This argument is ignored ifk
is zero.- weighted
Logical scalar, TRUE if the edge weights should be used for computation of the scan statistic. If TRUE, the graph should be weighted. Note that this argument is ignored if
FUN
is notNULL
,"ecount"
and"sumweights"
.- mode
Character scalar, the kind of neighborhoods to use for the calculation. One of ‘
out
’, ‘in
’, ‘all
’ or ‘total
’. This argument is ignored for undirected graphs.- neighborhoods
A list of neighborhoods, one for each vertex, or
NULL
. If it is notNULL
, then the function is evaluated on the induced subgraphs specified by these neighborhoods.In theory this could be useful if the same
graph.us
graph is used for multiplegraph.them
arguments. Then the neighborhoods can be calculated ongraph.us
and used with multiple graphs. In practice, this is currently slower than simply usinggraph.them
multiple times.- ...
Arguments passed to
FUN
, the function that computes the local statistics.
Value
For local_scan()
typically a numeric vector containing the
computed local statistics for each vertex. In general a list or vector
of objects, as returned by FUN
.
Details
See the given reference below for the details on the local scan statistics.
local_scan()
calculates exact local scan statistics.
If graph.them
is NULL
, then local_scan()
computes the
‘us’ variant of the scan statistics. Otherwise,
graph.them
should be an igraph object and the ‘them’
variant is computed using graph.us
to extract the neighborhood
information, and applying FUN
on these neighborhoods in
graph.them
.
References
Priebe, C. E., Conroy, J. M., Marchette, D. J., Park, Y. (2005). Scan Statistics on Enron Graphs. Computational and Mathematical Organization Theory.
See also
Other scan statistics:
scan_stat()
Examples
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
)