# nmf.equal: Testing Equality of NMF Models In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

 nmf.equal R Documentation

## Testing Equality of NMF Models

### Description

The function `nmf.equal` tests if two NMF models are the same, i.e. they contain – almost – identical data: same basis and coefficient matrices, as well as same extra parameters.

### Usage

```  nmf.equal(x, y, ...)

## S4 method for signature 'NMF,NMF'
nmf.equal(x, y, identical = TRUE,
...)

## S4 method for signature 'list,list'
nmf.equal(x, y, ..., all = FALSE,
vector = FALSE)
```

### Arguments

 `x` an NMF model or an object that is associated with an NMF model, e.g. the result from a fit with `nmf`. `y` an NMF model or an object that is associated with an NMF model, e.g. the result from a fit with `nmf`. `identical` a logical that indicates if the comparison should be made using the function `identical` (`TRUE`) or `all.equal` (`FALSE`). See description for method `nmf.equal,NMF,NMF`. `...` extra arguments to allow extension, and passed to subsequent calls `all` a logical that indicates if all fits should be compared separately or only the best fits `vector` a logical, only used when `all=TRUE`, that indicates if all fits must be equal for `x` and `y` to be declared equal, or if one wants to return the result of each comparison in a vector.

### Details

`nmf.equal` compares two NMF models, and return `TRUE` iff they are identical acording to the function `identical` when `identical=TRUE`, or equal up to some tolerance acording to the function `all.equal`. This means that all data contained in the objects are compared, which includes at least the basis and coefficient matrices, as well as the extra parameters stored in slot ‘misc’.

If extra arguments are specified in `...`, then the comparison is performed using `all.equal`, irrespective of the value of argument `identical`.

### Methods

nmf.equal

`signature(x = "NMF", y = "NMF")`: Compares two NMF models.

Arguments in `...` are used only when `identical=FALSE` and are passed to `all.equal`.

nmf.equal

```signature(x = "NMFfit", y = "NMF")```: Compares two NMF models when at least one comes from a NMFfit object, i.e. an object returned by a single run of `nmf`.

nmf.equal

```signature(x = "NMF", y = "NMFfit")```: Compares two NMF models when at least one comes from a NMFfit object, i.e. an object returned by a single run of `nmf`.

nmf.equal

```signature(x = "NMFfit", y = "NMFfit")```: Compares two fitted NMF models, i.e. objects returned by single runs of `nmf`.

nmf.equal

```signature(x = "NMFfitX", y = "NMF")```: Compares two NMF models when at least one comes from multiple NMF runs.

nmf.equal

```signature(x = "NMF", y = "NMFfitX")```: Compares two NMF models when at least one comes from multiple NMF runs.

nmf.equal

```signature(x = "NMFfitX1", y = "NMFfitX1")```: Compares the NMF models fitted by multiple runs, that only kept the best fits.

nmf.equal

```signature(x = "list", y = "list")```: Compares the results of multiple NMF runs.

This method either compare the two best fit, or all fits separately. All extra arguments in `...` are passed to each internal call to `nmf.equal`.

nmf.equal

```signature(x = "list", y = "missing")```: Compare all elements in `x` to `x[]`.

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