Calculate scan statistics on a time series of graphs. This is done by calculating the local scan statistics for each graph and each vertex, and then normalizing across the vertices and across the time steps.
Usage
scan_stat(graphs, tau = 1, ell = 0, locality = c("us", "them"), ...)
Arguments
- graphs
A list of igraph graph objects. They must be all directed or all undirected and they must have the same number of vertices.
- tau
The number of previous time steps to consider for the time-dependent normalization for individual vertices. In other words, the current locality statistics of each vertex will be compared to this many previous time steps of the same vertex to decide whether it is significantly larger.
- ell
The number of previous time steps to consider for the aggregated scan statistics. This is essentially a smoothing parameter.
- locality
Whether to calculate the ‘us’ or ‘them’ statistics.
- ...
Extra arguments are passed to
local_scan()
.
Value
A list with entries:
- stat
The scan statistics in each time step. It is
NA
for the initialtau + ell
time steps.- arg_max_v
The (numeric) vertex ids for the vertex with the largest locality statistics, at each time step. It is
NA
for the initialtau + ell
time steps.
See also
Other scan statistics:
local_scan()
Examples
## Generate a bunch of SBMs, with the last one being different
num_t <- 20
block_sizes <- c(10, 5, 5)
p_ij <- list(p = 0.1, h = 0.9, q = 0.9)
P0 <- matrix(p_ij$p, 3, 3)
P0[2, 2] <- p_ij$h
PA <- P0
PA[3, 3] <- p_ij$q
num_v <- sum(block_sizes)
tsg <- replicate(num_t - 1, P0, simplify = FALSE) %>%
append(list(PA)) %>%
lapply(sample_sbm, n = num_v, block.sizes = block_sizes, directed = TRUE)
scan_stat(graphs = tsg, k = 1, tau = 4, ell = 2)
#> $stat
#> [1] NA NA NA NA NA NA
#> [7] -0.70059800 -0.03245396 -0.36865665 0.38182632 -0.42403811 0.92227692
#> [13] 0.28722389 -1.21113846 1.13178046 1.00841660 -0.44465162 1.94375821
#> [19] -2.29800559 4.51362150
#>
#> $arg_max_v
#> [1] NA NA NA NA NA NA 15 5 10 16 9 3 8 6 9 1 13 18 5 20
#>
scan_stat(graphs = tsg, locality = "them", k = 1, tau = 4, ell = 2)
#> $stat
#> [1] NA NA NA NA NA NA
#> [7] -0.5775089 0.5469063 0.7571575 0.7122845 -0.2900635 -1.3289752
#> [13] 0.7694558 0.6444558 1.0000000 3.5000000 -0.9099820 -0.3235519
#> [19] -2.2014850 2.2980970
#>
#> $arg_max_v
#> [1] NA NA NA NA NA NA 1 5 4 14 11 3 16 20 9 1 11 19 5 16
#>