Learn R Programming

invertiforms (version 0.1.2)

PerturbedLaplacian: Construct and use the Perturbed Laplacian

Description

Construct and use the Perturbed Laplacian

Usage

PerturbedLaplacian(A, tau = NULL)

# S4 method for PerturbedLaplacian,sparseMatrix transform(iform, A)

# S4 method for PerturbedLaplacian,sparseLRMatrix inverse_transform(iform, A)

Value

  • PerturbedLaplacian() creates a PerturbedLaplacian object.

  • transform() returns the transformed matrix, typically as a Matrix::Matrix.

  • inverse_transform() returns the inverse transformed matrix, typically as a Matrix::Matrix.

Arguments

A

A matrix to transform.

tau

Additive regularizer for row and column sums of abs(A). Typically this corresponds to inflating the (absolute) out-degree and the (absolute) in-degree of each node by tau. Defaults to NULL, in which case we set tau to the mean value of abs(A).

iform

An Invertiform object describing the transformation.

Details

We define the perturbed Laplacian \(L^\tau(A)\) of an \(n \times n\) graph adjacency matrix \(A\) as

$$ L^\tau(A)_{ij} = \frac{A_{ij} + \frac{\tau}{n}}{\sqrt{d^{out}_i + \tau} \sqrt{d^{in}_j + \tau}} $$

where

$$ d^{out}_i = \sum_{j=1}^n \|A_{ij} \| $$

and

$$ d^{in}_j = \sum_{i=1}^n \|A_{ij} \|. $$

When \(A_{ij}\) denotes the present of an edge from node \(i\) to node \(j\), which is fairly standard notation, \(d^{out}_i\) denotes the (absolute) out-degree of node \(i\) and \(d^{in}_j\) denotes the (absolute) in-degree of node \(j\).

Note that this documentation renders more clearly at https://rohelab.github.io/invertiforms/.

Examples

Run this code

library(igraph)
library(igraphdata)

data("karate", package = "igraphdata")

A <- get.adjacency(karate)

iform <- PerturbedLaplacian(A)

L <- transform(iform, A)
L

if (FALSE) {
A_recovered <- inverse_transform(iform, L)
all.equal(A, A_recovered)
}

Run the code above in your browser using DataLab