nmf-compare: Comparing Results from Different NMF Runs In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

Description

The functions documented here allow to compare the fits computed in different NMF runs. The fits do not need to be from the same algorithm, nor have the same dimension.

Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19``` ``` ## S4 method for signature 'NMFfit' compare(object, ...) ## S4 method for signature 'list' compare(object, ...) ## S4 method for signature 'NMFList' summary(object, sort.by = NULL, select = NULL, ...) ## S4 method for signature 'NMFList,missing' plot(x, y, skip = -1, ...) ## S4 method for signature 'NMF.rank' consensusmap(object, ...) ## S4 method for signature 'list' consensusmap(object, layout, Rowv = FALSE, main = names(object), ...) ```

Arguments

 `...` extra arguments passed by `compare` to `summary,NMFList` or to the `summary` method of each fit. `select` the columns to be output in the result `data.frame`. The column are given by their names (partially matched). The column names are the names of the summary measures returned by the `summary` methods of the corresponding NMF results. `sort.by` the sorting criteria, i.e. a partial match of a column name, by which the result `data.frame` is sorted. The sorting direction (increasing or decreasing) is computed internally depending on the chosen criteria (e.g. decreasing for the cophenetic coefficient, increasing for the residuals). `x` an `NMFList` object that contains fits from separate NMF runs. `y` missing `layout` specification of the layout. It may be a single numeric or a numeric couple, to indicate a square or rectangular layout respectively, that is filled row by row. It may also be a matrix that is directly passed to the function `layout` from the package `graphics`. `object` an object computed using some algorithm, or that describes an algorithm itself. `skip` an integer that indicates the number of points to skip/remove from the beginning of the curve. If `skip=1L` (default) only the initial residual – that is computed before any iteration, is skipped, if present in the track (it associated with iteration 0). `Rowv` clustering specification(s) for the rows. It allows to specify the distance/clustering/ordering/display parameters to be used for the rows only. Possible values are: `TRUE` or `NULL` (to be consistent with `heatmap`): compute a dendrogram from hierarchical clustering using the distance and clustering methods `distfun` and `hclustfun`. `NA`: disable any ordering. In this case, and if not otherwise specified with argument `revC=FALSE`, the heatmap shows the input matrix with the rows in their original order, with the first row on top to the last row at the bottom. Note that this differ from the behaviour or `heatmap`, but seemed to be a more sensible choice when vizualizing a matrix without reordering. an integer vector of length the number of rows of the input matrix (`nrow(x)`), that specifies the row order. As in the case `Rowv=NA`, the ordered matrix is shown first row on top, last row at the bottom. a character vector or a list specifying values to use instead of arguments `distfun`, `hclustfun` and `reorderfun` when clustering the rows (see the respective argument descriptions for a list of accepted values). If `Rowv` has no names, then the first element is used for `distfun`, the second (if present) is used for `hclustfun`, and the third (if present) is used for `reorderfun`. a numeric vector of weights, of length the number of rows of the input matrix, used to reorder the internally computed dendrogram `d` by `reorderfun(d, Rowv)`. `FALSE`: the dendrogram is computed using methods `distfun`, `hclustfun`, and `reorderfun` but is not shown. a single integer that specifies how many subtrees (i.e. clusters) from the computed dendrogram should have their root faded out. This can be used to better highlight the different clusters. a single double that specifies how much space is used by the computed dendrogram. That is that this value is used in place of `treeheight`. `main` Main title as a character string or a grob.

Details

The methods `compare` enables to compare multiple NMF fits either passed as arguments or as a list of fits. These methods eventually call the method `summary,NMFList`, so that all its arguments can be passed named in `...`.

Methods

compare

`signature(object = "NMFfit")`: Compare multiple NMF fits passed as arguments.

compare

`signature(object = "list")`: Compares multiple NMF fits passed as a standard list.

consensusmap

```signature(object = "NMF.rank")```: Draw a single plot with a heatmap of the consensus matrix obtained for each value of the rank, in the range tested with `nmfEstimateRank`.

consensusmap

`signature(object = "list")`: Draw a single plot with a heatmap of the consensus matrix of each element in the list `object`.

plot

```signature(x = "NMFList", y = "missing")```: `plot` plot on a single graph the residuals tracks for each fit in `x`. See function `nmf` for details on how to enable the tracking of residuals.

summary

`signature(object = "NMFList")`: `summary,NMFList` computes summary measures for each NMF result in the list and return them in rows in a `data.frame`. By default all the measures are included in the result, and `NA` values are used where no data is available or the measure does not apply to the result object (e.g. the dispersion for single' NMF runs is not meaningful). This method is very useful to compare and evaluate the performance of different algorithms.

Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```#---------- # compare,NMFfit-method #---------- x <- rmatrix(20,10) res <- nmf(x, 3) res2 <- nmf(x, 2, 'lee') # compare arguments compare(res, res2, target=x) #---------- # compare,list-method #---------- # compare elements of a list compare(list(res, res2), target=x) ```

NMF documentation built on March 18, 2018, 1:41 p.m.