R: Generate a new random graph from a given graph by randomly...

sample_correlated_gnp {igraph} | R Documentation

## Generate a new random graph from a given graph by randomly adding/removing edges

### Description

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

### Usage

    sample_correlated_gnp(old.graph, corr, p = old.graph$p, permutation = NULL)

### Arguments

`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 `NULL`, the vertices are not permuted.

### Details

Please see the reference given below.

### Value

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.

### 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

`sample_correlated_gnp_pair`, `sample_gnp`

### Examples

    g <- sample_gnp(1000, .1)
    g2 <- sample_correlated_gnp(g, corr = 0.5)
    cor(as.vector(g[]), as.vector(g2[]))
    g
    g2

[Package igraph version 1.2.10 Index]