Sample a pair of correlated \(G(n,p)\) random graphs
Source:R/games.R
sample_correlated_gnp_pair.RdSample a new graph by perturbing the adjacency matrix of a given graph and shuffling its vertices.
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.
References
Lyzinski, V., Fishkind, D. E., Priebe, C. E. (2013). Seeded graph matching for correlated Erdos-Renyi graphs. https://arxiv.org/abs/1304.7844
See also
Random graph models (games)
erdos.renyi.game(),
sample_(),
sample_bipartite(),
sample_correlated_gnp(),
sample_degseq(),
sample_dot_product(),
sample_fitness(),
sample_fitness_pl(),
sample_forestfire(),
sample_gnm(),
sample_gnp(),
sample_grg(),
sample_growing(),
sample_hierarchical_sbm(),
sample_islands(),
sample_k_regular(),
sample_last_cit(),
sample_pa(),
sample_pa_age(),
sample_pref(),
sample_sbm(),
sample_smallworld(),
sample_traits_callaway(),
sample_tree()
Examples
gg <- sample_correlated_gnp_pair(
n = 10, corr = .8, p = .5,
directed = FALSE
)
gg
#> $graph1
#> IGRAPH 3bd1f40 U--- 10 19 --
#> + edges from 3bd1f40:
#> [1] 2-- 3 3-- 4 1-- 5 2-- 5 4-- 5 2-- 6 1-- 7 3-- 7 6-- 7 1-- 8 3-- 8 4-- 8
#> [13] 1-- 9 2-- 9 4-- 9 4--10 5--10 6--10 9--10
#>
#> $graph2
#> IGRAPH 7867ad2 U--- 10 19 --
#> + edges from 7867ad2:
#> [1] 2-- 3 3-- 4 1-- 5 2-- 5 4-- 5 2-- 6 1-- 7 3-- 7 6-- 7 1-- 8 4-- 8 1-- 9
#> [13] 2-- 9 4-- 9 2--10 4--10 5--10 6--10 9--10
#>
cor(as.vector(gg[[1]][]), as.vector(gg[[2]][]))
#> [1] 0.9151104