# basiscor: Correlations in NMF Models In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

 basiscor R Documentation

## Correlations in NMF Models

### Description

`basiscor` computes the correlation matrix between basis vectors, i.e. the columns of its basis matrix – which is the model's first matrix factor.

`profcor` computes the correlation matrix between basis profiles, i.e. the rows of the coefficient matrix – which is the model's second matrix factor.

### Usage

```  basiscor(x, y, ...)

profcor(x, y, ...)
```

### Arguments

 `x` a matrix or an object with suitable methods `basis` or `coef`. `y` a matrix or an object with suitable methods `basis` or `coef`, and dimensions compatible with `x`. If missing the correlations are computed between `x` and `y=x`. `...` extra arguments passed to `cor`.

### Details

Each generic has methods defined for computing correlations between NMF models and/or compatible matrices. The computation is performed by the base function `cor`.

### Methods

basiscor

```signature(x = "NMF", y = "matrix")```: Computes the correlations between the basis vectors of `x` and the columns of `y`.

basiscor

```signature(x = "matrix", y = "NMF")```: Computes the correlations between the columns of `x` and the the basis vectors of `y`.

basiscor

`signature(x = "NMF", y = "NMF")`: Computes the correlations between the basis vectors of `x` and `y`.

basiscor

```signature(x = "NMF", y = "missing")```: Computes the correlations between the basis vectors of `x`.

profcor

`signature(x = "NMF", y = "matrix")`: Computes the correlations between the basis profiles of `x` and the rows of `y`.

profcor

`signature(x = "matrix", y = "NMF")`: Computes the correlations between the rows of `x` and the basis profiles of `y`.

profcor

`signature(x = "NMF", y = "NMF")`: Computes the correlations between the basis profiles of `x` and `y`.

profcor

```signature(x = "NMF", y = "missing")```: Computes the correlations between the basis profiles of `x`.

### Examples

```

# generate two random NMF models
a <- rnmf(3, 100, 20)
b <- rnmf(3, 100, 20)

# Compute auto-correlations
basiscor(a)
profcor(a)
# Compute correlations with b
basiscor(a, b)
profcor(a, b)

# try to recover the underlying NMF model 'a' from noisy data
res <- nmf(fitted(a) + rmatrix(a), 3)

# Compute correlations with the true model
basiscor(a, res)
profcor(a, res)

# Compute correlations with a random compatible matrix
W <- rmatrix(basis(a))
basiscor(a, W)
identical(basiscor(a, W), basiscor(W, a))

H <- rmatrix(coef(a))
profcor(a, H)
identical(profcor(a, H), profcor(H, a))
```

NMF documentation built on March 30, 2022, 1:05 a.m.