This is a collection of functions computing the distance between two networks.
Usage
dist_hamming(x, y, representation = "laplacian")
dist_frobenius(
x,
y,
representation = "laplacian",
matching_iterations = 0,
target_matrix = NULL
)
dist_spectral(x, y, representation = "laplacian")
dist_root_euclidean(x, y, representation = "laplacian")
Arguments
- x
An
igraph::igraph
object or a matrix representing an underlying network.- y
An
igraph::igraph
object or a matrix representing an underlying network. Should have the same number of vertices asx
.- representation
A string specifying the desired type of representation, among:
"adjacency"
,"laplacian"
,"modularity"
or"graphon"
. Default is"laplacian"
.- matching_iterations
An integer value specifying the maximum number of runs when looking for the optimal permutation for graph matching. Defaults to
0L
in which case no matching is done.- target_matrix
A square numeric matrix of size
n
equal to the order of the graphs specifying a target matrix towards which the initial doubly stochastic matrix is shrunk each time the graph matching algorithm fails to provide a good minimum. Defaults toNULL
in which case the target matrix is automatically chosen between the identity matrix or the uniform matrix on the n-simplex.
Details
Let \(X\) be the matrix representation of network \(x\) and \(Y\) be the matrix representation of network \(y\). The Hamming distance between \(x\) and \(y\) is given by $$\frac{1}{N(N-1)} \sum_{i,j} |X_{ij} - Y_{ij}|,$$ where \(N\) is the number of vertices in networks \(x\) and \(y\). The Frobenius distance between \(x\) and \(y\) is given by $$\sqrt{\sum_{i,j} (X_{ij} - Y_{ij})^2}.$$ The spectral distance between \(x\) and \(y\) is given by $$\sqrt{\sum_i (a_i - b_i)^2},$$ where \(a\) and \(b\) of the eigenvalues of \(X\) and \(Y\), respectively. This distance gives rise to classes of equivalence. Consider the spectral decomposition of \(X\) and \(Y\): $$X=VAV^{-1}$$ and $$Y = UBU^{-1},$$ where \(V\) and \(U\) are the matrices whose columns are the eigenvectors of \(X\) and \(Y\), respectively and \(A\) and \(B\) are the diagonal matrices with elements the eigenvalues of \(X\) and \(Y\), respectively. The root-Euclidean distance between \(x\) and \(y\) is given by $$\sqrt{\sum_i (V \sqrt{A} V^{-1} - U \sqrt{B} U^{-1})^2}.$$ Root-Euclidean distance can used only with the laplacian matrix representation.
Examples
g1 <- igraph::sample_gnp(20, 0.1)
g2 <- igraph::sample_gnp(20, 0.2)
dist_hamming(g1, g2, "adjacency")
#> [1] 0.2894737
dist_frobenius(g1, g2, "adjacency")
#> [1] 10.48809
dist_spectral(g1, g2, "laplacian")
#> [1] 13.79925
dist_root_euclidean(g1, g2, "laplacian")
#> [1] 10.91692