Skip to contents

Sample a new graph by perturbing the adjacency matrix of a given graph and shuffling its vertices.

Usage

sample_correlated_gnp_pair(n, corr, p, directed = FALSE, permutation = NULL)

Arguments

n

Numeric scalar, the number of vertices for the sampled graphs.

corr

A scalar in the unit interval, the target Pearson correlation between the adjacency matrices of the original the generated graph (the adjacency matrix being used as a vector).

p

A numeric scalar, the probability of an edge between two vertices, it must in the open (0,1) interval.

directed

Logical scalar, whether to generate directed graphs.

permutation

A numeric vector, a permutation vector that is applied on the vertices of the first graph, to get the second graph. If NULL, the vertices are not permuted.

Value

A list of two igraph objects, named graph1 and graph2, which are two graphs whose adjacency matrix entries are correlated with corr.

Details

Please see the reference given below.

correlated_pair_game

References

Lyzinski, V., Fishkind, D. E., Priebe, C. E. (2013). Seeded graph matching for correlated Erdős-Rényi graphs. https://arxiv.org/abs/1304.7844

Examples

gg <- sample_correlated_gnp_pair(
  n = 10, corr = .8, p = .5,
  directed = FALSE
)
gg
#> $graph1
#> IGRAPH 5a6e8ff U--- 10 22 -- 
#> + edges from 5a6e8ff:
#>  [1] 1-- 2 1-- 3 2-- 3 1-- 4 1-- 5 2-- 5 4-- 5 4-- 6 5-- 6 2-- 7 3-- 7 4-- 7
#> [13] 6-- 7 5-- 8 6-- 8 7-- 8 1-- 9 3-- 9 6-- 9 5--10 6--10 9--10
#> 
#> $graph2
#> IGRAPH 7ffb0d0 U--- 10 19 -- 
#> + edges from 7ffb0d0:
#>  [1] 1-- 2 1-- 3 1-- 4 1-- 5 3-- 5 4-- 5 4-- 6 5-- 6 2-- 7 3-- 7 4-- 7 6-- 7
#> [13] 7-- 8 3-- 9 6-- 9 7-- 9 5--10 6--10 9--10
#> 
cor(as.vector(gg[[1]][]), as.vector(gg[[2]][]))
#> [1] 0.7171925