Use this if you are using igraph from R
Sample a new graph by perturbing the adjacency matrix of a given graph and shuffling its vertices.
sample_correlated_gnp(old.graph, corr, p = old.graph$p, permutation = NULL)
old.graph |
The original graph. |
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. |
permutation |
A numeric vector, a permutation vector that is
applied on the vertices of the first graph, to get the second graph. If
|
Please see the reference given below.
An unweighted graph of the same size as old.graph
such
that the correlation coefficient between the entries of the two
adjacency matrices is corr
. Note each pair of corresponding
matrix entries is a pair of correlated Bernoulli random variables.
Lyzinski, V., Fishkind, D. E., Priebe, C. E. (2013). Seeded graph matching for correlated Erdos-Renyi graphs. https://arxiv.org/abs/1304.7844
sample_correlated_gnp_pair
,
sample_gnp
g <- sample_gnp(1000, .1) g2 <- sample_correlated_gnp(g, corr = 0.5) cor(as.vector(g[]), as.vector(g2[])) g g2