get_distance_matrix: Diffusion Distance Matrix

View source: R/get_distance_matrix.R

get_distance_matrixR Documentation

Diffusion Distance Matrix

Description

Returns a matrix where each entry encodes the diffusion distance between two nodes of a network.

The diffusion distance at time τ between nodes i, j \in G is defined as

D_{τ}(i, j) = \vert \mathbf{p}(t|i) - \mathbf{p}(t|j) \vert_2

with \mathbf{p}(t|i) = (e^{- τ L})_{i\cdot} = \mathbf{e}_i e^{- τ L} indicating the i-th row of the stochastic matrix e^{- τ L} and representing the probability (row) vector of a random walk dynamics corresponding to the initial condition \mathbf{e}_i, i.e. the random walker is in node i at time τ = 0 with probability 1.

Usage

get_distance_matrix(
  g,
  tau,
  type = "Normalized Laplacian",
  weights = NULL,
  as_dist = FALSE,
  verbose = TRUE
)

getDistanceMatrix(g, tau, type = "Normalized Laplacian", weights = NULL,
                         verbose = TRUE)

get_DDM(
  g,
  tau,
  type = "Normalized Laplacian",
  weights = NULL,
  as_dist = FALSE,
  verbose = TRUE
)

Arguments

g

a (single-layer) network

tau

diffusion time

type

default "Normalized Laplacian". The type of Laplacian (i.e. of dynamics) to consider. Other types available are:

Laplacian

for the classical combinatorial Laplacian matrix; it governs the diffusion dynamics on the network

Normalized Laplacian

for the Laplacian matrix normalized by degree matrix, the so-called classical random walk normalized Laplacian; it governs stochastic walks on the network

Quantum Laplacian

for the Laplacian matrix normalized to be symmetric; it governs quantum walks on the network

MERW normalized Laplacian

the maximal-entropy random walk (RW) normalized Laplacian; it governs stochastic walks on the network, in which the random walker moves according to a maximal-entropy RW [1].

Note that you can type abbreviations, e.g. "L", "N", "Q", "M" for the respective types (case is ignored). The argument match is done through match_arg.

weights

edge weights, representing the strength/intensity (not the cost!) of each link. If weights is NULL (the default) and g has an edge attribute called weight, then it will be used automatically. If this is NA then no weights are used (even if the graph has a weight attribute).

as_dist

If the function should return a matrix or an object of class "dist" as returned from [stats::as.dist]. Default is FALSE if the number of nodes is smaller than 1000.

verbose

default TRUE

Value

The diffusion distance matrix D_t, a square numeric matrix of the L^2-norm distances between posterior probability vectors, i.e. Euclidean distances between the rows of the stochastic matrix P(t) = e^{-τ L}, where -L = -(I - T) is the generator of the continuous-time random walk (Markov chain) of given type over network g.

Functions

  • getDistanceMatrix(): Old deprecated function

References

De Domenico, M. (2017). Diffusion Geometry Unravels the Emergence of Functional Clusters in Collective Phenomena. Physical Review Letters. doi: 10.1103/PhysRevLett.118.168301

Bertagnolli, G., & De Domenico, M. (2021). Diffusion geometry of multiplex and interdependent systems. Physical Review E, 103(4), 042301. doi: 10.1103/PhysRevE.103.042301 arXiv: 2006.13032

See Also

get_diffusion_probability_matrix

Examples

g <- igraph::sample_pa(10, directed = FALSE)
dm_crw <- get_distance_matrix(g, tau = 1)
dm_merw <- get_distance_matrix(g, tau = 1, type = "MERW")

diffudist documentation built on March 7, 2023, 6:12 p.m.