Retrieves the stochastic matrix of a graph of class igraph
.
Usage
stochastic_matrix(
graph,
column.wise = FALSE,
sparse = igraph_opt("sparsematrices")
)
Arguments
- graph
The input graph. Must be of class
igraph
.- column.wise
If
FALSE
, then the rows of the stochastic matrix sum up to one; otherwise it is the columns.- sparse
Logical scalar, whether to return a sparse matrix. The
Matrix
package is needed for sparse matrices.
Details
Let M be an n×n adjacency matrix with real non-negative entries. Let us define D=diag(∑iM1i,…,∑iMni)
The (row) stochastic matrix is defined as W=D−1M, where it is assumed that D is non-singular. Column stochastic matrices are defined in a symmetric way.
See also
Spectral Coarse Graining
scg-method
Author
Gabor Csardi csardi.gabor@gmail.com
Examples
library(Matrix)
## g is a large sparse graph
g <- sample_pa(n = 10^5, power = 2, directed = FALSE)
W <- stochastic_matrix(g, sparse = TRUE)
## a dense matrix here would probably not fit in the memory
class(W)
#> [1] "dgCMatrix"
#> attr(,"package")
#> [1] "Matrix"
## may not be exactly 1, due to numerical errors
max(abs(rowSums(W)) - 1)
#> [1] 5.651035e-13