PerturbedLaplacian: Construct and use the Perturbed Laplacian

View source: R/PerturbedLaplacian.R

PerturbedLaplacianR 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_tau(A) of an n by n graph adjacency matrix A as

L[ij] = (A[ij] + τ / n) / (sqrt(d^out[i] + τ) sqrt(d^in[j] + τ))

where

d^out[i] = sum_j abs(A[ij])

and

d^in[j] = sum_i abs(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/.

Value

  • PerturbedLaplacian() creates a PerturbedLaplacian object.

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

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

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)


invertiforms documentation built on Nov. 25, 2022, 5:05 p.m.