PerturbedLaplacian {invertiforms}R Documentation

Construct and use the Perturbed Laplacian

Description

Construct and use the Perturbed Laplacian

Usage

PerturbedLaplacian(A, tau = NULL)

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

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

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τ(A)L^\tau(A) of an n×nn \times n graph adjacency matrix AA as

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

where

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

and

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

When AijA_{ij} denotes the present of an edge from node ii to node jj, which is fairly standard notation, dioutd^{out}_i denotes the (absolute) out-degree of node ii and djind^{in}_j denotes the (absolute) in-degree of node jj.

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

Value

Examples


library(igraph)
library(igraphdata)

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

A <- get.adjacency(karate)

iform <- PerturbedLaplacian(A)

L <- transform(iform, A)
L

## Not run: 
A_recovered <- inverse_transform(iform, L)
all.equal(A, A_recovered)

## End(Not run)


[Package invertiforms version 0.1.1 Index]